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

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

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

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

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

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

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

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

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

  4. イメージタイプセクションで、Amazon マシンイメージ (AMI) 出力タイプを選択します。

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

  6. [リージョン設定]セクションで、AMI を配布する各リージョンについて次の詳細を入力します。

    1. 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 名が保証されます。

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

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

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

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

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

          • Organization – AWS Organizationsとそのすべての子エンティティへのアクセスを許可します。子エンティティには OUsと AWS アカウントが含まれます。

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

      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 を他の アカウントにコピーし、AMI を他の AWS リージョンにレプリケートできます。また、AMI を Amazon Simple Storage Service (Amazon S3) にエクスポートしたり、出力 Windows AMI 用に EC2 高速起動を設定したりすることもできます。AMI をパブリックにするには、起動許可アカウントを all に設定します。EC2 ModifyImageAttribute で AMI を公開する例を参照されたい。

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

  1. CLI 入力 JSON ファイルの作成

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

    Accounts

    この例では、AMI を 2 つのリージョンに配布し、各リージョンに起動権限を持つ 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. https://console.aws.amazon.com/imagebuilder/ で、EC2 Image Builder コンソールを開きます。

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

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

    注記

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

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

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

から EC2 Fast Launch を有効にした Windows AMI のディストリビューション設定を作成する AWS CLI

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

注記

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

  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 コマンドのリクエストパラメータを確認するには、EC2 Image Builder API Reference の 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" }
  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 コマンドを使用して、 AWS CLIコ マンドを使用して AMI のディストリビューション設定を更新しています。

  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を参照してください。ディストリビューション設定リソースのタグを更新するには、「リソースのタグ付け」セクションを参照してください。