

# Amazon ECS ブルー/グリーンデプロイに必要なリソース
<a name="blue-green-deployment-implementation"></a>

マネージドトラフィックのシフトの有無にかかわらず、Amazon ECS ブルー/グリーンデプロイを使用できます。サービスが Elastic Load Balancing または Service Connect を使用している場合、Amazon ECS はブルーとグリーンのサービスリビジョン間のトラフィックシフトを管理します。サービスがロードバランサーまたは Service Connect (ヘッドレスサービス) を使用していない場合でも、制御されたロールアウトにブルー/グリーンデプロイを使用できますが、Amazon ECS はトラフィックシフトの自動管理は行いません。

マネージドトラフィックシフトについて、次のいずれかを設定します。
+ Elastic Load Balancing
+ Service Connect

次のリストは、Amazon ECS ブルー/グリーンデプロイに設定する必要があるものに対する大まかな概要を示しています。
+ サービスで Application Load Balancer、Network Load Balancer、または Service Connect を使用している場合は、マネージドトラフィックのシフトに適したリソースを設定します。
  + Application Load Balancer – 詳細については、「[ブルー/グリーンデプロイ、リニアデプロイおよびカナリアデプロイ用の Application Load Balancer リソース](alb-resources-for-blue-green.md)」を参照してください。
  + Network Load Balancer – 詳細については、「[Amazon ECS ブルー/グリーン、リニアおよびカナリアデプロイの Network Load Balancer リソース](nlb-resources-for-blue-green.md)」を参照してください。
  + Service Connect – 詳細については、「[Amazon ECS ブルー/グリーンデプロイ、リニアデプロイおよびカナリアデプロイ用の Service Connect リソース](service-connect-blue-green.md)」を参照してください。

  サービスがヘッドレス (ロードバランサーも Service Connect もなし) の場合は、追加のトラフィックシフトリソースを設定する必要はありません。
+ サービスのデプロイコントローラーを `ECS` に設定します。
+ サービス定義でデプロイ戦略を `blue/green` として設定します。
+ 必要に応じて、次のように追加のパラメータを設定します。
  + 新しいデプロイのベイク時間
  + 自動ロールバックの CloudWatch アラーム
  + テスト用のデプロイライフサイクルフック (指定されたデプロイステージで実行される Lambda 関数)

## ベストプラクティス
<a name="blue-green-deployment-best-practices"></a>

Amazon ECS ブルー/グリーンデプロイを正常に処理するには、次のベストプラクティスに従ってください。
+ アプリケーションの正常性を正確に反映する、適切なヘルスチェックを設定します。
+ グリーンデプロイの十分なテストを可能にするベイク時間を設定します。
+ CloudWatch アラームを実装し、問題を自動的に検出してロールバックをトリガーします。
+ ライフサイクルフックを使用し、各デプロイステージで自動テストを実行します。
+ アプリケーションが同時に実行されているブルーおよびグリーンのサービスリビジョンの両方を処理できることを確認します。
+ デプロイ中に両方のサービスリビジョンを処理するため、十分なクラスターキャパシティの確保を計画します。
+ ロールバック手順は、本番環境での実装前にテストします。