

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立基礎架構組態
<a name="create-infra-config"></a>

本節說明如何使用 中的 Image Builder 主控台或**imagebuilder**命令 AWS CLI 來建立基礎設施組態，

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

若要從 Image Builder 主控台建立基礎設施組態資源，請遵循下列步驟：

1. 開啟 EC2 Image Builder 主控台，位於 [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)。

1. 從導覽窗格中，選擇**基礎設施組態**。

1. 選擇**建立基礎設施組態**。

1. 在**一般**區段中，輸入下列必要資訊：
   + 輸入基礎設施組態資源**的名稱**。
   + 針對建置和測試執行個體上的元件許可，選取要與執行個體描述檔建立關聯的 **IAM 角色**。Image Builder 使用這些許可來下載和執行元件、將日誌上傳至 CloudWatch，以及執行配方中元件指定的任何其他動作。

1. 在**AWS 基礎設施**面板中，您可以設定可用的其餘基礎設施設定。輸入下列必填資訊：
   + **執行個體類型** – 您可以指定要用於此建置的一或多個執行個體類型。服務會根據可用性挑選其中一個執行個體類型。
**注意**  
Mac 執行個體在專用主機上的`.metal`執行個體類型上執行。您的執行個體類型必須符合其執行所在的主機所定義的其中一種類型。如需 Mac 執行個體的詳細資訊，以及原生支援 macOS 作業系統的執行個體類型清單，請參閱[《Amazon EC2 使用者指南》中的 Amazon EC2 Mac 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html)。 *Amazon EC2 *
   + **SNS 主題 （選用）** – 選取 SNS 主題以接收來自 EC2 Image Builder 的通知和提醒。

   如果您未提供下列設定的值，它們會在適用時使用服務特定的預設值。
   + **VPC、子網路和安全群組** – Image Builder 使用您的預設 VPC 和子網路。如需設定 VPC 介面端點的詳細資訊，請參閱 [映像建置器和 AWS PrivateLink 界面 VPC 端點](vpc-interface-endpoints.md)。
   + 在**疑難排解設定**區段中，您可以設定下列值：
     + 根據預設，會選取在**失敗時終止執行個體**核取方塊。不過，當組建失敗時，您可以登入 EC2 執行個體進行故障診斷。如果您希望執行個體在建置失敗後繼續執行，請清除核取方塊。
     + **金鑰對** – 如果您的 EC2 執行個體在建置失敗後繼續執行，您可以建立金鑰對，或使用現有的金鑰對登入執行個體並進行故障診斷。
     + **日誌** – 您可以指定 S3 儲存貯體，讓 Image Builder 撰寫應用程式日誌，以協助疑難排解您的建置和測試。如果您未指定 S3 儲存貯體，Image Builder 會將應用程式日誌寫入執行個體。
   + 在**執行個體中繼資料設定**區段中，您可以設定下列值，以套用至映像建置器用來建置和測試映像的 EC2 執行個體：
     + 選取**中繼資料版本**，以判斷 EC2 是否需要執行個體中繼資料擷取請求的簽章字符標頭。
       + **V1 和 V2 （金鑰選用）** – 如果您未選取任何項目，則為預設值。
       + **V2 （需要權杖）**
**注意**  
我們建議您將映像建置器從管道建置啟動的所有 EC2 執行個體設定為使用 IMDSv2，以便執行個體中繼資料擷取請求需要簽章權杖標頭。
     + **中繼資料字符回應跳轉限制** – 中繼資料字符可以移動的網路跳轉數量。最小跳轉：1，最大跳轉：64，預設為一個跳轉。
   + 在**執行個體置放設定**區段中，您可以設定下列值，以套用至映像建置器用來建置和測試映像的 EC2 執行個體：
     + 您可以選取映像建置器在映像建立期間啟動執行個體的**可用區域**。
     + 選擇性地為執行您啟動之執行個體的伺服器選取**租用**。依預設，EC2 執行個體在共用的租用硬體上執行。這表示多個 AWS 帳戶 可能會共用相同的實體硬體。具有`dedicated`租用的執行個體會在單一租用戶硬體上執行。具有`host`租用的執行個體會在專用主機上執行。

       Mac 執行個體需要建立為先決條件的專用主機，才能建置自訂映像。`host` 為您的 macOS 映像選取 。然後，您可以選取要啟動執行個體的目標主機或主機資源群組，但如果您的專用主機已啟用自動配置，則不需要。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[自動置放](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-understanding.html#dedicated-hosts-auto-placement)。
       + **租用主機 ID** – 執行個體執行所在的專用主機 ID。
       + **租用主機資源群組** – 要在其中啟動執行個體之主機資源群組的 Amazon Resource Name (ARN)。

1. 在**基礎設施標籤**區段 （選用） 中，您可以將中繼資料標籤指派給映像建置器在建置程序期間啟動的 Amazon EC2 執行個體。標籤會輸入為索引鍵值對。

1. 在**標籤**區段 （選用） 中，您可以將中繼資料標籤指派給 Image Builder 建立為輸出的基礎設施組態資源。標籤會輸入為索引鍵值對。

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

下列程序說明如何使用 中的映像建置器**[create-infrastructure-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/create-infrastructure-configuration.html)**命令來設定映像的基礎設施 AWS CLI。步驟 2 中的 命令會採用您在步驟 1 中建立的 檔案。對於這些範例，步驟 1 的檔案稱為 `create-infrastructure-configuration.json`。

1. 

**建立 CLI 輸入 JSON 文件**

   下列範例顯示您可能為基礎設施組態建立的 JSON 檔案變化。使用檔案編輯工具建立您自己的 JSON 檔案。

   **範例 1：從失敗的建置保留執行個體的組態**

   此範例會指定兩種執行個體類型 `m5.large`和 `m5.xlarge`。我們建議您指定多個執行個體類型，因為這可讓 Image Builder 從具有足夠容量的集區啟動執行個體。這可以減少您的暫時性建置失敗。

   `instanceProfileName` 指定執行個體描述檔，為執行個體提供執行自訂活動所需的許可。例如，如果您有一個從 Amazon S3 擷取資源的元件，執行個體描述檔需要存取這些檔案的許可。執行個體描述檔也需要一組最低的許可，EC2 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}}
   ```

------