翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AMI ディストリビューション設定の作成と更新
このセクションでは、Image Builder AMI のディストリビューション設定の作成と更新について説明します。
内容
AMI ディストリビューションの前提条件
一部のディストリビューション設定には、次のような前提条件があります。
SSM 出力パラメータの前提条件
パラメータストアパラメータ (SSM AWS Systems Manager パラメータ) を設定する新しい AMI ディストリビューション設定を作成する前に、次の前提条件を満たしていることを確認してください。
- 実行ロール
-
パイプラインを作成する場合、または で create-image コマンドを使用する場合は AWS CLI、Image Builder 実行ロールを 1 つだけ指定できます。Image Builder ワークフロー実行ロールを定義している場合は、そのロールに機能アクセス許可を追加します。それ以外の場合は、必要なアクセス許可を含む新しいカスタムロールを作成します。
-
ディストリビューション中に出力 AMI ID を SSM パラメータに保存するには、Image Builder 実行ロールで
ssm:PutParameter
アクションを指定し、 パラメータをリソースとしてリストする必要があります。 -
パラメータデータ型を に設定
AWS EC2 Image
して、パラメータ値を AMI ID として検証するように Systems Manager にシグナルを送信する場合は、ec2:DescribeImages
アクションも追加する必要があります。
-
EC2 Fast Launch の前提条件
EC2 Fast Launch for Windows AMIs の新しいディストリビューション設定を作成する前に、次の前提条件を満たしていることを確認してください。
-
EC2 Fast Launch を設定するときにカスタム起動テンプレートを指定すると、サービスはその起動テンプレートに定義されている VPC とその他設定を使用します。詳細については、EC2 Fast Launch をセットアップするときに起動テンプレートを使用する」を参照してください。
-
カスタム起動テンプレートを使用して設定を行わない場合は、Image Builder がイメージの作成に使用する IAM ロールにEC2FastLaunchFullAccessポリシーをアタッチする必要があります。パイプラインを作成する場合、または で create-image コマンドを使用する場合は AWS CLI、Image Builder 実行ロールを 1 つだけ指定できます。Image Builder ワークフロー実行ロールを定義している場合は、そのロールに機能アクセス許可を追加します。それ以外の場合は、必要なアクセス許可を含む新しいカスタムロールを作成します。
次に、Image Builder がイメージをコピーすると、EC2 Fast Launch は に次のリソースを含む AWS CloudFormation スタックを自動的に作成します AWS アカウント。
-
仮想プライベートクラウド (VPC)
-
複数のアベイラビリティーゾーンにまたがるプライベートサブネット
-
Instance Metadata Service Version 2 (IMDSv2) で設定された起動テンプレート
-
インバウンドルールまたはアウトバウンドルールがないセキュリティグループ
-
注記
Image Builder では、EC2 高速起動を事前に有効にした AMI のクロスアカウントディストリビューションはサポートされていません。EC2 高速起動は配布先のアカウントから有効にする必要があります。
AMI ディストリビューション設定を作成する
ディストリビューション設定には、出力 AMI 名、暗号化の特定のリージョン設定、起動許可 AWS アカウント、出力 AMI を起動できる組織および組織単位 (OUs)、ライセンス設定が含まれます。
ディストリビューション設定を使用すると、出力 AMI の名前と説明を指定し、他の AWS アカウント に AMI の起動を許可し、AMI を他のアカウントにコピーして、AMI を他の AWS リージョンにレプリケートできます。また、AMI を Amazon Simple Storage Service (Amazon S3) にエクスポートしたり、出力 Windows AMI 用に EC2 高速起動を設定したりすることもできます。AMI をパブリックにするには、起動許可アカウントを all
に設定します。EC2 ModifyImageAttribute で AMI を公開する例を参照されたい。
AMI ディストリビューション設定を更新する
AMI ディストリビューション設定を変更できます。ただし、行った変更は、Image Builder が既に配布しているリソースには適用されません。例えば、後でディストリビューションから削除するリージョンに AMI を配布した場合、既に配布されていた AMI は、手動で削除するまでそのリージョンに残ります。
例: 出力 AMI の起動テンプレートを使用して EC2 Fast Launch を有効にする AMIs
次の例は、起動テンプレートで create-distribution-configuration
起動テンプレートなしで EC2 Fast Launch 設定を構成するには、ディストリビューション設定を作成するEC2 Fast Launch の前提条件前に、 がすべて満たされていることを確認してください。
-
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
を参照してください。 -