翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AMI ディストリビューション設定の作成と更新
このセクションでは、Image Builder 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
アクションも追加する必要があります。
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 を公開する例を参照されたい。
- Console
-
で新しい AMI ディストリビューション設定を作成するには、次の手順に従います AWS Management Console。
-
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 をコピーします。
[出力 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 に指示できます。起動テンプレートを更新するには、次のように設定を行います。
別のローンチテンプレート設定を追加するには、Add launch template configuration を選択します。リージョンあたり最大 5 つの起動テンプレート設定を持つことができます。
-
SSM パラメータ設定セクションを展開して、送信先リージョンに配信されるイメージの出力 AMI ID を保存する SSM パラメータを設定できます。必要に応じて、リージョンでディストリビューションアカウントを指定できます。
パラメータ名 – パラメータの名前を入力します。例: /output/image/param
。
データ型 – デフォルト値 () のままにしますAWS EC2 Image
。これにより、Systems Manager にパラメータ値を検証して、有効な AMI ID であることを確認するように指示します。
-
別のリージョンのディストリビューション設定を追加するには、[リージョンを追加]を選択します。
-
完了したら Create settings を選択します。
- AWS CLI
-
次の例では、create-distribution-configuration コマンドを使用して AMI の新しいディストリビューション設定を作成し、 AWS CLIを使用して AMI の新しいディストリビューション設定を作成する方法を示します。
-
CLI 入力 JSON ファイルの作成
ファイル編集ツールを使って、以下の例のいずれかのキーと、あなたの環境で有効な値を持つ JSON ファイルを作成します。これらの例では AWS アカウント、指定したリージョンに配布する AMI を起動するアクセス許可を持つ AWS Organizations 組織単位 (OUs) を定義します。次のステップで使用するのファイルにcreate-ami-distribution-configuration.json
で名前を付けます。
例 1: に配布する AWS アカウント
この例では、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"
]
}
}
}
]
}
例 2: Organizations と 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"
]
}
}
}
]
}
例 3: 出力 AMI ID を SSM パラメータに保存する
この例では、出力 AMI ID をディストリビューションリージョンの Parameter Store AWS Systems Manager パラメータに保存します。
{
"name": "SSMParameterOutputAMI
",
"description": "Updates an SSM parameter with the output AMI ID for the distribution.
",
"distributions": [
{
"region": "us-west-2
",
"amiDistributionConfiguration": {
"name": "Name {{ imagebuilder:buildDate }}"
},
"ssmParameterConfigurations": [
{
"amiAccountId": "111122223333
",
"parameterName": "/output/image/param
",
"dataType": "aws:ec2:image
"
}
]
}
]
}
-
作成したファイルを入力として使用し、次のコマンドを実行します。
aws imagebuilder create-distribution-configuration --cli-input-json file://create-ami-distribution-configuration.json
詳細については、AWS CLI コマンドリファレンスのcreate-distribution-configurationを参照してください。
AMI ディストリビューション設定を更新する
AMI ディストリビューション設定を変更できます。ただし、行った変更は、Image Builder が既に配布しているリソースには適用されません。例えば、後でディストリビューションから削除するリージョンに AMI を配布した場合、既に配布されていた AMI は、手動で削除するまでそのリージョンに残ります。
- AWS Management Console
-
で AMI ディストリビューション設定を行うには、次の手順に従います AWS Management Console。
-
https://console.aws.amazon.com/imagebuilder/ で、EC2 Image Builder コンソールを開きます。
-
ナビゲーションペインから配信設定を選択します。アカウントで作成されたディストリビューション設定のリストが表示されます。
-
ディストリビューション設定の詳細を表示したり、更新したりするには、設定名リンクを選択します。ディストリビューション設定の詳細ビューが開きます。
また、設定名の横にあるチェックボックスを選択し、詳細を表示を選択することもできます。
-
ディストリビューション設定を編集するには、[ディストリビューションの詳細]セクションの右上隅にある[編集]を選択します。ディストリビューション設定の[名前]や、[リージョン 1] と表示されるデフォルトの[リージョン] など、一部のフィールドはロックされています。ディストリビューション設定の詳細については、「AMI ディストリビューション設定を作成する」を参照してください。
-
完了したら、変更を保存 を選択します。
- AWS CLI
-
次の例では、update-distribution-configuration コマンドを使用して、 AWS CLIコ マンドを使用して AMI のディストリビューション設定を更新しています。
-
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
詳細については、AWS CLI コマンドリファレンスのupdate-distribution-configurationを参照してください。ディストリビューション設定リソースのタグを更新するには、「リソースのタグ付け」セクションを参照してください。
出力 AMI の EC2 高速起動を有効にするディストリビューション設定の作成
次の例は、 AWS CLIから create-distribution-configuration コマンドを使用して、AMI 用に EC2 高速起動が構成されたディストリビューション設定を作成する方法を示しています。
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
詳細については、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 (文字列、必須) — 更新されたディスクイメージを以下のサポートされているフォーマットのいずれかにエクスポートします。
-
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
詳細については、AWS CLI コマンドリファレンスのcreate-distribution-configurationを参照してください。