翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AMI ディストリビューション設定の作成と更新
このセクションでは、Image Builder AMI のディストリビューション設定の作成と更新について説明します。
内容
コンソールでの AMI ディストリビューション設定の作成
ディストリビューション設定には、出力 AMI 名、暗号化の特定のリージョン設定、起動許可 AWS アカウント、出力 AMI を起動できる組織および組織単位 (OUs)、ライセンス設定が含まれます。
新しい AMI ディストリビューション構成を作成するには:
-
https://console.aws.amazon.com/imagebuilder/
で、EC2 Image Builder コンソールを開きます。 -
ナビゲーションペインから配信設定を選択します。アカウントで作成されたディストリビューション設定のリストが表示されます。
-
[ディストリビューション設定]パネルの上部にある[ディストリビューション設定を作成]を選択します。
-
イメージタイプセクションで、Amazon マシンイメージ (AMI) 出力タイプを選択します。
-
全般セクションで、ディストリビューション設定の[名前]とオプションの説明を入力します。
-
[リージョン設定]セクションで、AMI を配布する各リージョンについて次の詳細を入力します。
-
AMI は、デフォルトで現在のリージョン ([リージョン 1]) に配布されます。[リージョン 1]は配信のソースです。[リージョン 1]の一部の設定は編集できません。追加するどのリージョンでも、[リージョン]ドロップダウンリストからリージョンを選択できます。
Kms キーは AWS KMS key 、ターゲットリージョン内のイメージの EBS ボリュームを暗号化するために使用される を識別します。これは、ビルドがソースリージョン ([リージョン 1]) のアカウントで作成した元の AMI には適用されないことに注意してください。ビルドの配布フェーズで実行される暗号化は、他のアカウントまたはリージョンに配布されるイメージのみに適用されます。
アカウントのソースリージョンで作成された AMI の EBS ボリュームを暗号化するには、イメージレシピブロックデバイスマッピング (コンソールの[ストレージ (ボリューム)]) で KMS キーを設定する必要があります。
Image Builder は、リージョンに指定した[ターゲットアカウント]に AMI をコピーします。
前提条件
アカウントをまたいでイメージをコピーするには、すべてのディストリビューションターゲットアカウントに
EC2ImageBuilderDistributionCrossAccountRole
ロールを作成し、そのロールに Ec2ImageBuilderCrossAccountDistributionAccess ポリシー マネージドポリシーをアタッチする必要があります。[出力 AMI 名] はオプションです。名前を指定すると、最終的に出力される AMI 名には、AMI が構築されたときのタイムスタンプが付加されます。名前を指定しないと、Image Builder はビルドタイムスタンプをレシピ名に追加します。これにより、ビルドごとに一意の AMI 名が保証されます。
-
AMI 共有を使用すると、指定した AWS プリンシパルに AMI からインスタンスを起動するためのアクセスを許可できます。[AMI 共有] セクションを展開すると、次の詳細を入力できます。
-
起動許可 – AMI をプライベートに保ち、特定の AWS プリンシパルがプライベート AMI からインスタンスを起動するためのアクセスを許可する場合は、プライベートを選択します。AMI をパブリックにする場合は、[パブリック]を選択します。任意の AWS プリンシパルは、パブリック AMI からインスタンスを起動できます。
-
プリンシパル - インスタンスを起動するために、次のタイプの AWS プリンシパルへのアクセスを許可できます。
-
AWS アカウント - 特定の AWS アカウントへのアクセス権を付与する
-
[組織単位 (OU)] — OU とそのすべての子エンティティへのアクセスを許可します。子エンティティには OUsと AWS アカウントが含まれます。
-
組織 – AWS Organizationsとそのすべての子エンティティへのアクセスを許可します。子エンティティには OUsと AWS アカウントが含まれます。
まず、プリンシパルタイプを選択します。次に、アクセスを許可したい AWS プリンシパルの ID をドロップダウンリストの右側のボックスに入力します。異なるタイプの複数の ID を入力できます。
-
-
-
ライセンス設定セクションを展開して、 で作成したライセンス設定を Image Builder イメージ AWS License Manager にアタッチできます。ライセンスコンフィギュレーションには、企業契約の条件に基づくライセンスルールが含まれています。Image Builder には、ベース AMI に関連付けられたライセンス設定が自動的に含まれます。
-
[起動テンプレート設定]セクションを展開して、作成した AMI からインスタンスを起動するために使用する EC2 起動テンプレートを指定できます。
EC2 起動テンプレートを使用している場合は、ビルドの完了後に最新の AMI ID を含む起動テンプレートの新しいバージョンを作成するように Image Builder に指示できます。起動テンプレートを更新するには、次のように設定を行います。
-
[起動テンプレート名] — Image Builder で更新する起動テンプレートの名前を選択します。
-
[デフォルトバージョンを設定] — 起動テンプレートのデフォルトバージョンを新しいバージョンに更新するには、このチェックボックスを選択します。
別のローンチテンプレート設定を追加するには、Add launch template configuration を選択します。リージョンあたり最大 5 つの起動テンプレート設定を持つことができます。
-
-
-
別のリージョンのディストリビューション設定を追加するには、[リージョンを追加]を選択します。
-
-
完了したら Create settings を選択します。
から出力 AMIsディストリビューション設定を作成する AWS CLI
ディストリビューション設定を使用すると、出力 AMI の名前と説明を指定し、他の AWS アカウント に AMI の起動を許可し、AMI を他のアカウントにコピーして、AMI を他の AWS リージョンにレプリケートできます。また、AMI を Amazon Simple Storage Service (Amazon S3) にエクスポートしたり、出力 Windows AMI 用に EC2 高速起動を設定したりすることもできます。AMI をパブリックにするには、起動許可アカウントを all
に設定します。EC2 ModifyImageAttribute で AMI を公開する例を参照されたい。
次の例では、create-distribution-configuration コマンドを使用して AMI の新しいディストリビューション設定を作成し、 AWS CLIを使用して AMI の新しいディストリビューション設定を作成する方法を示します。
-
CLI 入力 JSON ファイルの作成
ファイル編集ツールを使って、以下の例のいずれかのキーと、あなたの環境で有効な値を持つ JSON ファイルを作成します。これらの例では AWS アカウント、指定したリージョンに配布する AMI を起動するアクセス許可を持つ AWS Organizations 組織単位 (OUs) を定義します。次のステップで使用するのファイルに
create-ami-distribution-configuration.json
で名前を付けます。 -
作成したファイルを入力として使用し、次のコマンドを実行します。
aws imagebuilder create-distribution-configuration --cli-input-json file://
create-ami-distribution-configuration.json
注記
-
JSON ファイルパスの先頭に
file://
表記を含める必要があります。 -
JSON ファイルのパスは、コマンドを実行するベースオペレーティングシステムに適した規則に従う必要があります。例えば、Windows ではディレクトリパスを表すためにバックスプラッシュ (\) が使用され、Linux と macOS ではフォーワードスラッシュ (/) が使用されます。
詳細については、AWS CLI コマンドリファレンスのcreate-distribution-configuration
を参照してください。 -
コンソールでの AMI ディストリビューション設定の更新
Image Builder コンソールを使用して AMI ディストリビューション設定を変更できます。更新されたディストリビューション設定は、今後すべての自動および手動パイプラインデプロイに使用されます。ただし、行った変更は、Image Builder が既に配布しているリソースには適用されません。例えば、後でディストリビューションから削除するリージョンに AMI を配布した場合、既に配布されていた AMI は、手動で削除するまでそのリージョンに残ります。
AMI ディストリビューション設定の更新
-
https://console.aws.amazon.com/imagebuilder/
で、EC2 Image Builder コンソールを開きます。 -
ナビゲーションペインから配信設定を選択します。アカウントで作成されたディストリビューション設定のリストが表示されます。
-
ディストリビューション設定の詳細を表示したり、更新したりするには、設定名リンクを選択します。ディストリビューション設定の詳細ビューが開きます。
注記
また、設定名の横にあるチェックボックスを選択し、詳細を表示を選択することもできます。
-
ディストリビューション設定を編集するには、[ディストリビューションの詳細]セクションの右上隅にある[編集]を選択します。ディストリビューション設定の[名前]や、[リージョン 1] と表示されるデフォルトの[リージョン] など、一部のフィールドはロックされています。ディストリビューション設定の詳細については、「コンソールでの AMI ディストリビューション設定の作成」を参照してください。
-
完了したら、変更を保存 を選択します。
出力 AMI の EC2 高速起動を有効にするディストリビューション設定の作成
次の例は、 AWS CLIから create-distribution-configuration
注記
Image Builder では、EC2 高速起動を事前に有効にした AMI のクロスアカウントディストリビューションはサポートされていません。EC2 高速起動は配布先のアカウントから有効にする必要があります。
-
CLI 入力 JSON ファイルの作成
ファイル編集ツールを使って、以下の例のようなキーと、あなたの環境で有効な値を持つ JSON ファイルを作成します。
この例では、並列起動の最大数がターゲットリソース数よりも多いため、すべてのターゲットリソースのインスタンスを同時に起動します。次のステップで示すコマンドの例では、このファイルは「
ami-dist-config-win-fast-launch.json
」と名付けられています。{ "name": "WinFastLaunchDistribution", "description": "An example of Windows AMI EC2 Fast Launch settings in the distribution configuration.", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{imagebuilder:buildDate}}", "description": "Includes Windows AMI EC2 Fast Launch settings.", "amiTags": { "KeyName": "Some Value" } }, "fastLaunchConfigurations": [{ "enabled": true, "snapshotConfiguration": { "targetResourceCount": 5 }, "maxParallelLaunches": 6, "launchTemplate": { "launchTemplateId": "lt-0ab1234c56d789012", "launchTemplateVersion": "1" } }], "launchTemplateConfigurations": [{ "launchTemplateId": "lt-0ab1234c56d789012", "setDefaultVersion": true }] }] }
注記
launchTemplate
のlaunchTemplateId
の代わりにlaunchTemplateName
を指定することはできるが、名前と ID の両方を指定することはできない。 -
作成したファイルを入力として使用し、次のコマンドを実行します。
aws imagebuilder create-distribution-configuration --cli-input-json file://
ami-dist-config-win-fast-launch.json
注記
-
JSON ファイルパスの先頭に
file://
表記を含める必要があります。 -
JSON ファイルのパスは、コマンドを実行するベースオペレーティングシステムに適した規則に従う必要があります。例えば、Windows ではディレクトリパスを表すためにバックスプラッシュ (\) が使用され、Linux と macOS ではフォーワードスラッシュ (/) が使用されます。
詳細については、AWS CLI コマンドリファレンスのcreate-distribution-configuration
を参照してください。 -
から出力 VM ディスクのディストリビューション設定を作成する AWS CLI
次の例は、create-distribution-configurationコマンドを使用して、イメージをビルドするたびに VM イメージディスクを Amazon S3 にエクスポートするディストリビューション設定を作成する方法を示しています。
-
CLI 入力 JSON ファイルの作成
AWS CLIで使うcreate-distribution-configurationコマンドを効率化できる。そのためには、コマンドに渡すすべてのエクスポート設定を含む JSON ファイルを作成します。
注記
JSON ファイル内のデータ値の命名規則は、Image Builder API オペレーションリクエストパラメータに指定されているパターンに従います。API オペレーションリクエストパラメータを確認するには、EC2 Image Builder API リファレンス」の CreateDistributionConfiguration コマンドを参照してください。
データ値をコマンドラインパラメータとして指定するには、AWS CLI コマンドリファレンスで指定されているパラメータ名を参照してください。オプションとして、create-distribution-configuration コマンドに指定します。
以下は、この例の
s3ExportConfiguration
JSON オブジェクトに指定するパラメータの概要であります。-
RoleName (文字列、必須) — S3 バケットにイメージをエクスポートするための VM Import/Export 権限を付与するロールの名前。
-
DiskImageFormat (文字列、必須) — 更新されたディスクイメージを以下のサポートされているフォーマットのいずれかにエクスポートします。
-
仮想ハードディスク(VHD) - Citrix Xen および Microsoft Hyper-V 仮想化製品と互換性があります。
-
ストリーム最適化 ESX 仮想マシンディスク(VMDK) - VMware ESX および VMware vSphere バージョン 4、5、6 と互換性があります。
-
Raw - Raw フォーマット。
-
-
S3Bucket (文字列、必須) — VM の出力ディスクイメージを保存する S3 バケット。
export-vm-disks.json
という名前でファイルを保存します。create-distribution-configuration コマンドではファイル名を使用します。{ "name": "example-distribution-configuration-with-vm-export", "description": "example", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "description": "example-with-vm-export" }, "s3ExportConfiguration": { "roleName": "vmimport", "diskImageFormat": "RAW", "s3Bucket": "vm-bucket-export" } }], "clientToken": "abc123def4567ab" }
-
-
作成したファイルを入力として使用し、次のコマンドを実行します。
aws imagebuilder create-distribution-configuration --cli-input-json file://
export-vm-disks.json
注記
-
JSON ファイルパスの先頭に
file://
表記を含める必要があります。 -
JSON ファイルのパスは、コマンドを実行するベースオペレーティングシステムに適した規則に従う必要があります。例えば、Windows ではディレクトリパスを表すためにバックスプラッシュ (\) が使用され、Linux と macOS ではフォーワードスラッシュ (/) が使用されます。
詳細については、AWS CLI コマンドリファレンスのcreate-distribution-configuration
を参照してください。 -
から AMI ディストリビューション設定を更新する AWS CLI
次の例では、update-distribution-configuration
-
CLI 入力 JSON ファイルの作成
お好みのファイル編集ツールを使って、以下の例に示すキーと、あなたの環境で有効な値を加えた JSON ファイルを作成します。この例では、
update-ami-distribution-configuration.json
という名前のファイルを使用します。{ "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/update-ami-distribution-configuration.json", "description": "Copies AMI to eu-west-2, and specifies accounts that can launch instances in each Region.", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{imagebuilder:buildDate}}", "description": "An example image name with parameter references", "launchPermissions": { "userIds": [ "987654321012" ] } } }, { "region": "eu-west-2", "amiDistributionConfiguration": { "name": "My {{imagebuilder:buildVersion}} image {{imagebuilder:buildDate}}", "tags": { "KeyName": "Some value" }, "launchPermissions": { "userIds": [ "100000000001" ] } } } ] }
-
作成したファイルを入力として使用し、次のコマンドを実行します。
aws imagebuilder update-distribution-configuration --cli-input-json file://
update-ami-distribution-configuration.json
注記
-
JSON ファイルパスの先頭に
file://
表記を含める必要があります。 -
JSON ファイルのパスは、コマンドを実行するベースオペレーティングシステムに適した規則に従う必要があります。例えば、Windows ではディレクトリパスを表すためにバックスプラッシュ (\) が使用され、Linux と macOS ではフォーワードスラッシュ (/) が使用されます。
詳細については、AWS CLI コマンドリファレンスのupdate-distribution-configuration
を参照してください。ディストリビューション設定リソースのタグを更新するには、「リソースのタグ付け」セクションを参照してください。 -