EC2 Image Builder とは何ですか - EC2 Image Builder

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

EC2 Image Builder とは何ですか

EC2 Image Builder はフルマネージド AWS のサービス 型で、カスタマイズ、セキュア、 up-to-date サーバーイメージの作成、管理、デプロイを自動化するのに役立ちます。 AWS Management Console、、または APIs を使用して AWS Command Line Interface、 でカスタムイメージを作成できます AWS アカウント。

Image Builder がアカウントで作成したカスタマイズされたイメージを所有しているのはお客様です。パイプラインを設定して、所有しているイメージの更新とシステムパッチを自動化できます。スタンドアロンコマンドを実行して、定義した設定リソースを使用してイメージを作成することもできます。

Image Builder パイプラインウィザードの指示に従って、カスタムイメージを作成します。手順は次のとおりです。

  1. カスタマイズ用のベースイメージを選択します。

  2. ベースイメージにソフトウェアを追加したり、ベースイメージからソフトウェアを削除したりします。

  3. ビルドコンポーネントを使用して設定とスクリプトをカスタマイズします。

  4. 選択したテストを実行するか、カスタムテストコンポーネントを作成します。

  5. AMIs AWS リージョン と に配布します AWS アカウント。

  6. Image Builder パイプラインがディストリビューション用のカスタム Amazon マシンイメージ (AMI) を作成する場合、他の AWS アカウント、組織、および OUs にアカウントからの起動を許可できます。所有者アカウントには、AMI に関連する料金が請求されます。

EC2 Image Builder の機能

EC2 Image Builderは以下の機能を提供する:

生産性を向上させ、準拠した と up-to-date イメージを構築するためのオペレーションを減らす

Image Builder は、ビルドパイプラインを自動化することで、大規模なイメージの作成と管理にかかる作業量を削減します。ビルド実行スケジュールの設定を指定することで、ビルドを自動化できます。自動化により、最新のオペレーティングシステムパッチを適用してソフトウェアを保守する運用コストを削減できます。

サービスのアップタイムを増やす

Image Builder では、デプロイ前にイメージをテストするために使用できるテストコンポーネントにアクセスできます。 AWS Task Orchestrator and Executor (AWSTOE) を使用してカスタムテストコンポーネントを作成し、それらを使用することもできます。Image Builder は、設定されたテストがすべて成功した場合にのみイメージを配布します。

デプロイメントのセキュリティ・バーを上げる

Image Builder では、コンポーネントのセキュリティ上の脆弱性にさらされる不要なリスクを排除するイメージを作成できます。 AWS セキュリティ設定を適用して、業界および内部のセキュリティ基準を満たす安全なout-of-the-box イメージを作成できます。Image Builder には、規制対象の業界に属する企業向けの設定コレクションも用意されています。これらの設定を使用して、STIG 標準に準拠したイメージを迅速かつ簡単に構築できます。Image Builder で使用可能な STIG コンポーネントの完全なリストについては、「EC2 Image Builder用の Amazon managed STIG 強化コンポーネント」を参照してください。

一元管理と血統追跡

Image Builder では AWS Organizations、 との組み込み統合を使用して、承認された AMIs からのみインスタンスを実行するようにアカウントを制限するポリシーを適用できます。

AWS アカウントリソース共有の簡素化

EC2 Image Builder は AWS Resource Access Manager (AWS RAM) と統合されており、特定のリソースを AWS アカウント または を通じて共有できます AWS Organizations。共有できる EC2 Image Builder リソースは下記のとおりです。

  • コンポーネント

  • イメージ

  • イメージのレシピ

  • コンテナレシピ

詳細については、「EC2 Image Builder リソースを共有」を参照してください。

サポートされるオペレーティングシステム

Image Builderは、以下のオペレーティングシステムのバージョンをサポートしています:

オペレーティングシステム/ディストリビューション サポートバージョン

Amazon Linux

2 と 2023 年

CentOS

7 と 8

CentOS Stream

8

Red Hat Enterprise Linux (RHEL)

7 と 8

SUSE Linux Enterprise Server (SUSE)

12 と 15

Ubuntu

18.04 LTS、20.04 LTS、22.04 LTS

Windows Server

2012 R2、2016、2019、2022年

対応イメージフォーマット

カスタム AMI イメージでは、開始点として既存の AMI を選択できます。Docker コンテナイメージの場合、 でホストされているパブリックイメージ DockerHub、Amazon ECR 内の既存のコンテナイメージ、または Amazon が管理するコンテナイメージから選択できます。

概念

以下の用語と概念は、EC2 Image Builderを理解し、使用する上で中心となるものです。

AMI

Amazon マシンイメージ (AMI) は Amazon EC2 のデプロイの基本単位であり、Image Builder で作成できるイメージの種類の 1 つです。AMI は、EC2 インスタンスをデプロイするためのオペレーティングシステム (OS) とプリインストールされたソフトウェアを含む事前設定された仮想マシンイメージです。詳細については、Amazon マシンイメージ (AMI)を参照。

イメージパイプライン

イメージパイプラインは、安全なAMIとコンテナイメージを構築するための自動化フレームワークを提供する AWS。Image Builder イメージパイプラインは、イメージビルドライフサイクルのビルド、検証、およびテストフェーズを定義するイメージ recipe に関連付けられています。

イメージパイプラインは、イメージの構築場所を定義するインフラストラクチャ構成に関連付けることができます。インスタンスタイプ、サブネット、セキュリティグループ、ログ記録、その他のインフラストラクチャ関連の構成などの属性を定義できます。また、イメージパイプラインをディストリビューション構成に関連付けて、イメージのデプロイ方法を定義することもできます。

マネージドイメージ

マネージドイメージは、AMI またはコンテナイメージに加えて、バージョンやプラットフォームなどのメタデータで構成される Image Builder のリソースです。管理対象イメージは、Image Builder パイプラインによってビルドに使用するベースイメージを決定するために使用されます。このガイドでは、管理対象イメージは「イメージ」と呼ばれることもありますが、イメージは AMI とは異なります。

イメージのレシピ

Image Builder イメージ recipe は、ベースイメージとベースイメージに適用するコンポーネントを定義し、必要な構成の出力イメージを生成するためのドキュメントです。イメージ recipe を使用して、ビルドを複製できます。Image Builder イメージレシピは、コンソールウィザード、、または API を使用して共有、分岐 AWS CLI、編集できます。バージョン管理ソフトウェアでイメージ recipe を使用して、バージョン管理された共有可能なイメージ recipe を維持できます。

コンテナレシピ

Image Builder コンテナレシピは、ベースイメージと、出力コンテナイメージに必要な構成を生成するためにベースイメージに適用されるコンポーネントを定義する文書です。コンテナレシピを使ってビルドを複製することができます。コンソールウィザード、 AWS CLI、または API を使用して、Image Builder イメージレシピを共有、分岐、編集できます。コンテナレシピをバージョン管理ソフトウェアと一緒に使うことで、共有可能でバージョン管理されたコンテナレシピを維持することができます。

ベースイメージ

ベースイメージとは、イメージまたはコンテナレシピドキュメントで使用される、選択されたイメージとオペレーティングシステム、およびコンポーネントです。ベースイメージとコンポーネント定義を組み合わせることで、出力イメージに必要な設定が作成されます。

コンポーネント

コンポーネントは、イメージ作成前にインスタンスをカスタマイズする(ビルドコンポーネント)か、作成されたイメージから起動されたインスタンスをテストする(テストコンポーネント)ために必要な一連の手順を定義します。

コンポーネントは、パイプラインによって生成されたインスタンスをビルド、検証、またはテストするためのランタイム設定を記述した、宣言型のプレーンテキストの YAML または JSON ドキュメントから作成されます。コンポーネントは、コンポーネント管理アプリケーションを使用してインスタンス上で実行されます。コンポーネント管理アプリケーションはドキュメントを解析し、必要なステップを実行します。

作成後、イメージレシピまたはコンテナレシピを使用して 1 つ以上のコンポーネントをグループ化し、仮想マシンまたはコンテナイメージの構築とテストの計画を定義します。によって所有および管理されているパブリックコンポーネントを使用することも AWS、独自のコンポーネントを作成することもできます。コンポーネントの詳細については、「AWS Task Orchestrator and Executor コンポーネントマネージャー」を参照してください。

コンポーネント・ドキュメント

イメージに適用できるカスタマイズの設定を記述した、宣言型のプレーンテキストの YAML または JSON ドキュメント。このドキュメントは、ビルドまたはテストコンポーネントの作成に使用されます。

ランタイムステージ

EC2 Image Builderには2つのruntimeステージがある: buildtestです。各ランタイムステージには、コンポーネントドキュメントで定義されている設定を含む 1 つ以上のフェーズがあります。

設定フェーズ

以下のリストは、buildtestのステージで実行されるフェーズを示しています:

ビルドステージ
ビルドフェーズ

イメージパイプラインは、実行時にビルドステージのビルドフェーズから始まります。ベースイメージがダウンロードされ、コンポーネントのビルドフェーズに指定された構成がインスタンスのビルドと起動に適用されます。

検証フェーズ

Image Builder がインスタンスを起動し、ビルドフェーズのカスタマイズをすべて適用すると、検証フェーズが開始されます。このフェーズでは、Image Builder は、コンポーネントが検証フェーズで指定する構成に基づいて、すべてのカスタマイズが期待どおりに機能することを確認します。インスタンスの検証が成功すると、Image Builder はインスタンスを停止し、イメージを作成して、テスト段階に進みます。

テストステージ:
テストフェーズ

このフェーズでは、Image Builder は検証フェーズが正常に完了した後に作成したイメージからインスタンスを起動します。Image Builder は、このフェーズ中にテストコンポーネントを実行して、インスタンスが正常で期待どおりに機能していることを確認します。

コンテナホストテストフェーズ

Image Builder がコンテナレシピで選択したすべてのコンポーネントのテストフェーズを実行すると、Image Builder はコンテナワークフローに対してこのフェーズを実行します。コンテナホストのテストフェーズでは、コンテナ管理とカスタムランタイム設定を検証する追加のテストを実行できます。

ワークフロー

ワークフローは、Image Builder が新しいイメージを作成するときに実行する一連のステップを定義します。すべてのイメージには、ビルドおよびテストワークフローがあります。コンテナには配布用のワークフローが追加されています。

ワークフローの種類
BUILD

作成されたすべてのイメージのビルドステージ設定をカバーします。

TEST

作成されたすべてのイメージのビルドステージ設定をカバーします。

DISTRIBUTION

コンテナイメージの配布ワークフローについて説明します。

料金

カスタムEC2 Image Builder を使用してカスタム AMI またはコンテナイメージを作成してもコストはかかりません。ただし、このプロセスで使用される他のサービスには標準価格が適用されます。次のリストには、設定に応じてカスタム AMI またはコンテナイメージを作成、構築、保存、および配布するときにコストが発生する AWS のサービス 可能性のある の使用が含まれています。

  • EC2 インスタンスの起動

  • Amazon S3 にログを保存する

  • Amazon Inspector によるイメージの検証

  • AMI 用の Amazon EBS スナップショットの保存

  • Amazon ECR へのコンテナイメージの保存

  • Amazon ECR へのコンテナイメージのプッシュと Amazon ECR からのコンテナイメージのプッシュとプル

  • Systems Manager アドバンスティアがオンになっていて、Amazon EC2 インスタンスがオンプレミスアクティベーションで実行されている場合、Systems Manager を通じてリソースの料金が請求されることがあります。

EC2 Image Builder は、他の を使用してイメージを構築 AWS のサービス します。Image Builder のイメージレシピまたはコンテナレシピの設定によっては、次のサービスが使用される場合があります。

AWS License Manager

AWS License Manager では、アカウントライセンス設定ストアからライセンス設定を作成して適用できます。AMI ごとに、Image Builder を使用して、Image Builder ワークフローの一部として AWS アカウント がアクセスできる既存のライセンス設定にアタッチできます。ライセンス設定は AMI にのみ適用できます。Image Builder は既存のライセンス構成のみを使用でき、ライセンス構成を直接作成または変更することはできません。License Manager の設定は、 (アジアパシフィック: 香港) リージョンと ap-east-1 (中東: バーレーン) me-south-1 リージョン間でなど、アカウントで有効に AWS リージョン する必要がある 間でレプリケートされません。

AWS Organizations

AWS Organizations では、組織内のアカウントにサービスコントロールポリシー (SCP) を適用できます。個々のポリシーを作成、管理、有効化、無効化できます。他のすべての AWS アーティファクトやサービスと同様に、Image Builder は で定義されているポリシーを尊重します AWS Organizations。承認された AMIs のみを使用してインスタンスを起動するようにメンバーアカウントに制約を適用するなど、一般的なシナリオのためにテンプレート SCPs AWS を提供します。

Amazon Inspector

Image Builder は Amazon Inspector をデフォルトの脆弱性スキャンエージェントとして使用し、Amazon Linux 2、Windows Server 2012、および Windows Server 2016 のセキュリティベースラインを確立します。詳しくは、Amazon Inspectorとはを参照してください。

AWS Resource Access Manager

AWS Resource Access Manager (AWS RAM) を使用すると、 AWS アカウント または を介して リソースを共有できます AWS Organizations。が複数ある場合は AWS アカウント、リソースを一元的に作成し、 を使用してそれらのリソース AWS RAM を他の アカウントと共有できます。EC2 Image Builder では、コンポーネント、イメージ、イメージレシピなどのリソースを共有できます。の詳細については AWS RAM、「 AWS Resource Access Manager ユーザーガイド」を参照してください。Image Builder リソースの共有については、「EC2 Image Builder リソースを共有」を参照してください。

Amazon CloudWatch Logs

Amazon CloudWatch Logs を使用して、EC2 インスタンス、Amazon Route 53 AWS CloudTrail、およびその他のソースからログファイルをモニタリング、保存、およびアクセスできます。

Amazon Elastic Container Registry (Amazon ECR)

Amazon ECR は、安全でスケーラブル、信頼性の高いマネージド AWS コンテナイメージレジストリサービスです。Image Builder で作成したコンテナイメージは、ソースリージョン (ビルドが実行されるリージョン) と、コンテナイメージを配布するすべてのリージョンの Amazon ECR に保存されます。Amazon ECRの詳細については、Amazon Elastic Container Registry User Guideを参照してください。