チュートリアル: Image Builder コンソールウィザードから Docker コンテナイメージを出力するイメージパイプラインを作成する - EC2 Image Builder

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

チュートリアル: Image Builder コンソールウィザードから Docker コンテナイメージを出力するイメージパイプラインを作成する

このチュートリアルでは、イメージパイプラインを作成コンソールウィザードを使用してカスタマイズされた EC2 Image Builder Docker イメージを構築および管理するための自動パイプラインを作成する方法について説明します。ステップを効率的に進めるために、使用可能な場合はデフォルトの設定が使用され、オプションのセクションは省略されます。

ステップ 1: パイプラインの詳細を指定する

  1. https://console.aws.amazon.com/imagebuilder/ で、EC2 Image Builder コンソールを開きます。

  2. パイプラインの作成を開始するには、[イメージパイプラインの作成] を選択します。

  3. セクションに、パイプライン名(必須)を入力します。

  4. ビルドスケジュールセクションでは、スケジュールオプションはデフォルトのままでかまいません。デフォルトのスケジュールに表示される タイムゾーン は協定世界時 (UTC) であることに注意してください。UTC 時間の詳細とタイムゾーンのオフセットについては、「タイムゾーンの略語 — ワールドワイドリスト」を参照してください。

    依存関係の更新設定については、依存関係の更新がある場合はスケジュールされた時間にパイプラインを実行するオプションを選択します。この設定により、パイプラインはビルドを開始する前に更新をチェックします。更新がない場合は、スケジュールされたパイプラインビルドはスキップされます。

    注記

    パイプラインが依存関係の更新とビルドを想定どおりに認識できるようにするには、ベースイメージとコンポーネントにセマンティックバージョニング (x.x.x) を使用する必要があります。Image Builder リソースのセマンティックバージョニングの詳細については、Image Builder でのセマンティックバージョニングを参照してください。

  5. 次へ を選択して次のステップに進みます。

ステップ 2: レシピを選択する

  1. Image Builder は、デフォルトでレシピセクションの既存のレシピを使用に設定されています。初めて使用する場合は、「新規レシピを作成」オプションを選択します。

  2. イメージタイプ セクションで Docker イメージ オプションを選択し、Docker イメージを生成してターゲットリージョンの Amazon ECR リポジトリに配布するコンテナパイプラインを作成します。

  3. [全般] セクションに、以下の情報を入力します。

    • 名前 — レシピ名

    • バージョン - レシピのバージョン(<major>.<minor>.<patch>のフォーマットで、メジャー、マイナー、パッチは整数値です)。通常、新しいレシピは 1.0.0 で始まります。

  4. ソースイメージセクションでは、イメージを選択イメージオペレーティングシステム (OS)、およびイメージオリジンをデフォルト値のままにします。これにより、Amazon が管理する Amazon Linux 2 コンテナイメージのリストが作成され、ベースイメージとして選択できます。

    1. [イメージ名] ドロップダウンから、イメージを選択します。

    2. 自動バージョニング管理オプション[はデフォルトのままにします (利用可能な最新の OS バージョンを使用)

      注記

      この設定により、パイプラインがベースイメージのセマンティックバージョニングを使用して、自動的にスケジュールされたジョブの依存関係の更新を検出するようになります。Image Builder リソースのセマンティックバージョニングの詳細については、Image Builder でのセマンティックバージョニングを参照してください。

  5. コンポーネントセクションでは、少なくとも 1 つのビルドコンポーネントを選択する必要があります。

    ビルドコンポーネント — Amazon Linux」パネルでは、ページに表示されているコンポーネントをブラウズできます。右上隅のページネーションコントロールを使用して、ベースイメージ OS で使用できるその他のコンポーネント間を移動できます。特定のコンポーネントを検索したり、Component Manager を使用して独自のビルドコンポーネントを作成したりすることもできます。

    このチュートリアルでは、Linux を最新のセキュリティアップデートで更新するコンポーネントを次のように選択します。

    1. パネルの上部にある検索バーに単語 update を入力して結果を絞り込みます。

    2. update-linux ビルドコンポーネントのチェックボックスをオンにします。

    3. 下にスクロールして、「選択したコンポーネント」リストの右上隅にある「すべて展開」を選択します。

    4. バージョニング管理 オプションはデフォルトのままにします([利用可能な最新のコンポーネントバージョンを使用])。

      注記

      この設定により、パイプラインは選択したコンポーネントに対してセマンティックバージョニングを使用して、自動的にスケジュールされたジョブの依存関係の更新を検出します。Image Builder リソースのセマンティックバージョニングの詳細については、Image Builder でのセマンティックバージョニングを参照してください。

      入力パラメータのあるコンポーネントを選択した場合は、この領域にもパラメータが表示されます。パラメータについては、このチュートリアルでは説明しません。コンポーネントでの入力パラメータの使用とレシピでの設定の詳細については、「チュートリアル: EC2 Image Builder からの入力パラメータを使用してカスタムコンポーネントを作成する」を参照してください。

    コンポーネントの順序変更 (オプション)

    イメージに含めるコンポーネントを複数選択した場合は、 drag-and-drop アクションを使用して、ビルドプロセス中に実行する順序に再配置できます。

    注記

    CIS 強化コンポーネントは、Image Builder レシピの標準コンポーネント順序ルールに従っていません。CIS 強化コンポーネントは常に最後に実行され、ベンチマークテストが出力イメージに対して確実に実行されます。

    1. スクロールして使用可能なコンポーネントのリストに戻ります。

    2. update-linux-kernel-mainline ビルドコンポーネント (または任意の他のコンポーネント) のチェックボックスを選択します。

    3. 選択したコンポーネント」リストまでスクロールして、少なくとも 2 つの結果が表示されることを確認します。

    4. 新しく追加されたコンポーネントのバージョニング管理が拡張されていない可能性があります。バージョニング管理オプションを拡張するには、バージョニング管理オプションの横にある矢印を選択するか、すべて展開スイッチをオフにしてからオンに切り替えて、選択したすべてのコンポーネントのバージョニング管理を拡張できます。

    5. コンポーネントの 1 つを選択し、それを上下にドラッグしてコンポーネントの実行順序を変更します。

    6. update-linux-kernel-mainline コンポーネントを削除するには、X コンポーネントボックスの右上隅からを選択します。

    7. 前のステップを繰り返して、追加した可能性のある他のコンポーネントをすべて削除し、その update-linux コンポーネントのみを選択したままにします。

  6. Dockerfile テンプレート セクションで、サンプルを使用するオプションを選択します。コンテンツパネルで、Image Builder がコンテナイメージのレシピに基づいてビルド情報やスクリプトを配置するコンテキスト変数に注目してください。

    デフォルトでは、Image Builder は Dockerfile で次のコンテキスト変数を使用します。

     

    parentImage (必須)

    ビルド時に、この変数は recipe のベースイメージに解決されます。

    例:

    FROM {{{ imagebuilder:parentImage }}}
    環境 (コンポーネントが指定されている場合は必須)

    この変数は、コンポーネントを実行するスクリプトに解決されます。

    例:

    {{{ imagebuilder:environments }}}
    コンポーネント (オプション)

    Image Builder は、コンテナレシピに含まれるコンポーネントのビルドコンポーネントスクリプトとテストコンポーネントスクリプトを解決します。この変数は、Dockerfile の環境変数の後に配置できます。

    例:

    {{{ imagebuilder:components }}}
  7. ターゲットリポジトリ セクションで、このチュートリアルの前提条件として作成した Amazon ECR リポジトリの名前を指定します。このリポジトリは、パイプラインが実行されるリージョン (リージョン 1) のディストリビューション設定のデフォルト設定として使用されます。

    注記

    ターゲットリポジトリは、配信前にすべてのターゲットリージョンの Amazon ECR に存在している必要があります。

  8. 次へ を選択して次のステップに進みます。

ステップ 3: インフラストラクチャー設定を定義する (オプション)

Image Builder はアカウントで EC2 インスタンスを起動して、イメージをカスタマイズし、検証テストを実行します。インフラストラクチャ設定では、ビルドプロセス AWS アカウント 中に で実行されるインスタンスのインフラストラクチャの詳細を指定します。

[インフラストラクチャー設定]セクションでは、[設定]オプションのデフォルトは Create infrastructure configuration using service defaults です。これにより、ビルドインスタンスがコンテナイメージを設定するために使用する IAM ロールと関連するインスタンスプロファイルが作成されます。独自のカスタムインフラストラクチャ設定を作成したり、既に作成した設定を使用することもできます。インフラストラクチャ設定の詳細については、EC2 Image Builder API リファレンスCreateInfrastructureConfigurationの「」を参照してください。

このチュートリアルでは、デフォルト設定を使用します。

  • 次へ を選択して次のステップに進みます。

ステップ 4: ディストリビューション設定を定義する (オプション)

ディストリビューション設定は、ターゲットリージョンとターゲット Amazon ECR リポジトリ名で構成されます。出力 Docker イメージは、各リージョンの指定された Amazon ECR リポジトリにデプロイされます。

[ディストリビューション設定]セクションの[設定オプション]はデフォルトで Create distribution settings using service defaults です。このオプションでは、パイプラインが稼働するリージョン (リージョン 1) のコンテナレシピで指定されている Amazon ECR リポジトリに出力 Docker イメージを配信します。Create new distribution settings を選択した場合、現在のリージョンの ECR リポジトリをオーバーライドして、配信するリージョンをさらに追加できます。

このチュートリアルでは、デフォルト設定を使用します。

  • 次へ を選択して次のステップに進みます。

ステップ 5: 確認

レビューセクションには、設定したすべての設定が表示されます。特定のセクションの情報を編集するには、ステップセクションの右上隅にある「編集」ボタンを選択します。例えば、パイプライン名を変更する場合は、「ステップ 1: パイプラインの詳細」セクションの右上隅にある「編集」ボタンを選択します。

  1. 設定を確認したら、[パイプラインを作成] を選択してパイプラインを作成します。

  2. ディストリビューション設定、インフラストラクチャー設定、新しいレシピ、パイプライン用のリソースが作成されると、ページ上部に成功または失敗のメッセージが表示されます。リソース識別子を含むリソースの詳細を表示するには、[詳細を表示] を選択します。

  3. リソースの詳細を確認したら、ナビゲーションペインからリソースタイプを選択すると、他のリソースの詳細を表示できます。例えば、新しいパイプラインの詳細を表示するには、ナビゲーションペインから [Image pipelines] を選択します。ビルドが成功すると、新しいパイプラインが [イメージパイプライン] リストに表示されます。

ステップ 6: クリーンアップする

Image Builder 環境は、ご自宅と同様、必要なものを見つけて散らかることなくタスクを完了できるように、定期的なメンテナンスが必要です。テスト用に作成した一時リソースは定期的にクリーンアップしてください。そうしないと、それらのリソースのことを忘れてしまい、後でそのリソースが何に使用されたかを思い出せなくなる可能性があります。その時までには、それらを安全に取り除くことができるかどうかがはっきりしないかもしれません。

ヒント

リソースを削除するときの依存関係エラーを防ぐため、必ず次の順序でリソースを削除してください。

  1. イメージパイプライン

  2. イメージのレシピ

  3. 残っているすべてのリソース

このチュートリアルのために作成したリソースをクリーンアップするには、以下の手順に従ってください:

パイプラインを削除する
  1. アカウントで作成されたビルドパイプラインのリストを表示するには、ナビゲーションペインから [Image pipelines] を選択します。

  2. パイプライン名 の横にあるチェックボックスをオンにして、削除するパイプラインを選択します。

  3. イメージパイプラインパネルの上部にあるアクション」メニューで、「削除」を選択します。

  4. Delete と入力して削除を確認し、削除 を選択します。

コンテナレシピを削除する
  1. アカウントで作成されたコンテナレシピのリストを表示するには、ナビゲーションペインから コンテナレシピ を選択します。

  2. レシピ名の横にあるチェックボックスを選択して、削除するレシピを選択します。

  3. コンテナレシピ パネルの上部にあるアクションメニューで、レシピを削除を選択します。

  4. Delete と入力して削除を確認し、削除 を選択します。

インフラストラクチャ設定を削除する
  1. アカウントのインフラストラクチャー設定リソースのリストを表示するには、ナビゲーションペインから [インフラストラクチャー設定] を選択します。

  2. 構成名の横にあるチェックボックスを選択して、削除するインフラストラクチャー構成を選択します。

  3. インフラストラクチャー設定」パネルの上部にある「削除」を選択します。

  4. Delete と入力して削除を確認し、削除 を選択します。

ディストリビューション設定
  1. アカウントで作成された配布設定のリストを表示するには、ナビゲーションペインから [配布設定] を選択します。

  2. 設定名の横にあるチェックボックスをオンにして、このチュートリアル用に作成したディストリビューション設定を選択します。

  3. ディストリビューション設定パネルの上部で、「削除」を選択します。

  4. Delete と入力して削除を確認し、削除 を選択します。

イメージを削除する

以下の手順に従って、チュートリアルパイプラインから作成されたイメージをすべて削除したことを確認します。このチュートリアルでは、ビルドスケジュールに従って実行するパイプラインを作成して十分な時間が経過しない限り、イメージは作成されない可能性があります。

  1. 自分のアカウントで作成されたイメージの一覧を表示するには、ナビゲーションペインからイメージを選択します。

  2. 削除するイメージのバージョンを選択します。これにより、「イメージビルドバージョン」ページが開きます。

  3. 削除したいイメージのバージョンの横にあるチェックボックスを選択します。一度に複数のイメージバージョンを選択することもできます。

  4. イメージビルドバージョン」パネルの上部にある「バージョンを削除」を選択します。

  5. Delete と入力して削除を確認し、削除 を選択します。