コンポーネントを使用して Image Builder イメージをカスタマイズする - EC2 Image Builder

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

コンポーネントを使用して Image Builder イメージをカスタマイズする

Image Builder は AWS Task Orchestrator and Executor (AWSTOE) コンポーネント管理アプリケーションを使用して、複雑なワークフローをオーケストレーションします。 AWSTOE アプリケーションで動作するビルドコンポーネントとテストコンポーネントは、イメージをカスタマイズまたはテストするスクリプトを定義するYAMLドキュメントに基づいています。AMI イメージの場合、Image Builder は Amazon EC2ビルドインスタンスとテストインスタンスにコンポーネントと AWSTOE コンポーネント管理アプリケーションをインストールします。コンテナイメージの場合、コンポーネントと AWSTOE コンポーネント管理アプリケーションは実行中のコンテナ内にインストールされます。

Image Builder は AWSTOE を使用して、すべてのインスタンス上のアクティビティを実行します。Image Builder コマンドを実行したり、Image Builder コンソールを使用した AWSTOE りするときに、 を操作するための追加のセットアップは必要ありません。

注記

Amazon が管理するコンポーネントのサポート期間が終了すると、そのコンポーネントはメンテナンスされなくなります。この問題が発生する約 4 週間前に、コンポーネントを使用しているすべてのアカウントに通知が届き、そのアカウント内の影響を受けるレシピのリストが各 AWS Health Dashboardから届きます。の詳細については AWS Health、「 AWS Health ユーザーガイド」を参照してください。

新しいイメージを構築するためのワークフローステージ

新しいイメージを構築するための Image Builder ワークフローには、次の 2 つの段階があります。

  1. ビルドステージ (スナップショット前) – ビルドステージでは、ベースイメージを実行している Amazon EC2ビルドインスタンスを変更して、新しいイメージのベースラインを作成します。例えば、レシピには、アプリケーションをインストールしたり、オペレーティングシステムのファイアウォール設定を変更したりするコンポーネントを含めることができます。

    コンポーネントドキュメントの以下のフェーズは、ビルド段階で実行されます。

    • buid (構築)

    • validate

    この段階が正常に完了すると、Image Builder はテスト段階以降に使用するスナップショットまたはコンテナイメージを作成します。

  2. テストステージ (スナップショット後) – テストステージでは、イメージを作成するイメージAMIsとコンテナイメージの間にいくつかの違いがあります。AMI ワークフローの場合、Image Builder はビルドステージの最終ステップとして作成したスナップショットからEC2インスタンスを起動します。新しいインスタンスでテストを実行して設定を検証し、インスタンスが期待どおりに機能していることを確認します。コンテナワークフローでは、テストはビルドに使用したのと同じインスタンスで実行されます。

    コンポーネントドキュメントの次のフェーズは、イメージビルドテストステージ中に recipe に含まれるすべてのコンポーネントに対して実行されます。

    • test

    このコンポーネントフェーズは、ビルドコンポーネントタイプとテストコンポーネントタイプの両方に適用されます。この段階が正常に完了すると、Image Builder はスナップショットまたはコンテナイメージから最終イメージを作成して配布できます。

注記

AWSTOE アプリケーションフレームワークでは、コンポーネントドキュメントで多くのフェーズを定義できますが、Image Builder には、実行するフェーズと実行するステージに関する厳格なルールがあります。イメージビルドステージ中にコンポーネントを実行するには、コンポーネントドキュメントで次のフェーズの少なくとも 1 つを定義する必要があります: buildまたは validate。イメージテスト段階でコンポーネントを実行するには、コンポーネントドキュメントで testフェーズを定義する必要があり、他のフェーズは定義しません。

Image Builder はステージを独立して実行するため、コンポーネントドキュメント内の参照を連鎖させることはステージの境界を越えることはできません。ビルドステージで実行されるフェーズの値をテストステージで実行されるフェーズにチェーンすることはできません。ただし、目的のターゲットに入力パラメータを定義し、コマンドラインから値を渡すことはできます。Image Builder レシピのコンポーネントパラメータ設定の詳細については、「チュートリアル: 入力パラメータを使用してカスタムコンポーネントを作成する」を参照してください。

ビルドインスタンスまたはテストインスタンスのトラブルシューティングを支援するために、入力ドキュメントとログファイルを含むログフォルダ AWSTOE を作成し、コンポーネントが実行されるたびに何が起こっているかを追跡します。パイプライン設定で Amazon S3 バケットを設定した場合、ログもそこに書き込まれます。YAML ドキュメントとログ出力の詳細については、「」を参照してくださいカスタム AWSTOE コンポーネントのコンポーネントドキュメントフレームワークを使用する

ヒント

追跡用のコンポーネントが多い場合に、タグ付けを使用すると、割り当てたタグに基づいて特定のコンポーネントまたはバージョンを識別できます。の Image Builder コマンドを使用してリソースにタグを付ける方法の詳細については AWS CLI、このガイドのリソースのタグ付け「」セクションを参照してください。

このセクションでは、Image Builder コンソールまたは AWS CLI内のコマンドを使用して、コンポーネントを一覧表示、表示、作成、インポートする方法について説明します。