AMI ディストリビューション設定の作成と更新 - EC2 Image Builder

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

AMI ディストリビューション設定の作成と更新

このセクションでは、Image Builder のディストリビューション設定の作成と更新について説明しますAMI。

コンソールからAMIディストリビューション設定を作成する

ディストリビューション設定には、出力AMI名、暗号化の特定のリージョン設定、起動許可、出力を起動できる AWS アカウント組織、組織単位 (OUs)AMI、ライセンス設定が含まれます。

新しいAMIディストリビューション設定を作成するには:
  1. で EC2 Image Builder コンソールを開きますhttps://console.aws.amazon.com/imagebuilder/

  2. ナビゲーションペインから配信設定を選択します。アカウントで作成されたディストリビューション設定のリストが表示されます。

  3. [ディストリビューション設定]パネルの上部にある[ディストリビューション設定を作成]を選択します。

  4. Image type セクションで、Amazon Machine Image (AMI) 出力タイプを選択します。

  5. 全般セクションで、ディストリビューション設定の[名前]とオプションの説明を入力します。

  6. リージョン設定セクションで、 を配布するリージョンごとに次の詳細を入力しますAMI。

    1. AMI は、デフォルトで現在のリージョン (リージョン 1) に分散されます。[リージョン 1]は配信のソースです。[リージョン 1]の一部の設定は編集できません。追加するどのリージョンでも、[リージョン]ドロップダウンリストからリージョンを選択できます。

      Kms キー AWS KMS key は、ターゲットリージョン内のイメージのEBSボリュームを暗号化するために使用される を識別します。これは、ビルドAMIがソースリージョン (リージョン 1) のアカウントで作成する元の には適用されないことに注意してください。ビルドの配布フェーズで実行される暗号化は、他のアカウントまたはリージョンに配布されるイメージのみに適用されます。

      アカウントのソースリージョンでAMI作成された のEBSボリュームを暗号化するには、イメージレシピブロックデバイスマッピング (コンソールのストレージ (ボリューム)) で KMSキーを設定する必要があります。

      Image Builder はAMI、リージョンに指定したターゲットアカウントに をコピーします。

      前提条件

      アカウント間でイメージをコピーするには、すべてのディストリビューションターゲットアカウントにEC2ImageBuilderDistributionCrossAccountRoleロールを作成し、 Ec2ImageBuilderCrossAccountDistributionAccess ポリシーマネージドポリシーをロールにアタッチする必要があります。

      出力AMI名はオプションです。名前を指定すると、最終出力AMI名には、 AMI の構築時に のタイムスタンプが追加されます。名前を指定しないと、Image Builder はビルドタイムスタンプをレシピ名に追加します。これにより、各ビルドに一意のAMI名前が付けられます。

      1. AMI 共有を使用すると、指定された AWS プリンシパルに からインスタンスを起動するためのアクセス許可を付与できますAMI。AMI 共有セクションを展開する場合は、次の詳細を入力できます。

        • 起動許可 – AMIプライベートを保持する場合はプライベートを選択し、プライベート からインスタンスを起動するための特定の AWS プリンシパルへのアクセスを許可しますAMI。パブリックにする場合は、AMI「パブリック」を選択します。任意の AWS プリンシパルは、パブリック からインスタンスを起動できますAMI。

        • プリンシパル - インスタンスを起動するために、次のタイプの AWS プリンシパルへのアクセスを許可できます。

          • AWS アカウント – 特定の AWS アカウントへのアクセスを許可します。

          • [組織単位 (OU)] — OU とそのすべての子エンティティへのアクセスを許可します。子エンティティには、 OUs および AWS アカウントが含まれます。

          • 組織 — とその AWS Organizationsすべての子エンティティへのアクセスを許可します。子エンティティには、 OUs および AWS アカウントが含まれます。

            まず、プリンシパルタイプを選択します。次に、アクセスを許可したい AWS プリンシパルの ID をドロップダウンリストの右側のボックスに入力します。複数のIDs異なるタイプを入力できます。

      2. ライセンス設定セクションを展開して、 で作成されたライセンス設定を Image Builder イメージ AWS License Manager にアタッチできます。ライセンスコンフィギュレーションには、企業契約の条件に基づくライセンスルールが含まれています。Image Builder には、ベース に関連付けられたライセンス設定が自動的に含まれますAMI。

      3. 起動テンプレート設定セクションを展開して、AMI作成した からインスタンスを起動するために使用するEC2起動テンプレートを指定できます。

        EC2 起動テンプレートを使用している場合は、ビルド完了後に最新の AMI ID を含む新しいバージョンの起動テンプレートを作成するように Image Builder に指示できます。起動テンプレートを更新するには、次のように設定を行います。

        • [起動テンプレート名] — Image Builder で更新する起動テンプレートの名前を選択します。

        • [デフォルトバージョンを設定] — 起動テンプレートのデフォルトバージョンを新しいバージョンに更新するには、このチェックボックスを選択します。

        別のローンチテンプレート設定を追加するには、Add launch template configuration を選択します。リージョンあたり最大 5 つの起動テンプレート設定を持つことができます。

    2. 別のリージョンのディストリビューション設定を追加するには、[リージョンを追加]を選択します。

  7. 完了したら Create settings を選択します。

AMIs からの出力のディストリビューション設定を作成する AWS CLI

ディストリビューション設定では、出力 の名前と説明を指定しAMI、他のユーザー AWS アカウント に の起動を許可しAMI、 AMIを他のアカウントにコピーし、 を他の AWS リージョンAMIにレプリケートできます。また、 を Amazon Simple Storage Service (Amazon S3) AMIにエクスポートしたり、出力 Windows のEC2高速起動を設定したりすることもできますAMIs。AMI 公開するには、起動許可の認可されたアカウントを に設定しますall。でAMI公開する例を参照してくださいEC2ModifyImageAttribute

次の例は、 create-distribution-configuration コマンドを使用してAMI、 を使用して の新しいディストリビューション設定を作成する方法を示しています AWS CLI。

  1. CLI 入力JSONファイルを作成する

    ファイル編集ツールを使用して、次のいずれかの例に示されているキーと、環境に対して有効な値を持つJSONファイルを作成します。これらの例では AWS アカウント、指定したリージョンに配布AMIする を起動するアクセス許可を持つ AWS Organizations 、または組織単位 (OUs) を定義します。次のステップで使用するのファイルにcreate-ami-distribution-configuration.jsonで名前を付けます。

    Accounts

    この例では、 を 2 つのリージョンAMIに分散し、各リージョンで起動許可を持つ AWS アカウント を指定します。

    { "name": "MyExampleAccountDistribution", "description": "Copies AMI to eu-west-1, 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", "amiTags": { "KeyName": "Some Value" }, "launchPermission": { "userIds": [ "987654321012" ] } } }, { "region": "eu-west-1", "amiDistributionConfiguration": { "name": "My {{imagebuilder:buildVersion}} image {{imagebuilder:buildDate}}", "amiTags": { "KeyName": "Some value" }, "launchPermission": { "userIds": [ "100000000001" ] } } } ] }
    Organizations and OUs

    この例では、 をソースリージョンAMIに配布し、組織と OU の起動許可を指定します。

    { "name": "MyExampleAWSOrganizationDistribution", "description": "Shares AMI with the Organization and OU", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{ imagebuilder:buildDate }}", "launchPermission": { "organizationArns": [ "arn:aws:organizations::123456789012:organization/o-myorganization123" ], "organizationalUnitArns": [ "arn:aws:organizations::123456789012:ou/o-123example/ou-1234-myorganizationalunit" ] } } } ] }
  2. 作成したファイルを入力として使用し、次のコマンドを実行します。
    aws imagebuilder create-distribution-configuration --cli-input-json file://create-ami-distribution-configuration.json
    注記
    • JSON ファイルパスの先頭にfile://表記を含める必要があります。

    • JSON ファイルのパスは、コマンドを実行しているベースオペレーティングシステムの適切な規則に従う必要があります。例えば、Windows ではディレクトリパスを参照するためにバックスプラッシュ (|) が使用され、Linux ではフォーワードスラッシュ (/) が使用されます。

    詳細については、AWS CLI コマンドリファレンスのcreate-distribution-configurationを参照してください。

コンソールからAMIディストリビューション設定を更新する

Image Builder コンソールを使用してAMIディストリビューション設定を変更できます。更新されたディストリビューション設定は、今後すべての自動および手動パイプラインデプロイに使用されます。ただし、行った変更は、Image Builder が既に配布しているリソースには適用されません。例えば、後でディストリビューションから削除したリージョンAMIに をディストリビューションした場合、既にディストリビューションAMIされた は、手動で削除するまでそのリージョンに残ります。

AMI ディストリビューション設定を更新する
  1. で EC2 Image Builder コンソールを開きますhttps://console.aws.amazon.com/imagebuilder/

  2. ナビゲーションペインから配信設定を選択します。アカウントで作成されたディストリビューション設定のリストが表示されます。

  3. ディストリビューション設定の詳細を表示したり、更新したりするには、設定名リンクを選択します。ディストリビューション設定の詳細ビューが開きます。

    注記

    また、設定名の横にあるチェックボックスを選択し、詳細を表示を選択することもできます。

  4. ディストリビューション設定を編集するには、[ディストリビューションの詳細]セクションの右上隅にある[編集]を選択します。ディストリビューション設定の[名前]や、[リージョン 1] と表示されるデフォルトの[リージョン] など、一部のフィールドはロックされています。ディストリビューション設定の詳細については、「コンソールからAMIディストリビューション設定を作成する」を参照してください。

  5. 完了したら、変更を保存 を選択します。

ディストリビューション設定を作成して、出力のEC2高速起動を有効にする AMIs

次の例は、 create-distribution-configuration コマンドを使用してAMI、 から に対してEC2高速起動が設定されているディストリビューション設定を作成する方法を示しています AWS CLI。

注記

Image Builder は、EC2Fast Launch が事前に有効AMIsになっている のクロスアカウントディストリビューションをサポートしていません。EC2 Fast Launch は、送信先アカウントから有効にする必要があります。

  1. 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 }] }] }
    注記

    launchTemplatelaunchTemplateIdの代わりにlaunchTemplateNameを指定することはできるが、名前と ID の両方を指定することはできない。

  2. 作成したファイルを入力として使用し、次のコマンドを実行します。
    aws imagebuilder create-distribution-configuration --cli-input-json file://ami-dist-config-win-fast-launch.json
    注記
    • JSON ファイルパスの先頭にfile://表記を含める必要があります。

    • JSON ファイルのパスは、コマンドを実行しているベースオペレーティングシステムの適切な規則に従う必要があります。例えば、Windows ではディレクトリパスを参照するためにバックスプラッシュ (|) が使用され、Linux ではフォーワードスラッシュ (/) が使用されます。

    詳細については、AWS CLI コマンドリファレンスのcreate-distribution-configurationを参照してください。

から出力 VM ディスクのディストリビューション設定を作成する AWS CLI

次の例は、create-distribution-configurationコマンドを使用して、イメージをビルドするたびに VM イメージディスクを Amazon S3 にエクスポートするディストリビューション設定を作成する方法を示しています。

  1. CLI 入力JSONファイルを作成する

    AWS CLIで使うcreate-distribution-configurationコマンドを効率化できる。これを行うには、 コマンドに渡すすべてのエクスポート設定を含むJSONファイルを作成します。

    注記

    JSON ファイル内のデータ値の命名規則は、Image Builder APIアクションリクエストパラメータに指定されたパターンに従います。API コマンドリクエストパラメータを確認するには、EC2Image Builder APIリファレンスCreateDistributionConfiguration コマンドを参照してください。

    データ値をコマンドラインパラメータとして指定するには、AWS CLI コマンドリファレンスで指定されているパラメータ名を参照してください。オプションとして、create-distribution-configuration コマンドに指定します。

    以下は、この例の s3ExportConfiguration JSON オブジェクトで指定するパラメータの概要です。

    • roleName (文字列、必須) – VM Import/Export に S3 バケットにイメージをエクスポートするアクセス許可を付与するロールの名前。

    • diskImageFormat (文字列、必須) — 更新されたディスクイメージを、次のいずれかのサポートされている形式にエクスポートします。

      • Virtual Hard Disk (VHD) — Citrix Xen および Microsoft Hyper-V 仮想化製品と互換性があります。

      • ストリーム最適化ESX仮想マシンディスク (VMDK) – VMware vSphere バージョン 4、5、6 VMwareESXと互換性があります。

      • 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" }
  2. 作成したファイルを入力として使用し、次のコマンドを実行します。
    aws imagebuilder create-distribution-configuration --cli-input-json file://export-vm-disks.json
    注記
    • JSON ファイルパスの先頭にfile://表記を含める必要があります。

    • JSON ファイルのパスは、コマンドを実行しているベースオペレーティングシステムの適切な規則に従う必要があります。例えば、Windows ではディレクトリパスを参照するためにバックスプラッシュ (|) が使用され、Linux ではフォーワードスラッシュ (/) が使用されます。

    詳細については、AWS CLI コマンドリファレンスのcreate-distribution-configurationを参照してください。

からAMIディストリビューション設定を更新する AWS CLI

次の例は、 update-distribution-configuration コマンドを使用してAMI、 を使用して のディストリビューション設定を更新する方法を示しています AWS CLI。

  1. 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" ] } } } ] }
  2. 作成したファイルを入力として使用し、次のコマンドを実行します。
    aws imagebuilder update-distribution-configuration --cli-input-json file://update-ami-distribution-configuration.json
    注記
    • JSON ファイルパスの先頭にfile://表記を含める必要があります。

    • JSON ファイルのパスは、コマンドを実行しているベースオペレーティングシステムの適切な規則に従う必要があります。例えば、Windows ではディレクトリパスを参照するためにバックスプラッシュ (|) が使用され、Linux ではフォーワードスラッシュ (/) が使用されます。

    詳細については、AWS CLI コマンドリファレンスのupdate-distribution-configurationを参照してください。ディストリビューション設定リソースのタグを更新するには、「リソースのタグ付け」セクションを参照してください。