Amazon Elastic Contain Service CodeDeploy ブルー/グリーン - AWS CodePipeline

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Elastic Contain Service CodeDeploy ブルー/グリーン

AWS CodePipeline で、Blue/Green デプロイを使用してコンテナアプリケーションをデプロイするパイプラインを構成します。Blue/Green デプロイでは、古いバージョンと一緒に新しいバージョンのアプリケーションを起動し、トラフィックを再ルーティングする前に新しいバージョンをテストできます。また、デプロイプロセスをモニタリングし、問題がある場合は迅速にロールバックすることもできます。

完成したパイプラインは、イメージまたはタスク定義ファイルの変更を検出し、 CodeDeploy Amazon ECS クラスターとロードバランサーにトラフィックをルーティングしてデプロイします。 CodeDeploy 特別なポートを介して新しいタスクをターゲットにできる新しいリスナーをロードバランサーに作成します。たとえば、ソースロケーションを使用するようにパイプラインを設定することもできます。 CodeCommit リポジトリ。Amazon ECS タスク定義が保存されています。

パイプラインを作成する前に、Amazon ECS リソースをすでに作成しておく必要があります。 CodeDeploy リソース、ロードバランサーとターゲットグループ。イメージリポジトリにイメージにタグを付けて保存し、タスク定義とタスク定義をアップロードしておく必要があります。 AppSpec ファイルをファイルリポジトリに保存します。

注記

このトピックでは、以下の Amazon ECS について説明します。 CodeDeploy CodePipeline の Blue/Green デプロイアクション。CodePipeline での Amazon ECS 標準デプロイアクションの詳細については、「Amazon Elastic Container Service」を参照してください。

アクションタイプ

  • カテゴリ:Deploy

  • 所有者: AWS

  • プロバイダー: CodeDeployToECS

  • バージョン: 1

設定パラメータ

ApplicationName

必須: はい

CodeDeploy 内のアプリケーションの名前。パイプラインを作成する前に、CodeDeploy でアプリケーションをすでに作成しておく必要があります。

DeploymentGroupName

必須: はい

用に作成した Amazon ECS タスクセットに指定されているデプロイグループ。 CodeDeploy アプリケーションをデプロイします。パイプラインを作成する前に、CodeDeploy でデプロイグループをすでに作成しておく必要があります。

TaskDefinitionTemplateArtifact

必須: はい

デプロイアクションにタスク定義ファイルを提供する入力アーティファクトの名前。これは通常、ソースアクションからの出力アーティファクトの名前です。コンソールを使用する場合、ソースアクションの出力アーティファクトのデフォルト名は SourceArtifact になります。

AppSpectemplateArtifact

必須: はい

提供する入力アーティファクトの名前。 AppSpec ファイルをデプロイアクションに追加します。これは通常、ソースアクションからの出力アーティファクトの名前です。コンソールを使用する場合、ソースアクションの出力アーティファクトのデフォルト名は SourceArtifact になります。

AppSpecTemplatePath

必須: いいえ

ファイルの名前。 AppSpec パイプラインのソースファイルのロケーションに保存されているファイル (パイプラインのなど)。 CodeCommit repository. デフォルトのファイル名は appspec.yaml です。もし、 AppSpec ファイルは同じ名前で、ファイルリポジトリのルートレベルに保存されているため、ファイル名を指定する必要はありません。パスがデフォルトでない場合は、パスとファイル名を入力します。

TaskDefinitionTemplatePath

必須: いいえ

パイプラインファイルのソースロケーションに保存されているタスク定義のファイル名 (たとえば、パイプラインのファイル名)。 CodeCommit repository. デフォルトのファイル名は taskdef.json です。タスク定義ファイルが同じ名前で、ファイルリポジトリのルートレベルに保存されている場合は、ファイル名を指定する必要はありません。パスがデフォルトでない場合は、パスとファイル名を入力します。

イメージ<Number>ArtifactName

必須: いいえ

デプロイアクションにイメージを提供する入力アーティファクトの名前。これは一般に、Amazon ECR ソースアクションからの出力など、イメージリポジトリの出力アーティファクトです。

<Number> に指定できる値は 1 から 4 までです。

イメージ<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 ファイルの詳細については、「Amazon ECS Blue/Green デプロイアクション用の imageDetail.json ファイル」を参照してください。

出力アーティファクト

  • アーティファクトの数: 0

  • 説明: 出力アーティファクトは、このアクションタイプには適用されません。

アクションの宣言

YAML
Name: Deploy Actions: - Name: Deploy ActionTypeId: Category: Deploy Owner: AWS Provider: CodeDeployToECS Version: '1' RunOrder: 1 Configuration: AppSpecTemplateArtifact: SourceArtifact ApplicationName: ecs-cd-application DeploymentGroupName: ecs-deployment-group Image1ArtifactName: MyImage Image1ContainerName: IMAGE1_NAME TaskDefinitionTemplatePath: taskdef.json AppSpecTemplatePath: appspec.yaml TaskDefinitionTemplateArtifact: SourceArtifact OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact - Name: MyImage Region: us-west-2 Namespace: DeployVariables
JSON
{ "Name": "Deploy", "Actions": [ { "Name": "Deploy", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CodeDeployToECS", "Version": "1" }, "RunOrder": 1, "Configuration": { "AppSpecTemplateArtifact": "SourceArtifact", "ApplicationName": "ecs-cd-application", "DeploymentGroupName": "ecs-deployment-group", "Image1ArtifactName": "MyImage", "Image1ContainerName": "IMAGE1_NAME", "TaskDefinitionTemplatePath": "taskdef.json", "AppSpecTemplatePath": "appspec.yaml", "TaskDefinitionTemplateArtifact": "SourceArtifact" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" }, { "Name": "MyImage" } ], "Region": "us-west-2", "Namespace": "DeployVariables" } ] }

このアクションを利用する際に役立つ関連リソースは以下の通りです。

  • チュートリアル: Amazon ECR ソース、ECS-CodeDeploy 間のデプロイでパイプラインを作成する— このチュートリアルでは、 CodeDeploy Blue/Green デプロイに必要な Amazon ECS リソースです。このチュートリアルでは、Docker イメージを Amazon ECR にプッシュし、Docker イメージ名、コンテナ名、Amazon ECS サービス名、およびロードバランサーの設定を一覧表示する Amazon ECS タスク定義を作成する方法について説明します。このチュートリアルでは、 AppSpec デプロイ用のファイルとパイプライン。

    注記

    このトピックとチュートリアルでは、CodePipeline の CodeDeploy および ECS Blue/Green アクションについて説明します。CodePipeline の ECS 標準アクションの詳細については、「」を参照してください。チュートリアル: CodePipeline を使用した継続的なデ

  • AWS CodeDeployユーザーガイド— Blue/Green デプロイでのロードバランサー、本稼働リスナー、ターゲットグループ、および Amazon ECS アプリケーションの使用方法については、「」を参照してください。チュートリアル: Amazon ECS サービスをデプロイします。AWS CodeDeploy ユーザーガイド 内のリファレンスの情報では、Amazon ECS および AWS CodeDeploy を使用した Blue/Green デプロイの概要を説明します。

  • Amazon Elastic Container Service デベロッパーガイド - Docker イメージとコンテナ、ECS サービスとクラスター、および ECS タスクセットの操作については、「Amazon ECS とは」を参照してください。