CloudFormation を使用して ECS ブルー/グリーンデプロイメントを管理する際の考慮事項
CloudFormation を使用して CodeDeploy を通じて ECS ブルー/グリーンデプロイを実行するプロセスは、CodeDeploy のみを使用する標準の ECS デプロイとは異なります。これらの違いの詳細については、「AWS CodeDeploy ユーザーガイド」の「CodeDeploy および AWS CloudFormation を通じた Amazon ECS ブルー/グリーンデプロイの違い」を参照してください。
CloudFormation を使用してブルー/グリーンデプロイを管理する場合、留意すべきいくつかの制限と考慮事項があります。
-
特定のリソースに対する更新のみがグリーンデプロイを開始します。詳細については、「グリーンデプロイを開始するリソースの更新」を参照してください。
-
グリーンデプロイを開始するリソースへの更新と他のリソースへの更新を同じスタック更新に含めることはできません。詳細については、「グリーンデプロイを開始するリソースの更新」を参照してください。
-
デプロイターゲットとして指定できる ECS サービスは、1 つだけです。
-
CloudFormation によって難読化された値を持つパラメータは、グリーンデプロイ時に CodeDeploy によって更新できず、エラーやスタックの更新に失敗します。具体的には次のとおりです。
-
NoEcho
属性で定義されたパラメータ。 -
動的な参照を使用して外部サービスから値を取得するパラメータ。動的参照の詳細については、動的参照を使用して他のサービスに格納されている値を取得する を参照してください。
-
-
まだ進行中のグリーンデプロイをキャンセルするには、CodeDeploy または ECS ではなく、CloudFormation でスタックの更新をキャンセルします。詳細については、「スタック更新をキャンセルする」を参照してください。更新が完了した後にキャンセルすることはできません。ただし、以前の設定を使用してスタックを再度更新することはできます。
-
次の CloudFormation の機能は現在、ECS ブルー/グリーンデプロイを定義するテンプレートではサポートされていません。
-
他のスタックから値をインポートするための CloudFormation テンプレートの Outputs セクション構文リファレンス の宣言または Fn::ImportValue の使用。
-
リソースのインポート。リソースのインポートにの詳細については、「リソースインポートを使用して CloudFormation スタックに AWS リソースをインポートする」を参照してください。
-
ネストされたスタックリソースを含むテンプレートで
AWS::CodeDeploy::BlueGreen
フックを使用します。ネストされたスタックの詳細については、「ネストされたスタックを使用して他のスタック内にスタックを埋め込む」を参照してください。 -
ネストされたスタックでの
AWS::CodeDeploy::BlueGreen
フックの使用。
-