Amazon ECS ブルー/グリーンデプロイ
ブルー/グリーンデプロイは、ブルーおよびグリーンという 2 つの同一の本番環境を実行することで、ダウンタイムおよびリスクを軽減するリリース方法です。Amazon ECS ブルー/グリーンデプロイを使用すると、本番トラフィックをルーティングする前に、新しいサービスリビジョンを検証できます。このアプローチによって変更をデプロイするより安全な方法が実現され、必要に応じてすばやくロールバックできます。
利点
ブルー/グリーンデプロイの使用には、次のメリットがあります。
-
本番トラフィックでテストしてから本番に切り替えることで、リスクを軽減します。本番トラフィックをルーティングする前に、テストトラフィックを使用して新しいデプロイを検証できます。
-
ダウンタイムのないデプロイ。本番環境はデプロイプロセス全体で引き続き利用でき、サービスの継続的な利用可能性を実現します。
-
問題が検出された場合、簡単にロールバックできます。グリーンデプロイで問題が発生した場合、サービス中断が継続されることなく、ブルーデプロイにすばやく戻ることができます。
-
管理されたテスト環境。完全にデプロイする前に実際のトラフィックパターンで新機能をテストするため、グリーン環境では隔離されたスペースが提供されます。
-
予測可能なデプロイプロセス。定義されたライフサイクルステージによる構造化されたアプローチにより、デプロイの整合性および信頼性が向上します。
-
ライフサイクルフックによる自動検証。デプロイのさまざまな段階で自動テストを実装し、機能性を検証できます。
用語
Amazon ECS ブルー/グリーンデプロイの条件は次のとおりです。
-
ベイク時間 – 本番トラフィックが移行した後に、ブルーおよびグリーンのサービスリビジョンの両方が同時に実行される期間。
-
ブルーデプロイ – 置き換える予定の、現在の本番サービスリビジョン。
-
グリーンデプロイ – デプロイする新しいサービスリビジョン。
-
ライフサイクルステージ – 「本番トラフィックの移行後」など、デプロイオペレーションの一連のイベント。
-
ライフサイクルフック – 特定のライフサイクルステージでデプロイを検証する Lambda 関数。
-
リスナー – 設定したプロトコルおよびポートを使用し、接続リクエストを確認する Elastic Load Balancing リソース。リスナーに対して定義したルールにより、Amazon ECS が登録済みターゲットにリクエストをルーティングする方法が決定します。
-
ルール – リスナーに関連付けられた Elastic Load Balancing リソース。ルールはリクエストのルーティング方法を定義し、アクション、条件、優先度で構成されます。
-
ターゲットグループ – リクエストを 1 つ以上の登録済みターゲットにルーティングするために使用される Elastic Load Balancing リソース (EC2 インスタンスなど)。リスナーを作成するときは、デフォルトアクションのターゲットグループを指定します。トラフィックは、リスナー規則で指定されたターゲットグループに転送されます。
-
トラフィック移行 – Amazon ECS がブルーデプロイからグリーンデプロイにトラフィックを移行するために使用するプロセス。Amazon ECS ブルー/グリーンデプロイの場合、すべてのトラフィックが一度にブルーサービスからグリーンサービスに移行されます。
考慮事項
デプロイタイプを選択する際、次の内容を考慮してください。
-
リソースの使用量: ブルー/グリーンデプロイではブルーおよびグリーンのサービスリビジョンの両方が一時的に実行されるため、デプロイ中にリソースの使用量が 2 倍になる場合があります。
-
デプロイモニタリング: ブルー/グリーンデプロイではデプロイステータスの詳細な情報が提供されるため、デプロイプロセスの各ステージをモニタリングできます。
-
ロールバック: ブルーリビジョンがベイク時間が終了するまで実行が継続されるため、問題が検出された場合、ブルー/グリーンデプロイでは前のバージョンへのロールバックが容易になります。