

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

# 教學課程：建立運算資源 AMI
<a name="create-batch-ami"></a>

您可以建立自己的自訂運算資源 AMI，以用於受管和未受管的運算環境。如需說明，請參閱 [運算資源 AMI 規格](batch-ami-spec.md)。然後，在建立自訂 AMI 之後，您可以建立運算環境，使用該 AMI，您可以將任務佇列與之建立關聯。最後，開始將任務提交至該佇列。

**建立自訂運算資源 AMI**

1. 選擇要從中開始的基本 AMI。基本 AMI 必須使用 HVM 虛擬化。基本 AMI 不能是 Windows AMI。
**注意**  
您為運算環境選擇的 AMI 必須符合您打算用於該運算環境之執行個體類型的架構。例如，如果您的運算環境使用 A1 執行個體類型，則您所選擇的運算資源 AMI 必須支援 ARM 執行個體。Amazon ECS 同時提供 Amazon ECS 最佳化 Amazon Linux 2 AMI 的 x86 和 ARM 版本。如需詳細資訊，請參閱《[Amazon Elastic Container Service 開發人員指南》中的 Amazon ECS 最佳化 Amazon Linux 2 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html)。 **

   Amazon ECS 最佳化 Amazon Linux 2 AMI 是受管運算環境中運算資源的預設 AMI。Amazon ECS 最佳化 Amazon Linux 2 AMI 由 AWS Batch AWS 工程師預先設定並在 上進行測試。這是一個最小的 AMI，您可以開始使用 並 AWS 快速取得正在執行的運算資源。如需詳細資訊，請參閱《[Amazon Elastic Container Service 開發人員指南》中的 Amazon ECS Optimized AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)。 **

   或者，您可以選擇另一個 Amazon Linux 2 變體，並使用下列命令安裝`ecs-init`套件。如需詳細資訊，請參閱[《Amazon Elastic Container Service 開發人員指南》中的在 Amazon Linux 2 EC2 執行個體上安裝 Amazon ECS 容器代理](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-install.html#ecs-agent-install-al2)程式： **

   ```
   $ sudo amazon-linux-extras disable docker
   $ sudo amazon-linux-extras install ecs-init
   ```

   例如，如果您想要在 AWS Batch 運算資源上執行 GPU 工作負載，您可以從 [Amazon Linux Deep Learning AMI](https://aws.amazon.com/marketplace/pp/B01M0AXXQB) 開始。然後，設定 AMI 以執行 AWS Batch 任務。如需詳細資訊，請參閱[使用 GPU 工作負載 AMI](batch-gpu-ami.md)。
**重要**  
您可以選擇不支援`ecs-init`套件的基本 AMI。不過，如果您這麼做，則必須設定在開機時啟動 Amazon ECS 代理程式並保持執行的方式。您也可以檢視數個用於`systemd`啟動和監控 Amazon ECS 容器代理程式的使用者資料組態指令碼範例。如需詳細資訊，請參閱《*Amazon Elastic Container Service 開發人員指南*》中的[容器執行個體使用者資料組態指令碼範例](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/example_user_data_scripts.html)。

1. 使用適用於 AMI 的適當儲存選項，從您選取的基礎 AMI 啟動執行個體。您可以設定連接 Amazon EBS 磁碟區的大小和數量，或者如果您選取的執行個體類型支援，則可以設定執行個體儲存磁碟區。如需詳細資訊，請參閱《Amazon EC2 使用者指南》中的[啟動執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html)和 Amazon EC2 執行個體存放區。 [Amazon EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) *Amazon EC2 *

1. 使用 連線至您的執行個體，SSH並執行任何必要的組態任務。這可能包括下列任何或所有步驟：
   + 安裝 Amazon ECS 容器代理程式。如需詳細資訊，請參閱[《Amazon Elastic Container Service 開發人員指南》中的安裝 Amazon ECS 容器代理](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-install.html)程式。 **
   + 設定指令碼，以設置執行個體存放區磁碟區的格式。
   + 將執行個體存放區磁碟區或 Amazon EFS 檔案系統新增至 `/etc/fstab` 檔案，以便在開機時掛載。
   + 設定 Docker 選項，例如啟用偵錯或調整基礎映像大小。
   + 安裝套件或複製檔案。

   如需詳細資訊，請參閱《*Amazon EC2 使用者指南》中的*[使用 SSH 連線至 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html)。

1. 如果您在執行個體上啟動 Amazon ECS 容器代理程式，您必須在建立 AMI 之前停止它並移除任何持久性資料檢查點檔案。否則，如果您不這樣做，代理程式不會在從您的 AMI 啟動的執行個體上啟動。

   1. 停用 Amazon ECS 容器代理程式。
      + Amazon ECS 最佳化 Amazon Linux 2 AMI：

        ```
        sudo systemctl stop ecs
        ```
      + Amazon ECS 最佳化 Amazon Linux AMI：

        ```
        sudo stop ecs
        ```

   1. 移除持久性資料檢查點檔案。根據預設，這些檔案位於 `/var/lib/ecs/data/`目錄中。如果有的話，請使用下列命令來移除這些檔案。

      ```
      sudo rm -rf /var/lib/ecs/data/*
      ```

1. 從執行中的執行個體建立新的 AMI。如需詳細資訊，請參閱[《Amazon EC2 使用者指南》中的建立 Amazon EBS 支援的 Linux AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html)。 *Amazon EC2 * 

**使用新的 AMI 搭配 AWS Batch**

1. 建立新的 AMI 之後，請使用新的 AMI 建立運算環境。若要這樣做，請在建立 AWS Batch 運算環境時，選擇映像類型，然後在**映像 ID 覆寫方塊中輸入自訂 AMI ID**。如需詳細資訊，請參閱[教學課程：使用 Amazon EC2 資源建立受管運算環境](create-compute-environment-managed-ec2.md)。
**注意**  
您為運算環境選擇的 AMI 必須符合您打算用於該運算環境之執行個體類型的架構。例如，如果您的運算環境使用 A1 執行個體類型，則您所選擇的運算資源 AMI 必須支援 ARM 執行個體。Amazon ECS 同時提供 Amazon ECS 最佳化 Amazon Linux 2 AMI 的 x86 和 ARM 版本。如需詳細資訊，請參閱《[Amazon Elastic Container Service 開發人員指南》中的 Amazon ECS 最佳化 Amazon Linux 2 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html)。 **

1. 建立任務佇列，並與新的運算環境建立關聯。如需詳細資訊，請參閱[建立任務佇列](create-job-queue.md)。
**注意**  
與任務佇列關聯的所有運算環境皆必須共用相同的架構。 AWS Batch 不支援在單一任務佇列中混用運算環境架構類型。

1. (選用) 將範例任務提交到新的任務佇列。如需詳細資訊，請參閱[任務定義範例](example-job-definitions.md)、[建立單一節點任務定義](create-job-definition.md)及[教學課程：提交任務](submit_job.md)。