Amazon ECS ブルー/グリーンデプロイ - Amazon Elastic Container Service

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 倍になる場合があります。

  • デプロイモニタリング: ブルー/グリーンデプロイではデプロイステータスの詳細な情報が提供されるため、デプロイプロセスの各ステージをモニタリングできます。

  • ロールバック: ブルーリビジョンがベイク時間が終了するまで実行が継続されるため、問題が検出された場合、ブルー/グリーンデプロイでは前のバージョンへのロールバックが容易になります。