

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

# チュートリアル: コンピューティングリソース 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 エンジニア AWS Batch によって事前設定され、 でテストされています。これは最小限の AMI であり、 の使用を開始して、 で実行されているコンピューティングリソース AWS をすばやく取得できます。詳細については、*Amazon Elastic Container Service デベロッパーガイド*の[Amazon ECS に最適化された 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)から開始できます。次に、 AWS Batch ジョブを実行するように AMI を設定します。詳細については、「[GPU ワークロードの AMI を使用する](batch-gpu-ami.md)」を参照してください。
**重要**  
`ecs-init` パッケージをサポートしていない基本 AMI も選択できます。ただし、その場合はブート時に Amazon ECS エージェントを開始して実行を続けるように設定する必要があります。Amazon ECS コンテナエージェントを開始してモニタリングする、`systemd` を使用したユーザーデータ設定スクリプトの例をいくつか用意しています。詳細については、*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 インスタンスストア](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html)」を参照してください。

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-backed Linux AMI を作成する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html)」を参照してください。

**で新しい 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)を参照してください。