翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Elastic Container Service と CodeDeploy ブルーグリーンデプロイアクションリファレンス
ブルー/グリーンデプロイを使用してコンテナアプリケーションをデプロイ AWS CodePipeline するパイプラインを で設定できます。Blue/Green デプロイでは、古いバージョンと一緒に新しいバージョンのアプリケーションを起動し、トラフィックを再ルーティングする前に新しいバージョンをテストできます。また、デプロイプロセスをモニタリングし、問題がある場合は迅速にロールバックすることもできます。
完成したパイプラインは、イメージまたはタスク定義ファイルへの変更を検出し、 CodeDeploy を使用してトラフィックを Amazon ECSクラスターにルーティングしてデプロイし、ロードバランサーに新しいリスナー CodeDeploy を作成します。これにより、特別なポートを介して新しいタスクをターゲットにできます。Amazon ECSタスク定義が保存されている CodeCommit リポジトリなどのソースロケーションを使用するようにパイプラインを設定することもできます。
パイプラインを作成する前に、Amazon ECSリソース、 CodeDeploy リソース、ロードバランサーとターゲットグループを既に作成しておく必要があります。イメージリポジトリにイメージにタグ付けして保存し、タスク定義と AppSpec ファイルをファイルリポジトリにアップロードする必要があります。
注記
このトピックでは、 の Amazon ECS から CodeDeploy ブルー/グリーンへのデプロイアクションについて説明します CodePipeline。での Amazon ECS標準デプロイアクションのリファレンス情報については CodePipeline、「」を参照してくださいAmazon Elastic Container Service デプロイアクションリファレンス。
アクションタイプ
-
カテゴリ:
Deploy
-
所有者:
AWS
-
プロバイダー:
CodeDeployToECS
-
バージョン:
1
設定パラメータ
- ApplicationName
-
必須:はい
内のアプリケーションの名前 CodeDeploy。パイプラインを作成する前に、 でアプリケーションを作成しておく必要があります CodeDeploy。
- DeploymentGroupName
-
必須:はい
CodeDeploy アプリケーション用に作成した Amazon ECSタスクセットに指定されたデプロイグループ。パイプラインを作成する前に、 でデプロイグループを既に作成しておく必要があります CodeDeploy。
- TaskDefinitionTemplateArtifact
-
必須:はい
デプロイアクションにタスク定義ファイルを提供する入力アーティファクトの名前。これは通常、ソースアクションからの出力アーティファクトの名前です。コンソールを使用する場合、ソースアクションの出力アーティファクトのデフォルト名は
SourceArtifact
になります。 - AppSpecTemplateArtifact
-
必須:はい
デプロイアクションに AppSpec ファイルを提供する入力アーティファクトの名前。この値は、パイプラインの実行時に更新されます。これは通常、ソースアクションからの出力アーティファクトの名前です。コンソールを使用する場合、ソースアクションの出力アーティファクトのデフォルト名は
SourceArtifact
になります。 AppSpec ファイルTaskDefinition
内の の場合、ここに示すように<TASK_DEFINITION>
プレースホルダーテキストを保持できます。 - AppSpecTemplatePath
-
必須:いいえ
パイプラインの CodeCommit リポジトリなど、パイプラインソースファイルの場所に保存されている AppSpec ファイルのファイル名。デフォルトのファイル名は
appspec.yaml
です。ファイルの名前 AppSpec が同じで、ファイルリポジトリのルートレベルに保存されている場合は、ファイル名を指定する必要はありません。パスがデフォルトでない場合は、パスとファイル名を入力します。 - TaskDefinitionTemplatePath
-
必須:いいえ
パイプラインの CodeCommit リポジトリなど、パイプラインファイルのソースロケーションに保存されているタスク定義のファイル名。デフォルトのファイル名は
taskdef.json
です。タスク定義ファイルが同じ名前で、ファイルリポジトリのルートレベルに保存されている場合は、ファイル名を指定する必要はありません。パスがデフォルトでない場合は、パスとファイル名を入力します。 - Image<Number>ArtifactName
-
必須:いいえ
デプロイアクションにイメージを提供する入力アーティファクトの名前。これは通常、Amazon ECRソースアクションからの出力など、イメージリポジトリの出力アーティファクトです。
<Number>
に指定できる値は 1 から 4 までです。 - Image<Number>ContainerName
-
必須:いいえ
Amazon ECRソースリポジトリなど、イメージリポジトリから使用可能なイメージの名前。
<Number>
に指定できる値は 1 から 4 までです。
入力アーティファクト
-
アーティファクトの数:
1 to 5
-
説明:
CodeDeployToECS
アクションは、最初にタスク定義ファイルとソース AppSpec ファイルリポジトリ内のファイルを検索し、次にイメージリポジトリ内のイメージを検索し、次にタスク定義の新しいリビジョンを動的に生成し、最後に AppSpec コマンドを実行してタスクセットとコンテナをクラスターにデプロイします。CodeDeployToECS
アクションは、イメージをイメージURIにマッピングするimageDetail.json
ファイルを検索します。Amazon ECRイメージリポジトリに変更をコミットすると、パイプラインECRソースアクションはそのコミット用のimageDetail.json
ファイルを作成します。アクションが自動化されていないパイプラインの場合、手動でimageDetail.json
ファイルを追加することもできます。imageDetail.json
ファイルの詳細については、「imageDetailAmazon ECS Blue/Green デプロイアクションの .json ファイル」を参照してください。CodeDeployToECS
アクションは、タスク定義の新しいリビジョンを動的に生成します。このフェーズでは、このアクションにより、タスク定義ファイルのプレースホルダーが imageDetail.json ファイルからURI取得したイメージに置き換えられます。例えば、IMAGE1_NAME を Image1ContainerName parameter として設定する場合は、タスク定義ファイルのイメージフィールドの値としてプレースホルダー <IMAGE1_NAME> を指定する必要があります。この場合、アクション CodeDeployToECSは、Image1ArtifactName として指定したアーティファクトの imageDetail.json からURI取得した実際のイメージにプレースホルダー <IMAGE1_NAME> を置き換えます。タスク定義の更新の場合、 CodeDeploy
AppSpec.yaml
ファイルにはTaskDefinition
プロパティが含まれます。TaskDefinition: <TASK_DEFINITION>
このプロパティは、新しいタスク定義が作成された後、
CodeDeployToECS
アクションによって更新されます。TaskDefinition
フィールドの値の場合、プレースホルダーテキストは <TASK_DEFINITION> である必要があります。このCodeDeployToECS
アクションは、このプレースホルダーを動的に生成されたタスク定義ARNの実際の に置き換えます。
出力アーティファクト
-
アーティファクトの数:
0
-
説明: 出力アーティファクトは、このアクションタイプには適用されません。
アクションの宣言
以下も参照してください。
このアクションを利用する際に役立つ関連リソースは以下の通りです。
-
チュートリアル: Amazon ECRソースと ECSからCodeDeploy デプロイまでのパイプラインを作成する – このチュートリアルでは、ブルー/グリーンデプロイに必要な CodeDeploy と Amazon ECSリソースの作成について説明します。このチュートリアルでは、Docker イメージを Amazon にプッシュECRし、Docker イメージ名、コンテナ名、Amazon ECSサービス名、ロードバランサー設定を一覧表示する Amazon ECSタスク定義を作成する方法を示します。次に、チュートリアルでは、デプロイ用の AppSpec ファイルとパイプラインの作成について説明します。
注記
このトピックとチュートリアルでは、 の CodeDeploy/ECS blue/green アクションについて説明します CodePipeline。のECS標準アクションの詳細については CodePipeline、「チュートリアル: での継続的デプロイ CodePipeline」を参照してください。
-
AWS CodeDeploy ユーザーガイド – ブルー/グリーンデプロイでロードバランサー、本番リスナー、ターゲットグループ、Amazon ECSアプリケーションを使用する方法については、「チュートリアル: Amazon ECS Service のデプロイ」を参照してください。AWS CodeDeploy ユーザーガイドのこのリファレンス情報は、Amazon ECSおよび でのブルー/グリーンデプロイの概要を提供します AWS CodeDeploy。
-
Amazon Elastic Container Service デベロッパーガイド – Docker イメージとコンテナ、ECSサービス、クラスター、ECSタスクセットの操作については、「Amazon とは」を参照してくださいECS。