翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon EC2 アクションリファレンス
Amazon EC2 EC2 アクションを使用して、デプロイフリートにアプリケーションコードをデプロイします。デプロイフリートは、Amazon EC2 Linux インスタンスまたは Linux SSM マネージドノードで構成できます。インスタンスに SSM エージェントがインストールされている必要があります。
注記
このアクションは Linux インスタンスタイプのみをサポートします。サポートされているフリートの最大サイズは 500 インスタンスです。
アクションは、指定された最大値に基づいてインスタンスの数を選択します。以前のインスタンスで失敗したインスタンスが最初に選択されます。以前に失敗したアクションなど、インスタンスが既に同じ入力アーティファクトのデプロイを受信している場合、アクションは特定のインスタンスでのデプロイをスキップします。
注記
このアクションは V2 タイプのパイプラインでのみサポートされています。
トピック
アクションタイプ
-
カテゴリ:
Deploy -
所有者:
AWS -
プロバイダー:
EC2 -
バージョン:
1
設定パラメータ
- InstanceTagKey
-
必須: はい
Amazon EC2 で作成したインスタンスのタグキー (
Nameなど)。 - InstanceTagValue
-
必須: いいえ
Amazon EC2 で作成したインスタンスのタグの値 (
my-instancesなど)。この値を指定しない場合、InstanceTagKey を持つすべてのインスタンスがマッチします。
- InstanceType
-
必須: はい
Amazon EC2 で作成されたインスタンスまたは SSM ノードのタイプ。有効な値は
EC2およびSSM_MANAGED_NODEです。すべてのインスタンスで SSM エージェントを作成、タグ付け、インストールしておく必要があります。
注記
インスタンスを作成する際は、既存の EC2 インスタンスロールを作成または使用します。
Access Deniedエラーを回避するには、インスタンスロールに S3 バケットアクセス許可を追加して、CodePipeline アーティファクトバケットにインスタンスアクセス許可を付与する必要があります。デフォルトのロールを作成するか、パイプラインのリージョンのアーティファクトバケットにスコープダウンされたs3:GetObjectアクセス許可で既存のロールを更新します。 - TargetDirectory
-
必須: はい (スクリプトが指定されている場合)
スクリプトを実行するために Amazon EC2 インスタンスで使用されるディレクトリ。
- DeploySpec
-
必須: はい (デプロイ仕様が指定されている場合)
デプロイのインストールイベントとライフサイクルイベントを設定するために使用されるファイル。デプロイ仕様フィールドの説明と情報については、「仕様ファイルのリファレンスをデプロイする」を参照してください。指定されたデプロイ仕様ファイルを含むアクション設定を表示するには、「デプロイ仕様を使用したアクション宣言の例」の例を参照してください。
- MaxBatch
-
必須: いいえ
並列でデプロイできるインスタンスの最大数。
- MaxError
-
必須: いいえ
デプロイ中に許可されるインスタンスエラーの最大数。
- TargetGroupNameList
-
必須: いいえ
デプロイのターゲットグループ名のリスト。ターゲットグループは作成済みである必要があります。
ターゲットグループは、特定のリクエストを処理するための一連のインスタンスを提供します。ターゲットグループが指定されている場合、インスタンスはデプロイ前にターゲットグループから削除され、デプロイ後にターゲットグループに追加されます。
- PreScript
-
必須: いいえ
アクションデプロイフェーズの前に実行するスクリプト。
- PostScript
-
必須: はい
アクションデプロイフェーズの後に実行されるスクリプト。
次の図は、[アクションの設定を使用] が選択されているアクションの [編集] ページの例を示しています。
次の図は、[DeploySpec ファイルを使用] が選択されているアクションの [編集] ページの例を示しています。
入力アーティファクト
-
アーティファクトの数:
1 -
説明: デプロイ中にスクリプトアクションをサポートするために提供されたファイル。
出力アーティファクト
-
アーティファクトの数:
0 -
説明: 出力アーティファクトは、このアクションタイプには適用されません。
EC2 デプロイアクションのサービスロールポリシーのアクセス許可
CodePipeline がアクションを実行する際、CodePipeline サービスロールには、最小特権でのアクセスに適切にスコープダウンされた次のアクセス許可が必要です。
CloudWatch ログのパイプラインのロググループ
CodePipeline は、アクションを実行するときに、次のようにパイプライン名を使用してロググループを作成します。これにより、パイプライン名を使用してアクセス許可の範囲をリソースのログ記録に絞り込むことができます。
/aws/codepipeline/MyPipelineName
ログ記録のための以下のアクセス許可は、サービスロールの上記の更新に含まれています。
-
logs:CreateLogGroup
-
logs:CreateLogStream
-
logs:PutLogEvents
アクションの詳細ダイアログページを使用してコンソールでログを表示するには、ログを表示するアクセス許可をコンソールロールに追加する必要があります。詳細については、「CodePipeline コンソールでコンピューティングログを表示するために必要なアクセス許可」でコンソールのアクセス許可ポリシーの例を参照してください。
CloudWatch ログのサービスロールポリシーのアクセス許可
CodePipeline は、アクションを実行するときに、次のようにパイプライン名を使用してロググループを作成します。これにより、パイプライン名を使用してアクセス許可の範囲をリソースのログ記録に絞り込むことができます。
/aws/codepipeline/MyPipelineName
アクションの詳細ダイアログページを使用してコンソールでログを表示するには、ログを表示するアクセス許可をコンソールロールに追加する必要があります。詳細については、「CodePipeline コンソールでコンピューティングログを表示するために必要なアクセス許可」でコンソールのアクセス許可ポリシーの例を参照してください。
仕様ファイルのリファレンスをデプロイする
CodePipeline がアクションを実行する際に、インスタンスへのデプロイを設定する仕様ファイルを指定できます。デプロイ仕様ファイルは、デプロイライフサイクルイベントに応じてインストールする内容と実行するライフサイクルイベントフックを指定します。デプロイ仕様ファイルは常に YAML 形式です。デプロイ仕様ファイルは、以下の目的で使用されます。
-
アプリケーションリビジョンのソースファイルを、インスタンスの宛先にマッピングします。
-
デプロイされたファイルのカスタムアクセス権限を指定する。
-
デプロイプロセスのさまざまなフェーズにおいて、各インスタンスで実行するスクリプトを指定する。
デプロイ仕様ファイルは、AppSpec ファイルを使用して CodeDeploy でサポートされている特定のデプロイ設定パラメータをサポートします。既存の AppSpec ファイルを直接使用でき、サポートされていないパラメータは無視されます。CodeDeploy の AppSpec ファイルの詳細については、「CodeDeploy ユーザーガイド」のアプリケーション仕様ファイルリファレンスを参照してください。
ファイルデプロイパラメータは次のように指定されます。
-
files- デプロイ仕様ファイルは、デプロイファイルのsource:とdestination:を指定します。 -
scripts- デプロイのスクリプト化されたイベント。BeforeDeployとAfterDeployの 2 つのイベントがサポートされています。 -
hooks- イベントのライフサイクルフック。サポートされるフックは、ApplicationStop、BeforeInstall、AfterInstall、ApplicationStart、およびValidateServiceです。注記
フックパラメータは CodeDeploy との AppSpec の互換性のために使用でき、バージョン 0.0 (AppSpec 形式) でのみ使用できます。この形式では、CodePipeline はイベントのベストエフォートマッピングを実行します。
仕様ファイルでは正しい YAML スペースを使用する必要があります。デプロイ仕様ファイル内の場所とスペース数が正しくない場合、エラーが発生します。間隔の詳細については、YAML
デプロイ仕様ファイルの例を以下に示します。
version: 0.1 files: - source: /index.html destination: /var/www/html/ scripts: BeforeDeploy: - location: scripts/install_dependencies timeout: 300 runas: myuser AfterDeploy: - location: scripts/start_server timeout: 300 runas: myuser
指定されたデプロイ仕様ファイルを含むアクション設定を表示するには、「デプロイ仕様を使用したアクション宣言の例」の例を参照してください。
アクションの宣言
デプロイ仕様を使用したアクション宣言の例
関連情報
このアクションを利用する際に役立つ関連リソースは以下の通りです。
-
チュートリアル: CodePipeline を使用して Amazon EC2 インスタンスにデプロイする – このチュートリアルでは、スクリプトファイルをデプロイする EC2 インスタンスの作成と、EC2 アクションを使用したパイプラインの作成について説明します。
-
EC2 デプロイアクションがエラーメッセージ No such file で失敗する – このトピックでは、EC2 アクションでファイルが見つからないエラーのトラブルシューティングについて説明します。