

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

# インフラストラクチャ構成を作成します。
<a name="create-infra-config"></a>

このセクションでは、 で Image Builder コンソールまたは **imagebuilder** コマンドを使用してインフラストラクチャ設定 AWS CLI を作成する方法について説明します。

------
#### [ Console ]

Image Builder コンソールでインフラストラクチャ設定リソースを作成するには、次の手順に従います。

1. [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/) で、EC2 Image Builder コンソールを開きます。

1. ナビゲーションペインで、**インフラストラクチャー設定** を選択します。

1. **インフラストラクチャー構成の作成** を選択します。

1. **全般** セクションに、以下の情報を入力します。
   + インフラストラクチャー設定リソースの**名前** を入力します。
   + ビルドインスタンスとテストインスタンスのコンポーネントアクセス許可についてインスタンスプロファイルに関連付ける **[IAM ロール]** を選択します。Image Builder はこれらの権限を使用して、コンポーネントのダウンロードと実行、CloudWatch へのログのアップロード、およびレシピ内のコンポーネントで指定されている追加アクションの実行を行います。

1. **[AWS インフラストラクチャ]** パネルでは、利用可能な残りのすべてのインフラストラクチャ設定を構成できます。以下の必須情報を入力します。
   + **インスタンスタイプ** — このビルドに使用するインスタンスタイプを 1 つ以上指定できます。サービスは可用性に基づいてこれらのインスタンスタイプから 1 つを選択します。
**注記**  
Mac インスタンスは、専有ホストの `.metal` インスタンスタイプで実行されます。指定するインスタンスタイプは、実行するホストに定義されているタイプのいずれかと一致する必要があります。Mac インスタンスの詳細と、macOS オペレーティングシステムをネイティブにサポートするインスタンスタイプの一覧については、「*Amazon EC2 ユーザーガイド*」の「[Amazon EC2 Mac インスタンス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html)」を参照してください。
   + **SNS トピック (オプション)** - EC2 Image Builder からの通知とアラートを受信する SNS トピックを選択します。

   以下の設定に値を指定しない場合、該当する場合、サービス固有のデフォルトが使用されます。
   + **VPC、サブネット、セキュリティグループ** — Image Builder はデフォルトの VPC とサブネットを使用します。VPC インターフェイスエンドポイントの設定の詳細については、「[Image Builder と AWS PrivateLink インターフェイス VPC エンドポイント](vpc-interface-endpoints.md)」を参照してください。
   + **トラブルシューティング設定** セクションでは、以下の値を設定できます。
     + デフォルトでは、**障害発生時にインスタンスを終了** チェックボックスが選択されています。ただし、ビルドが失敗した場合、EC2 インスタンスにログオンしてトラブルシューティングを行うことができます。ビルドが失敗した後もインスタンスを実行し続けるには、このチェックボックスをオフにします。
     + **キーペア** — ビルドが失敗した後も EC2 インスタンスが実行され続ける場合は、キーペアを作成するか、既存のキーペアを使用してインスタンスにログオンし、トラブルシューティングを行うことができます。
     + **ログ** — Image Builder がビルドとテストのトラブルシューティングに役立つアプリケーションログを書き込める S3 バケットを指定できます。S3 バケットを指定しない場合、Image Builder はアプリケーションログをインスタンスに書き込みます。
   + **インスタンスメタデータ設定** セクションでは、Image Builder がイメージのビルドとテストに使用する EC2 インスタンスに適用する次の値を設定できます。
     + **メタデータバージョン** を選択して、EC2 がインスタンスのメタデータの取得リクエストで、署名付きトークンヘッダーを必要とするかどうかを判断します。
       + **V1 と V2 (トークンはオプション)** — 何も選択しない場合のデフォルト値。
       + **V2 (トークンが必要)**
**注記**  
Image Builder がパイプラインビルドから起動するすべての EC2 インスタンスを IMDSv2 を使用するように設定して、インスタンスメタデータの取得リクエストに署名付きトークンヘッダーが必要になるようにすることをお勧めします。
     + **メタデータトークンの応答ホップ上限数** – メタデータトークンに輸送できるネットワークホップ数。最小ホップ:1、最大ホップ:64、デフォルトは 1 ホップ。
   + **[インスタンス配置の設定]** セクションでは、Image Builder がイメージのビルドとテストに使用する EC2 インスタンスに適用する次の値を設定できます。
     + イメージの作成中に Image Builder がインスタンスを起動する **[アベイラビリティーゾーン]** を選択できます。
     + 必要に応じて、起動したインスタンスを実行するサーバーの **[テナンシー]** を選択します。デフォルトでは、EC2 インスタンスは共有テナンシーハードウェアで実行されます。つまり、複数の AWS アカウント が同じ物理ハードウェアを共有する可能性があります。`dedicated` テナンシーのインスタンスは、シングルテナントのハードウェアで実行されます。`host` テナンシーのインスタンスは、専有ホストで実行されます。

       Mac インスタンスには、カスタムイメージのビルド前に前提条件として作成された専有ホストが必要です。macOS イメージ用の `host` を選択します。その後、インスタンスを起動するターゲットホストまたはホストリソースグループを選択できますが、専有ホストで自動配置が有効になっている場合は必須ではありません。詳細については、「*Amazon EC2 ユーザーガイド*」の「[自動配置](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-understanding.html#dedicated-hosts-auto-placement)」を参照してください。
       + **[テナンシーのホスト ID]** - インスタンスが実行される専有ホストの ID。
       + **[テナンシーのホストリソースグループ]** - インスタンスを起動するホストリソースグループの Amazon リソースネーム (ARN)。

1. **[インフラストラクチャタグ]** セクション (オプション) では、Image Builder がビルドプロセス中に起動する Amazon EC2 インスタンスにメタデータタグを割り当てることができます。タグはキーと値のペアとして入力します。

1. **[タグ]** セクション (オプション) では、Image Builder が出力として作成するインフラストラクチャ設定リソースにメタデータタグを割り当てることができます。タグはキーと値のペアとして入力します。

------
#### [ AWS CLI ]

以下の手順では、 AWS CLIで Image Builder の **[create-infrastructure-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/create-infrastructure-configuration.html)** コマンドを使用して、イメージのインフラストラクチャを設定する方法を示します。手順 2 のコマンドには、手順 1 で作成したファイルを指定します。これらの例では、手順 1 のファイルを `create-infrastructure-configuration.json` として参照しています。

1. 

**CLI 入力 JSON ファイルの作成**

   次の例は、インフラストラクチャ設定用に作成できる JSON ファイルのバリエーションを示しています。ファイル編集ツールを使用して独自の JSON ファイルを作成してください。

   **例 1: 失敗したビルドのインスタンスを保持する設定**

   この例では、`m5.large` と `m5.xlarge` の 2 つのインスタンスタイプを指定します。複数のインスタンスタイプを指定することをお勧めします。これにより、Image Builder は十分な容量のプールからインスタンスを起動できます。これにより、一時的なビルドエラーを減らすことができます。

   `instanceProfileName` はプロファイルがカスタマイズアクティビティを実行するのに必要な権限をインスタンスに提供するインスタンスプロファイルを指定します。例えば、Amazon S3 からリソースを取得するコンポーネントがある場合、インスタンスプロファイルにはそれらのファイルにアクセスするためのアクセス権限が必要です。インスタンスプロファイルには、EC2 Image Builder がインスタンスと正常に通信するための最小限の権限セットも必要です。詳細については、「[Image Builder を使用してカスタムイメージをビルドするためのセットアップ](set-up-ib-env.md)」を参照してください。

   ```
   {
       "name": "ExampleInfraConfigDontTerminate",
       "description": "An example that will retain instances of failed builds",
       "instanceTypes": [
           "m5.large", "m5.xlarge"
       ],
       "instanceProfileName": "myIAMInstanceProfileName",
       "securityGroupIds": [
           "sg-12345678"
       ],
       "subnetId": "sub-12345678",
       "logging": {
           "s3Logs": {
               "s3BucketName": "my-logging-bucket",
               "s3KeyPrefix": "my-path"
           }
       },
       "keyPair": "myKeyPairName",
       "terminateInstanceOnFailure": false,
       "snsTopicArn": "arn:aws:sns:us-west-2:123456789012:MyTopic"
   }
   ```

**例 2: 自動配置が有効な macOS 設定**  
この例では、専有ホストで自動配置が有効になっている Mac インスタンスのインスタンスタイプとプレイスメントを指定します。

   ```
   {
      "name": "macOSInfraConfigAutoPlacement",
      "description": "An example infrastructure configuration for macOS.",
      "instanceProfileName": "EC2InstanceProfileForImageBuilder",
      "instanceTypes": ["mac1.metal, mac2.metal"],
      "terminateInstanceOnFailure": false,
      "placement": {
         "tenancy": "host"
      }
   }
   ```

**例 3: ホスト ID が指定された macOS 設定**  
この例では、特定の専有ホストをターゲットとする Mac インスタンスのインスタンスタイプとプレイスメントを指定します。

   ```
   {
      "name": "macOSInfraConfigHostPlacement",
      "description": "An example infrastructure configuration for macOS.",
      "instanceProfileName": "EC2InstanceProfileForImageBuilder",
      "instanceTypes": ["mac2-m1ultra.metal"],
      "terminateInstanceOnFailure": false,
      "placement": {
         "tenancy": "host",
         "hostId" : "h-1234567890abcdef0"
      }
   }
   ```

1. 

**以下のコマンドを実行する際には、作成したファイルを入力として使用します。**

   ```
   aws imagebuilder create-infrastructure-configuration --cli-input-json file://create-infrastructure-configuration.json
   ```

------