このドキュメントでは、Cloud SQL のブルー / グリーン デプロイを削除する方法について説明し、切り替え前後の削除動作の重要な違いについて詳しく説明します。
始める前に
Blue/Green デプロイを削除またはキャンセルするには、必要なロールと権限があることを確認します。
必要なロールと権限
Blue/Green デプロイを削除するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
- Cloud SQL 管理者(
roles/cloudsql.admin)
カスタムロールの場合は、次の権限があることを確認します。
cloudsql.blueGreenDeployments.deletecloudsql.blueGreenDeployments.getcloudsql.instances.deletecloudsql.operations.get
Cloud SQL の IAM ロールと権限の詳細については、ロールと権限をご覧ください。
削除の動作について
delete オペレーションの動作は、切り替えが発生したかどうかによって異なります。
| デプロイ ステージ | デフォルトの動作 | インスタンスへの影響 |
|---|---|---|
| 切り替え前 (キャンセル) |
デプロイ メタデータを削除し、自動的に緑色のステージング インスタンスを削除します。 | 青色の本番環境インスタンスは引き続き実行され、まったく影響を受けません。 |
| 切り替え後 (削除) |
デプロイのメタデータを削除しますが、デフォルトでは両方のインスタンスをスタンドアロン インスタンスとして保持します。 | 緑色のインスタンスは、アクティブな読み取り / 書き込みデータベース インスタンスとして本番環境のトラフィックの処理を継続します。[古いソース インスタンスを削除] オプションを選択するか、省略可能な --delete-old-source フラグを渡すか、deleteOldSource パラメータを true に設定して削除しない限り、青色のインスタンスはスタンドアロンの読み取り / 書き込みインスタンスとして保持されます。 |
ケース 1: スイッチオーバー前にデプロイをキャンセルする
検証中に問題が検出された場合や、アップグレードを続行しない場合は、切り替えをトリガーする前にデプロイを削除します。
コンソール
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- [Blue Green Deployment Status] カードで、[詳細] をクリックして [Deployment の概要] ページを開きます。
- [デプロイを削除] をクリックします。
- [デプロイを削除しますか?] ダイアログの [デプロイ ID] フィールドにデプロイ ID を入力して確定します。
- [削除] をクリックします。
gcloud
gcloud を使用して Blue/Green デプロイをキャンセルして削除するには、blue-green-deployments delete コマンドを実行します。
gcloud beta sql blue-green-deployments delete DEPLOYMENT_NAME \ --region=REGION
次のように置き換えます。
- DEPLOYMENT_NAME: Blue/Green デプロイの名前。
- REGION: デプロイが作成された Google Cloud リージョン。
REST v1
Cloud SQL Admin API を使用してブルー / グリーン デプロイをキャンセルして削除するには、blueGreenDeployments.delete メソッドに DELETE リクエストを送信します。
DELETE https://sqladmin.googleapis.com/v1/ projects/PROJECT_ID/locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- REGION: デプロイが作成された Google Cloud リージョン。
- DEPLOYMENT_NAME: Blue/Green デプロイの名前。
REST v1beta4
Cloud SQL Admin API を使用してブルー / グリーン デプロイをキャンセルして削除するには、blueGreenDeployments.delete メソッドに DELETE リクエストを送信します。
DELETE https://sqladmin.googleapis.com/sql/v1beta4/ projects/PROJECT_ID/locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- REGION: デプロイが作成された Google Cloud リージョン。
- DEPLOYMENT_NAME: Blue/Green デプロイの名前。
これにより、緑色のステージング インスタンスが削除され、環境がダウンタイムなしで元の単一インスタンスの状態に戻ります。
ケース 2: 切り替え後に削除する
切り替えと検証期間が正常に完了したら、以前の Blue インスタンスとともにデプロイを削除して、2 つのインスタンスに対する課金を停止できます。
コンソール
-
Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- [Blue Green Deployment Status] カードで、[詳細] をクリックして [Deployment の概要] ページを開きます。
- [デプロイを削除] をクリックします。
- [デプロイを削除しますか?] ダイアログの [デプロイ ID] フィールドにデプロイ ID を入力して確定します。
- 以前の青色のインスタンスを削除するか保持するかを選択します。
- オプション A(デプロイと以前の青色インスタンスを削除): [古いソース インスタンスを削除] チェックボックスをオンにします。
- オプション B(デプロイ メタデータのみを削除): [古いソース インスタンスを削除] チェックボックスをオフのままにして、以前の青色のインスタンスをスタンドアロン インスタンスとして保持します。
- [削除] をクリックします。
gcloud
gcloud を使用して Blue/Green デプロイを削除するには、blue-green-deployments delete コマンドを実行します。
オプション A: デプロイと以前の Blue インスタンスを削除する
デプロイのメタデータを削除し、以前の青色のインスタンスを自動的に削除するには、オプションの --delete-old-source フラグを渡します。
gcloud beta sql blue-green-deployments delete DEPLOYMENT_NAME \ --region=REGION \ --delete-old-source
次のように置き換えます。
- DEPLOYMENT_NAME: Blue/Green デプロイの名前。
- REGION: デプロイが作成された Google Cloud リージョン。
メッセージが表示されたら、以前のブルー インスタンスを完全に削除することを確定します。
オプション B: デプロイのメタデータのみを削除する(以前の青色のインスタンスを保持する)
以前の青色のインスタンスをスタンドアロン インスタンスとして(バックアップや過去の分析クエリなどとして)実行し続ける場合は、省略可能な --delete-old-source フラグを省略します。
gcloud beta sql blue-green-deployments delete DEPLOYMENT_NAME \ --region=REGION
次のように置き換えます。
- DEPLOYMENT_NAME: Blue/Green デプロイの名前。
- REGION: デプロイが作成された Google Cloud リージョン。
このコマンドは、Blue/Green デプロイのメタデータのみを削除します。以前の Blue インスタンスを手動で削除するまで、両方のインスタンスはスタンドアロン インスタンスとして残ります。両方のインスタンスがプロジェクトでアクティブな状態のままになり、両方に対して引き続き課金されます。
REST v1
Cloud SQL Admin API を使用してブルー / グリーン デプロイを削除するには、blueGreenDeployments.delete メソッドに DELETE リクエストを送信します。
オプション A: デプロイと以前の Blue インスタンスを削除する
デプロイ メタデータを削除し、以前の青色のインスタンスを自動的に削除するには、deleteOldSource クエリ パラメータを true に設定します。
DELETE https://sqladmin.googleapis.com/v1/ projects/PROJECT_ID/locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME?deleteOldSource=true
次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- REGION: デプロイが作成された Google Cloud リージョン。
- DEPLOYMENT_NAME: Blue/Green デプロイの名前。
オプション B: デプロイのメタデータのみを削除する(以前の青色のインスタンスを保持する)
以前の青色のインスタンスをスタンドアロン インスタンスとして(バックアップや過去の分析クエリなど)実行し続ける場合は、deleteOldSource クエリ パラメータを省略します。
DELETE https://sqladmin.googleapis.com/v1/ projects/PROJECT_ID/locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- REGION: デプロイが作成された Google Cloud リージョン。
- DEPLOYMENT_NAME: Blue/Green デプロイの名前。
このリクエストでは、Blue/Green デプロイのメタデータのみが削除されます。両方のインスタンスは、以前の Blue インスタンスを手動で削除するまで、スタンドアロン インスタンスとして残ります。両方のインスタンスがプロジェクトでアクティブな状態のままになり、両方に対して引き続き課金されます。
REST v1beta4
Cloud SQL Admin API を使用してブルー / グリーン デプロイを削除するには、blueGreenDeployments.delete メソッドに DELETE リクエストを送信します。
オプション A: デプロイと以前の Blue インスタンスを削除する
デプロイ メタデータを削除し、以前の青色のインスタンスを自動的に削除するには、deleteOldSource クエリ パラメータを true に設定します。
DELETE https://sqladmin.googleapis.com/sql/v1beta4/ projects/PROJECT_ID/locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME?deleteOldSource=true
次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- REGION: デプロイが作成された Google Cloud リージョン。
- DEPLOYMENT_NAME: Blue/Green デプロイの名前。
オプション B: デプロイのメタデータのみを削除する(以前の青色のインスタンスを保持する)
以前の青色のインスタンスをスタンドアロン インスタンスとして(バックアップや過去の分析クエリなど)実行し続ける場合は、deleteOldSource クエリ パラメータを省略します。
DELETE https://sqladmin.googleapis.com/sql/v1beta4/ projects/PROJECT_ID/locations/REGION/ blueGreenDeployments/DEPLOYMENT_NAME
次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- REGION: デプロイが作成された Google Cloud リージョン。
- DEPLOYMENT_NAME: Blue/Green デプロイの名前。
このリクエストでは、Blue/Green デプロイのメタデータのみが削除されます。両方のインスタンスは、以前の Blue インスタンスを手動で削除するまで、スタンドアロン インスタンスとして残ります。両方のインスタンスがプロジェクトでアクティブな状態のままになり、両方に対して引き続き課金されます。
次のステップ
- Blue/Green デプロイについてを確認して、デプロイ アーキテクチャとライフサイクル状態を理解する。
- メジャー バージョンのインプレース アップグレードについて学習する。
- 高可用性の構成について学習する。