Image Builder を使用してカスタムイメージをビルドするためのセットアップ - EC2 イメージビルダー

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

Image Builder を使用してカスタムイメージをビルドするためのセットアップ

EC2 Image Builder でイメージをビルドするには、パイプラインを作成するための以下の前提条件が満たされていること確認してください。特に明記されていない限り、これらの前提条件はすべてのタイプのパイプラインに適用されます。

前提条件を満たしたら、次のインターフェイスのいずれからでも EC2 Image Builder を管理できます。

Image Builder サービスリンクロール

EC2 Image Builder は、サービスにリンクされたロールを使用して、ユーザーに代わって他の AWS サービスにアクセス許可を付与します。サービスリンクロールを手動で作成する必要はありません。 AWS マネジメントコンソール、、 AWS CLIまたは AWS API で最初の Image Builder リソースを作成すると、Image Builder によってサービスにリンクされたロールが作成されます。作成するサービスリンクロールの詳細については、「Image Builder での IAM サービスリンクロールの使用」を参照してください。

設定の要件

  • Image Builder は、AWS PrivateLink をサポートしています。Image Builder の VPC エンドポイントの設定の詳細については、「Image Builder と AWS PrivateLink インターフェイス VPC エンドポイント」を参照してください。

  • Image Builder がコンテナイメージの構築に使用するインスタンスには、Amazon S3 AWS CLI から をダウンロードし、該当する場合は Docker Hub リポジトリからベースイメージをダウンロードするためのインターネットアクセスが必要です。Image Builder は AWS CLI を使用してコンテナレシピから Dockerfile を取得し、データとして保存します。

  • Image Builder がイメージの構築とテストの実行に使用するインスタンスには、Systems Manager サービスへのアクセス権が必要です。インストール要件はオペレーティングシステムによって異なります。

    ベースイメージのインストール要件を確認するには、ベースイメージのオペレーティングシステムに合ったタブを選択してください。

    Linux

    Amazon EC2 Linux インスタンスの場合、Image Builder はビルドインスタンスに Systems Manager エージェントがまだ存在しない場合はそれをインストールし、イメージを作成する前に削除します。

    Windows

    Image Builder は、Amazon EC2 Windows インスタンスに Systems Manager エージェントを自動ではインストールしません。基本イメージに Systems Manager エージェントがあらかじめインストールされていない場合は、ソースイメージからインスタンスを起動し、そのインスタンスに Systems Manager を手動でインストールして、インスタンスから新しい基本イメージを作成する必要があります。

    Amazon EC2 Windows Server インスタンスに Systems Manager エージェントを手動でインストールするには、AWS Systems Manager ユーザーガイドの Manually install Systems Manager Agent on EC2 instances for Windows Server を参照してください。

コンテナイメージパイプラインのコンテナリポジトリ

コンテナイメージパイプラインの場合、レシピはターゲットコンテナーリポジトリに生成され保存される Docker イメージの設定を定義します。Docker イメージのコンテナーレシピを作成する前に、ターゲットリポジトリを作成する必要があります。

Image Builder は Amazon ECR をコンテナイメージのターゲットリポジトリとして使用します。Amazon ECR リポジトリを作成するには、Amazon Elastic Container Registry User Guide の Creating a repository に記載されている手順に従います。

macOS イメージ用の専有ホスト

Amazon EC2 Mac インスタンスには、メタルインスタンスタイプで実行される専有ホストが必要です。カスタム macOS イメージを作成する前に、アカウントに専有ホストを割り当てる必要があります。Mac インスタンスの詳細と、macOS オペレーティングシステムをネイティブにサポートするインスタンスタイプの一覧については、「Amazon EC2 ユーザーガイド」の「Amazon EC2 Mac インスタンス」を参照してください。

専有ホストを作成したら、イメージのインフラストラクチャ設定リソースの設定を行うことができます。インフラストラクチャ設定には、イメージからのインスタンスが起動する先のホスト、ホストプレイスメントグループ、またはアベイラビリティーゾーンを指定できるプレイスメントプロパティが含まれます。

IAM の前提条件

インスタンスプロファイルに関連付ける IAM ロールには、イメージに含まれるビルドコンポーネントとテストコンポーネントを実行する権限が必要です。インスタンスプロファイルに関連付けられている IAM ロールに対し、次の IAM ロールポリシーをアタッチする必要があります。

ロギングを設定する場合、インフラストラクチャ構成で指定されたインスタンスプロファイルは、ターゲットバケット(arn:aws:s3:::BucketName/*)に対してs3:PutObjectの権限を持っている必要があります。例:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "UploadFileToS3Bucket", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::bucket-name/*" } ] }
ポリシーのアタッチ

以下の手順は、IAM ポリシーを IAM ロールにアタッチして前述のアクセス権限を付与するプロセスを示しています。

  1. AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/iam/ で IAM コンソールを開きます。

  2. 左のナビゲーションペインの [ポリシー] を選択します。

  3. EC2InstanceProfileForImageBuilder でポリシーのリストをフィルタリングする

  4. ポリシーの横にあるブレット記号を選択し、[ポリシーアクション] ドロップダウンリストから [添付] を選択します。

  5. ポリシーを添付する IAM ロールの名前を選択します。

  6. Attach policy] (ポリシーのアタッチ) を選択してください。

  7. EC2InstanceProfileForImageBuilderECRContainerBuilds および AmazonSSMManagedInstanceCore ポリシーについて、ステップ 3~6 を繰り返します。

注記

Image Builder で作成したイメージを別のアカウントにコピーする場合は、すべてのターゲットアカウントで EC2ImageBuilderDistributionCrossAccountRole ロールを作成し、「Ec2ImageBuilderCrossAccountDistributionAccess ポリシー」管理ポリシーをロールにアタッチする必要があります。詳細については、「Image Builder リソースを と共有する AWS RAM」を参照してください。

Systems Manager エージェントの前提条件

EC2 Image Builder は、イメージを構築してテストするために、起動した EC2 インスタンスで AWS Systems Manager (Systems Manager) エージェントを実行します。Image Builder は、Systems Manager インベントリを使用してビルドフェーズ中に使用されたインスタンスに関する追加情報を収集します。この情報には、オペレーティングシステム (OS) の名前とバージョン、オペレーティングシステムによって報告されたパッケージとそれぞれのバージョンのリストが含まれます。

この情報の収集をオプトアウトするには、ご希望の環境に合った方法を選択してください。

  • Image Builder コンソール[拡張メタデータ収集を有効にする] チェックボックスの選択を解除します。

  • AWS CLI--no-enhanced-image-metadata-enabled オプションを指定します。

  • Image Builder API または SDKenhancedImageMetadataEnabled パラメータを false に設定します。

Image Builder は、RunCommand でイメージのビルドとテストのワークフローの一部として、ビルドインスタンスとテストインスタンスにアクションを送信します。RunCommand でビルドインスタンスとテストインスタンスへのアクション送信にの使用をオプトアウトすることはできません。