翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Image Builder イメージのビルド、テスト、およびディストリビューションワークフローを管理する
イメージワークフローは、イメージ作成プロセスの 1 つの段階で EC2 Image Builder が実行するステップのシーケンスを定義します。ワークフローを YAML ドキュメントとして作成し、バージョニングされた再利用可能なリソースとして作成します。その後、Image Builder はイメージの構築、テスト、配布時にワークフローを実行します。
ワークフローを使用すると、イメージ作成プロセスを直接制御できます。どのステップをどの順序で実行するか、失敗したときに各ステップが何をするか、Image Builder が失敗したステップをロールバックするかどうかを決定します。Amazon マネージドワークフローから開始したり、クローンを作成してカスタマイズしたり、ゼロから独自のワークフローを記述したりできます。
イメージワークフローの利点
-
イメージワークフローを使用すると、イメージ作成プロセスの柔軟性、可視性、制御性が向上します。
-
ワークフロードキュメントを定義するときにカスタマイズされたワークフローステップを追加することも、Image Builder のデフォルトワークフローを使用することもできます。
-
Image Builder がデフォルトのイメージワークフローに含めるワークフローステップを除外できます。
-
ビルドプロセスを完全にスキップするテスト専用のワークフローを作成できます。ビルドのみまたはディストリビューションのみのワークフローを作成する場合も同様です。
注記
既存のワークフローは変更できませんが、クローンを作成したり、新しいバージョンを作成することはできます。
ワークフロートピック
ワークフローフレームワーク: ステージ
Image Builder は、イメージ作成プロセスを 3 つのステージに整理します。各ステージは、一致するタイプのワークフローを実行します。ステージは固定順序で実行され、ステージは前のステージが正常に終了した後にのみ開始されます。
次の表に、各ステージのデフォルトの動作を示します。各ワークフローのステップを定義するため、ステージの動作をカスタマイズできます。
|
Order |
ステージ |
ワークフロータイプ |
動作 (デフォルト) |
|---|---|---|---|
|
1 |
Build |
|
ビルドインスタンスを起動し、ビルドコンポーネントを実行し、インスタンスからイメージ (AMI またはコンテナイメージ) を作成します。 |
|
2 |
Test |
|
新しいイメージからテストインスタンスを起動し、テストコンポーネントを実行し、オプションでイメージスキャンの検出結果を収集します。 |
|
3 |
配信 |
|
ターゲットリージョンとアカウントにイメージをコピーし、イメージ属性を変更し、起動テンプレートやライセンス設定などの配布後設定を適用します。 |
ワークフローは、一部のステージでのみ実行できます。たとえば、ビルドステージをスキップして既存のイメージをテストまたは配布したり、テストステージをスキップしてテストなしでビルドおよび配布したりできます。ビルドまたはテストステージをスキップするには、パイプラインまたはイメージリクエストからそのタイプのワークフローを省略します。
注記
ディストリビューションワークフローはオプションです。これを省略しても、Image Builder はディストリビューションをスキップしません。パイプラインまたはイメージにアタッチするディストリビューション設定を実行して AMI を分散します。ディストリビューション設定を異なるディストリビューション設定で上書きする場合、またはディストリビューションプロセスの可視性を高めるために、ディストリビューションワークフローを追加します。ディストリビューションを完全にスキップするには、null または空のディストリビューション設定を指定します。
注記
イメージパイプラインまたはイメージリクエストには、最大 1 つのビルドワークフローと 1 つのディストリビューションワークフローを含めることができます。また、1 つ以上のテストワークフローを含めることもできます。ワークフローの合計数は 10 を超えることはできません。たとえば、1 つのビルドワークフローと 1 つのディストリビューションワークフローを最大 8 つのテストワークフローとペアリングできます。
ワークフローの実行方法
ワークフローは、YAML ドキュメントで定義した順序でステップを実行します。各ステップは、インスタンスの起動やコンポーネントの実行など、1 つのアクションを実行します。
ステップの結果
各ステップは、次のいずれかの状態で終了します。
|
State |
意味 |
|---|---|
|
|
ステップは正常に終了しました。 |
|
|
ステップの条件 |
|
|
ステップは正常に完了しませんでした。 |
|
|
|
|
|
ステップは |
障害処理
各ステップの onFailure 属性は、ステップが失敗したときにどうなるかを制御します。
-
Abort(デフォルト) – Image Builder はステップを失敗させ、ワークフローを失敗させ、それ以上ステップを実行しません。ロールバックが有効になっている場合、ロールバックは失敗したステップで開始され、前のステップで逆算されます。 -
Continue— Image Builder はステップに失敗しますが、残りのステップを実行します。ロールバックは行われません。
ロールバック
onFailure: Abort および rollbackEnabled: true (デフォルト) でステップが失敗した場合、Image Builder は失敗したステップから順に完了したステップをロールバックします。すべてのアクションをロールバックできるわけではありません。ロールバックがないアクションは、 のステータスを記録しますNO_ROLLBACK。
Amazon EventBridge でワークフロー実行をモニタリングする
Image Builder は、ワークフローの実行時に Amazon EventBridge イベントを出力するため、進行状況や注意が必要なステップに対応できます。たとえば、WaitForActionステップは、 詳細タイプのイベントをデフォルトのイベントバスEC2 Image Builder Workflow Step Waitingに発行します。このイベントを Lambda 関数や Amazon SNS トピックなどのターゲットにルーティングして、承認プロセスを推進できます。Image Builder と EventBridge の連携の詳細については、「」を参照してくださいImage Builder における Amazon EventBridge の統合。
ステップレベルの進捗状況をプログラムで追跡するには、ListWorkflowExecutions、、GetWorkflowExecutionListWorkflowStepExecutions、および GetWorkflowStepExecution API オペレーションを使用します。
ワークフローリソースの制約
ワークフロードキュメントと設定は、次のデフォルトの制限内にとどまる必要があります。
|
制約 |
デフォルトの制限 |
注意事項 |
|---|---|---|
|
ワークフロードキュメントあたりのステップ |
15 |
ステップはドキュメントの順序で実行されます。 |
|
ワークフロードキュメントあたりの出力 |
25 |
後のワークフローに値を渡します。 |
|
ワークフロードキュメントあたりのパラメータ |
25 |
発信者が設定できる入力。 |
|
パラメータ値の長さ |
1,024 文字 |
パラメータ値ごと。 |
|
インラインドキュメントサイズ ( |
16,000 バイト |
大きなドキュメントには |
|
イメージまたはパイプラインあたりのワークフロー |
10 |
最大 1 つのビルドと 1 つのディストリビューション、および合計 10 のテストワークフロー。 |
ワークフローリソースはイミュータブルです。ワークフローを変更するには、新しいバージョンを作成するか、クローンを作成します。Image Builder はすべてのバージョンを保持するため、各イメージを生成したワークフローを追跡できます。
サービスアクセス
イメージワークフローを実行するには、Image Builder にワークフローアクションを実行する権限が必要です。このアクセス許可は、Image Builder がユーザーに代わって引き受ける実行ロールで付与します。次のように実行ロールを割り当てます。
重要
AWSServiceRoleForImageBuilder サービスにリンクされたロールを実行ロールとして渡さないことをお勧めします。代わりに、カスタム IAM ロールを作成し、 EC2ImageBuilderExecutionPolicy AWS 管理ポリシーをアタッチします。このポリシーは、Image Builder が AWS のサービス ユーザーに代わって呼び出すのと同じアクセス許可を付与します。カスタムロールを使用すると、Image Builder が使用するアクセス許可を完全に制御できます。また、Image Builder がユーザーに代わって実行するオペレーションに対して、サービスコントロールポリシー (SCPs) とリソースコントロールポリシー (RCPs) が有効になります。
-
コンソール – パイプラインウィザードのステップ 3 イメージ作成プロセスを定義するで、サービスアクセスパネルの IAM ロールリストからカスタムロールを選択します。
-
Image Builder API – CreateImage アクションリクエストで、カスタムロールを
executionRoleパラメータの値として指定します。
カスタム実行ロールを作成するには、「 AWS Identity and Access Management ユーザーガイド」の「 AWS サービスにアクセス許可を委任するロールの作成」を参照してください。
イメージにマネージドワークフローを使用する
AWS は、マネージドワークフローを作成および維持します。イメージパイプラインまたは 1 回限りのイメージ作成でマネージドワークフローを使用する場合は、使用するマネージドワークフローの Amazon リソースネーム (ARN) を選択できます。Amazon では、パッチやその他の更新が適用された最新バージョンを提供しています。マネージドワークフローのリストを取得するには、「」を参照しイメージワークフローを一覧表示する、所有者 = Amazon (コンソール) でフィルタリングします。
ビルド速度と検証要件に基づいてマネージドワークフローを選択できます。マネージドワークフロータイプの例を次に示します。
- 標準マネージドワークフロー (デフォルト)
-
標準マネージドワークフローには、完全な EC2 ステータスチェックを使用してイメージを構築、テスト、検証するための包括的なステップが含まれています。
標準マネージドワークフローは次のとおりです。
-
build-image – Amazon が管理するデフォルトの AMI ビルドワークフロー。
-
test-image – Amazon が管理するデフォルトの AMI テストワークフロー。
-
build-container – Amazon が管理するデフォルトのコンテナビルドワークフロー。
-
test-container – Amazon が管理するデフォルトのコンテナテストワークフロー。
-
- Express マネージドワークフロー
-
Express マネージドワークフローには、重要なステップのみが含まれており、イメージの作成時間を短縮できます。
エクスプレスマネージドワークフローは次のとおりです。
-
express-build-image – ビルド時間を短縮する Express Amazon マネージド AMI ビルドワークフロー。完全な EC2 ステータスチェックではなく、インスタンスの実行状態のみを待機し、イメージメタデータ収集をスキップします。
-
express-build-container – ビルド時間を短縮する Express Amazon マネージドコンテナビルドワークフロー。完全な EC2 ステータスチェックではなく、インスタンスの実行状態のみを待機します。
-
express-test-image – テスト時間を短縮する Express Amazon マネージド AMI テストワークフロー。完全な EC2 ステータスチェックではなく、インスタンスの実行状態のみを待機し、セキュリティスキャンの検出結果の収集をスキップします。
-