Amazon Elastic Container Service - AWS CodePipeline

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

Amazon Elastic Container Service

Amazon ECS アクションを使用して、Amazon ECS サービスとタスクセットをデプロイできます。Amazon ECS サービスは、Amazon ECS クラスターにデプロイされるコンテナアプリケーションです。Amazon ECS クラスターは、クラウドでコンテナアプリケーションをホストするインスタンスの集まりです。デプロイには、Amazon ECS で作成したタスク定義と、CodePipeline がイメージをデプロイするために使用するイメージ定義ファイルが必要です。

重要

CodePipeline の Amazon ECS 標準デプロイアクションは、Amazon ECS サービスで使用されるリビジョンに基づいて、タスク定義の独自のリビジョンを作成します。Amazon ECS サービスを更新せずにタスク定義の新しいリビジョンを作成した場合、デプロイアクションはそれらのリビジョンを無視します。

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

注記

このリファレンスのトピックでは、CodePipeline の Amazon ECS 標準デプロイアクションについて説明します。CodePipeline における Amazon ECS から CodeDeploy の blue/green デプロイアクションのリファレンス情報については、Amazon Elastic Container Service と CodeDeploy blue-green を参照してください。

アクションタイプ

  • カテゴリ:Deploy

  • 所有者: AWS

  • プロバイダー: ECS

  • バージョン: 1

設定パラメータ

ClusterName

必須: はい

Amazon ECS 内の Amazon ECS クラスター。

ServiceName

必須: はい

Amazon ECS で作成した Amazon ECS サービス。

FileName

必須: いいえ

イメージ定義ファイルの名前は、サービスのコンテナ名およびイメージとタグを説明する JSON ファイルです。このファイルは ECS 標準デプロイに使用します。詳細については、入力アーティファクト および Amazon ECS 標準デプロイアクション用の imagedefinitions.json ファイル を参照してください。

デプロイメントタイムアウト

必須: いいえ

Amazon ECS デプロイアクションのタイムアウト (分)。タイムアウトは、このアクションの最大デフォルトタイムアウトまで設定できます。例:

"DeploymentTimeout": "15"

入力アーティファクト

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

  • 説明: アクションはパイプラインのソースファイルリポジトリ内の imagedefinitions.json ファイル。イメージ定義ドキュメントは、Amazon ECS のコンテナ名およびイメージとタグについて説明する JSON ファイルです。CodePipeline はそのファイルを使用して、Amazon ECR などのイメージリポジトリからイメージを取得します。アクションが自動化されていないパイプラインの場合、手動で imagedefinitions.json ファイルを追加することもできます。imagedefinitions.json ファイルの詳細については、「Amazon ECS 標準デプロイアクション用の imagedefinitions.json ファイル」を参照してください。

    アクションには、イメージリポジトリにすでにプッシュされている既存のイメージが必要です。イメージマッピングは imagedefinitions.json ファイルの場合、アクションで Amazon ECR ソースをソースアクションとしてパイプラインに含める必要はありません。

出力アーティファクト

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

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

アクションの宣言

YAML
Name: DeployECS ActionTypeId: Category: Deploy Owner: AWS Provider: ECS Version: '1' RunOrder: 2 Configuration: ClusterName: my-ecs-cluster ServiceName: sample-app-service FileName: imagedefinitions.json DeploymentTimeout: '15' OutputArtifacts: [] InputArtifacts: - Name: my-image
JSON
{ "Name": "DeployECS", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "ECS", "Version": "1" }, "RunOrder": 2, "Configuration": { "ClusterName": "my-ecs-cluster", "ServiceName": "sample-app-service", "FileName": "imagedefinitions.json", "DeploymentTimeout": "15" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "my-image" } ] },

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

  • チュートリアル: CodePipeline を使用した継続的なデプロイ — このチュートリアルでは、CodeCommit などのソースファイルリポジトリに格納する Dockerfile を作成する方法を説明します。次に、このチュートリアルでは、Docker イメージをビルドして Amazon ECR にプッシュし、imagedefinitions.json ファイルを作成する CodeBuild BuildSpec ファイルを組み込む方法を示します。最後に、Amazon ECS サービスとタスク定義を作成し、Amazon ECS デプロイアクションを使用してパイプラインを作成します。

    注記

    このトピックとチュートリアルでは、CodePipeline の Amazon ECS 標準デプロイアクションについて説明します。CodePipeline における Amazon ECS から CodeDeploy の blue/green デプロイアクションの情報については、チュートリアル: Amazon ECR ソース、ECS - CodeDeploy 間のデプロイでパイプラインを作成する を参照してください。

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