

# CloudFormation を使用して ECS ブルー/グリーンデプロイメントを管理する際の考慮事項
<a name="blue-green-considerations"></a>

CloudFormation を使用して CodeDeploy を通じて ECS ブルー/グリーンデプロイを実行するプロセスは、CodeDeploy のみを使用する標準の ECS デプロイとは異なります。これらの違いの詳細については、「*AWS CodeDeploy ユーザーガイド*」の「[CodeDeploy および CloudFormation を通じた Amazon ECS ブルー/グリーンデプロイの違い](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments-create-ecs-cfn.html#differences-ecs-bg-cfn)」を参照してください。

CloudFormation を使用してブルー/グリーンデプロイを管理する場合、留意すべきいくつかの制限と考慮事項があります。
+ 特定のリソースに対する更新のみがグリーンデプロイを開始します。詳細については、「[グリーンデプロイを開始するリソースの更新](about-blue-green-deployments.md#blue-green-resources)」を参照してください。
+ グリーンデプロイを開始するリソースへの更新と他のリソースへの更新を同じスタック更新に含めることはできません。詳細については、「[グリーンデプロイを開始するリソースの更新](about-blue-green-deployments.md#blue-green-resources)」を参照してください。
+ デプロイターゲットとして指定できる ECS サービスは、1 つだけです。
+ CloudFormation によって難読化された値を持つパラメータは、グリーンデプロイ時に CodeDeploy によって更新できず、エラーやスタックの更新に失敗します。具体的には次のとおりです。
  + `NoEcho` 属性で定義されたパラメータ。
  + 動的な参照を使用して外部サービスから値を取得するパラメータ。動的参照の詳細については、[動的参照を使用して他のサービスに格納されている値を取得する](dynamic-references.md) を参照してください。
+ まだ進行中のグリーンデプロイをキャンセルするには、CodeDeploy または ECS ではなく、CloudFormation でスタックの更新をキャンセルします。詳細については、「[スタック更新をキャンセルする](using-cfn-stack-update-cancel.md)」を参照してください。更新が完了した後にキャンセルすることはできません。ただし、以前の設定を使用してスタックを再度更新することはできます。
+ 次の CloudFormation の機能は現在、ECS ブルー/グリーンデプロイを定義するテンプレートではサポートされていません。
  + 他のスタックから値をインポートするための[出力](outputs-section-structure.md)の宣言または [Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-importvalue.html) の使用。
  + リソースのインポート。リソースのインポートにの詳細については、「[AWS リソースを CloudFormation スタックにインポートする](import-resources.md)」を参照してください。
  + ネストされたスタックリソースを含むテンプレートで `AWS::CodeDeploy::BlueGreen` フックを使用します。ネストされたスタックの詳細については、「[ネストされたスタックを使用してテンプレートを再利用可能な部分に分割する](using-cfn-nested-stacks.md)」を参照してください。
  + ネストされたスタックでの `AWS::CodeDeploy::BlueGreen` フックの使用。