Blue/Green デプロイの説明と一覧表示

このドキュメントでは、Cloud SQL のブルー / グリーン デプロイを一覧表示して説明する方法、接続の詳細と構成の違いを検査する方法、グリーン ステージング環境に接続してワークロードをテストして検証する方法について説明します。

始める前に

Blue-Green デプロイの一覧表示または説明を取得し、Green ステージング インスタンスに接続するには、必要なロールとデータベース認証情報があることを確認します。

必要なロールと権限

ブルー / グリーン デプロイを一覧表示して説明するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。

  • Cloud SQL 閲覧者(roles/cloudsql.viewer)
  • Cloud SQL 編集者(roles/cloudsql.editor)
  • Cloud SQL 管理者(roles/cloudsql.admin)

カスタムロールの場合は、次の権限があることを確認します。

  • cloudsql.blueGreenDeployments.get
  • cloudsql.blueGreenDeployments.list

グリーン ステージング インスタンスに接続してテストクエリを実行するには、移行元インスタンスで構成されたデータベース ユーザー認証情報も必要です。

Cloud SQL の IAM ロールと権限の詳細については、ロールと権限をご覧ください。

概要

describe コマンドを使用すると、初期プロビジョニングとステージングから切り替え完了まで、ライフサイクル全体にわたって Cloud SQL Blue/Green デプロイのステータスを常にモニタリングして追跡できます。

Blue/Green デプロイを記述すると、次の情報を確認できます。

  • デプロイのライフサイクル状態: PROVISIONING、SWITCHOVER_READY、SWITCHOVER_NOT_READY、SWITCHOVER_IN_PROGRESS、SWITCHOVER_COMPLETED などの状態を移行するデプロイのリアルタイム ステータスをモニタリングします。
  • ターゲット インスタンスの接続の詳細: グリーン ステージング インスタンスの一意の接続名とネットワーク エンドポイントを取得します。これにより、データベース管理者(DBA)と QA エンジニアは、本番環境の青いトラフィックに影響を与えることなく、アプリケーションを接続し、テストクエリを実行して、緑のインスタンスのパフォーマンスを検証できます。
  • レプリケーションの健全性と切り替えの準備: 青から緑への継続的な論理レプリケーションが正常であることを確認し、問題が発生した場合は診断エラーの詳細を調べます。デプロイの説明では、レプリケーションの遅延は表示されません。
  • 構成の違い: 詳細ビューでリクエストされた場合、青と緑のインスタンス間のデータベース バージョン、マシン階層、ストレージ設定、高可用性構成の対照比較(diffs)を調べます。

Blue/Green デプロイを一覧表示する

プロジェクト内の Blue/Green デプロイを一覧表示するには:

コンソール

  1. Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. インスタンスのリストで、[Blue/Green デプロイ ID] 列を表示して、インスタンスに関連付けられている Blue/Green デプロイを確認します。Blue/Green デプロイの一部であるインスタンスには、インスタンス名の横にロールタグ(Blue、Green、Old-blue、New-blue)も表示されます。

gcloud

gcloud を使用して Blue/Green デプロイを一覧表示するには、blue-green-deployments list コマンドを実行します。

gcloud beta sql blue-green-deployments list \
  --region=REGION

プロジェクト内のすべてのリージョンのデプロイを一覧表示するには、--region フラグを省略します。

REST v1

Cloud SQL Admin API を使用してデプロイを一覧表示するには、blueGreenDeployments.list メソッドに GET リクエストを送信します。

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/blueGreenDeployments

REST v1beta4

Cloud SQL Admin API を使用してデプロイを一覧表示するには、blueGreenDeployments.list メソッドに GET リクエストを送信します。

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/blueGreenDeployments

Blue/Green デプロイについて説明する

デプロイのステータスを調べて、緑色のインスタンス接続の詳細を取得するには、デプロイを説明します。

コンソール

  1. Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. [デプロイの概要] ページを開くには、次のいずれかの操作を行います。
    • [Blue/Green デプロイ ID] 列で、デプロイ ID をクリックします。
    • インスタンス名をクリックして [概要] ページを開き、[Blue Green Deployment Status] カードで [詳細] をクリックします。
  3. [デプロイの概要] ページで、[デプロイの詳細] カードを確認して、デプロイの [ステータス]、[ソース インスタンス]、[ターゲット インスタンス]、[ターゲット インスタンス エンドポイント]、[ターゲット バージョン] を確認します。また、[デプロイの進行状況] カードを確認して、タスクのステータスを確認します。

gcloud

gcloud を使用してデプロイの説明を取得するには、blue-green-deployments describe コマンドを実行します。

gcloud beta sql blue-green-deployments describe DEPLOYMENT_NAME \
  --region=REGION

次のように置き換えます。

  • DEPLOYMENT_NAME: Blue/Green デプロイの名前。
  • REGION: デプロイが作成された Google Cloud リージョン。

REST v1

Cloud SQL Admin API を使用してデプロイを記述するには、blueGreenDeployments.get メソッドに GET リクエストを送信します。

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME

REST v1beta4

Cloud SQL Admin API を使用してデプロイを記述するには、blueGreenDeployments.get メソッドに GET リクエストを送信します。

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME

ステータスと接続の詳細を確認する

コマンド出力で、デプロイの状態を確認し、ターゲットの緑色のインスタンスの接続情報を確認します。

name: projects/my-project/locations/us-central1/
  blueGreenDeployments/my-deployment
createTime: '2026-08-13T10:00:00.000Z'
state: SWITCHOVER_READY
sourceInstance: my-source-instance
switchoverTargetInstance: my-target-instance
requestedConfig:
  databaseVersion: MYSQL_8_4
deploymentMappings:
- source:
    connection: my-project:us-central1:my-source-instance
    dns: my-source-instance.123456789012.us-central1.sql.goog.
    instance: projects/my-project/instances/my-source-instance
    ipAddresses:
    - ipAddress: 10.0.0.1
      type: PRIMARY
  state: PROVISIONED
  target:
    connection: my-project:us-central1:my-target-instance
    dns: my-target-instance.123456789012.us-central1.sql.goog.
    instance: projects/my-project/instances/my-target-instance
    ipAddresses:
    - ipAddress: 10.0.0.2
      type: PRIMARY
  tasks:
  - type: PROVISION
    state: SUCCEEDED
    startTime: '2026-08-13T10:00:00.000Z'
    endTime: '2026-08-13T10:15:00.000Z'
deploymentTasks:
- type: PROVISION
  state: SUCCEEDED
  startTime: '2026-08-13T10:00:00.000Z'
  endTime: '2026-08-13T10:15:00.000Z'

レスポンスの次のフィールドを確認します。

  • name: デプロイの完全修飾リソースパス(projects/PROJECT_ID/locations/REGION/blueGreenDeployments/DEPLOYMENT_NAME の形式)。
  • createTime: デプロイが作成されたときのタイムスタンプ。
  • state: デプロイのライフサイクル全体のステータス。
    • PROVISIONING: デプロイは、グリーン環境をプロビジョニングし、レプリケーションを設定しています。
    • SWITCHOVER_READY: ステージングが完了し、論理レプリケーションが正常で、デプロイがスイッチオーバーの準備が整っています。テストを実行する前に、この状態を確認します。
    • SWITCHOVER_NOT_READY: デプロイの切り替えの準備ができていません。トラブルシューティングについては、errorDetail を確認してください。
    • SWITCHOVER_IN_PROGRESS: 切り替えオペレーションがアクティブに実行されています。
    • SWITCHOVER_COMPLETED: スイッチオーバーが正常に完了し、緑色のインスタンスがアクティブな読み取り / 書き込みインスタンスとして本番環境トラフィックを処理しています。
    • DELETING: デプロイ リソースが削除中です。
  • sourceInstance: 元の青色の本番環境インスタンスのインスタンス ID。
  • switchoverTargetInstance: 切り替え時に本番環境の読み取り / 書き込みインスタンスになる緑色のステージング インスタンスのインスタンス識別子。
  • requestedConfig: 作成時にターゲット インスタンスを対象とする構成(メジャー バージョンのアップグレードの databaseVersion など)。
  • errorDetail: スイッチオーバーの準備ができていない理由、プロビジョニング タスクまたはスイッチオーバー タスクが失敗した理由を説明する診断エラーの詳細。
  • deploymentMappings: デプロイ内のソース インスタンスとターゲット インスタンスのペアのリスト。ペアごとに、次のことを確認します。
    • source: 青色のインスタンスの接続とネットワークの詳細。インスタンス リソースパス(instance)、接続名(connection)、DNS ホスト名(dns)、IP アドレス(ipAddresses)が含まれます。
    • target: グリーン インスタンスの接続とネットワークの詳細。ターゲットの connection 名または ipAddresses を使用して、ステージング アプリケーションとテストスイートをグリーン環境に接続します。
    • diffs: 詳細ビューを使用している場合の、Blue インスタンスと Green インスタンスの構成の違い。プレビュー期間中は、データベース フラグの変更は表示されません。
    • state: ペア設定されたノードの運用ステータス(PROVISIONING、PROVISIONED、UPGRADING、UPGRADED、UPGRADE_FAILED、SWITCHOVER_IN_PROGRESS、SWITCHOVER_FAILED、SWITCHOVER_SUCCEEDED、DELETING など)。
    • tasks: このノードで実行されたデプロイ タスクの実行ステータス、開始時刻、終了時刻、エラーの詳細。
  • deploymentTasks: すべてのノードのすべてのデプロイタスクの統合リスト。タスク type(PROVISION、UPGRADE、SWITCHOVER、DELETE、POST_SWITCHOVER_OPERATIONS)、state(PENDING、RUNNING、SUCCEEDED、FAILED)、startTime、endTime、errorMessage を含む。

構成の違いを表示する

デフォルトでは、デプロイの説明は、コア メタデータを含む基本ビューを返します。ブルー インスタンスとグリーン インスタンスの構成の違いを確認するには、 Google Cloud コンソールで設定の違いを確認するか、gcloud CLI または Cloud SQL Admin API を使用して詳細ビューをリクエストします。

コンソール

  1. Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  3. [Blue Green Deployment Status] カードで、[詳細] をクリックして [Deployment の概要] ページを開きます。
  4. [Deployment の詳細] カードで、[設定の違いを表示] をクリックします。
  5. [インスタンス設定の違い] ダイアログで、ソース インスタンスとターゲット インスタンスの比較を確認し、[閉じる] をクリックします。

gcloud

--show-config-diff フラグを指定して blue-green-deployments describe コマンドを実行します。

gcloud beta sql blue-green-deployments describe DEPLOYMENT_NAME \
  --region=REGION \
  --show-config-diff

REST v1

view=DETAILED クエリ パラメータを使用して、blueGreenDeployments.get メソッドに GET リクエストを送信します。

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME?view=DETAILED

REST v1beta4

view=DETAILED クエリ パラメータを使用して、blueGreenDeployments.get メソッドに GET リクエストを送信します。

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME?view=DETAILED

構成の違いを確認する

詳細ビューを指定すると、レスポンスには deploymentMappings の各ペアノード内に diffs セクションが含まれます。

deploymentMappings:
- diffs:
  - field: database_version
    sourceValue: MYSQL_8_0
    targetValue: MYSQL_8_4
  - field: settings/tier
    sourceValue: db-custom-2-7680
    targetValue: db-custom-4-15360
  source:
    instance: projects/PROJECT_ID/instances/my-source-instance
  target:
    connection: PROJECT_ID:REGION:my-target-instance
    instance: projects/PROJECT_ID/instances/my-target-instance

diffs セクションでは、次のような属性について、ソース インスタンスとターゲット インスタンスの違いをハイライト表示します。

  • database_version: ブルー インスタンスとグリーン インスタンスのデータベース エンジン バージョン。
  • settings/tier: インスタンスに割り当てられたマシンタイプ(vCPU とメモリ)。
  • edition: Cloud SQL エディション(Cloud SQL Enterprise エディションまたは Cloud SQL Enterprise Plus エディション)。
  • availability_type: 高可用性(HA)構成(ZONAL または REGIONAL)。
  • settings/data_disk_size_gb: ストレージ容量(ギガバイト単位)。
  • settings/data_disk_type: ストレージ タイプ(PD_SSD)。

機能ワークロードのテストを開始する前に、リストされているすべての変更が計画された Deployment の仕様と一致することを確認します。

アプリケーション ワークロードを接続して検証する

アプリケーションまたはクライアント ツールを、一意の接続文字列を使用して緑色のインスタンスに接続します。

gcloud sql connect TARGET_INSTANCE_NAME --user=DB_USER

次のように置き換えます。

  • TARGET_INSTANCE_NAME: ターゲットのグリーン インスタンスの名前。
  • DB_USER: データベースのユーザー名。

次の検証手順を行います。

  • インテグレーション テストを実行する: アプリケーション クエリとストアド プロシージャが、グリーン インスタンスでエラーなしで実行されることを確認します。
  • エラーログを検査する: Cloud Logging と Cloud SQL データベースのエラーログで、非推奨の構文に関する警告や予期しないエンジンエラーがないか確認します。
  • パフォーマンス統計情報の確認: グリーン インスタンスの CPU、メモリ、I/O 指標をモニタリングして、パフォーマンスが運用 SLO を満たしていることを確認します。

次のステップ

  • 検証が成功し、緑色のインスタンスがすべての機能とパフォーマンスの基準を満たしている場合は、ブルー / グリーン デプロイを切り替えるに進みます。
  • 検証中に問題が検出された場合は、本番環境の Blue 環境に影響を与えることなく、Blue/Green デプロイを安全に削除できます。