チュートリアル: コンピューティングリソース AMI を作成する - AWS Batch

チュートリアル: コンピューティングリソース AMI を作成する

コンピューティングリソースのカスタム AMI を独自に作成して、マネージド型およびアンマネージド型のコンピューティング環境で使用できます。手順については、コンピューティングリソースの AMI 仕様を参照してください。カスタム 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を参照してください。

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

    または、別の Amazon Linux 2 バリアントを選択し、次のコマンドを使用して ecs-init パッケージをインストールできます。詳細については、Amazon Elastic Container Service デベロッパーガイドAmazon Linux 2 EC2 インスタンスへの Amazon ECS コンテナエージェントのインストールを参照してください。

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

    たとえば、AWS Batch コンピューティングリソースで GPU ワークロードを実行する場合は、Amazon Linux Deep Learning AMI から開始できます。これで、AWS Batch ジョブを実行できるように AMI を設定できます。詳細については、GPU ワークロードの AMI を使用するを参照してください。

    重要

    ecs-init パッケージをサポートしていない基本 AMI も選択できます。ただし、その場合はブート時に Amazon ECS エージェントを開始して実行を続けるように設定する必要があります。Amazon ECS コンテナエージェントを開始してモニタリングする、systemd を使用したユーザーデータ設定スクリプトの例をいくつか用意しています。詳細については、Amazon Elastic Container Service デベロッパーガイドのコンテナインスタンスのユーザーデータ設定スクリプトの例を参照してください。

  2. AMI の適切なストレージオプションがある、選択された基本 AMI からインスタンスを起動します。アタッチされた Amazon EBS ボリュームまたはインスタンスストレージボリューム (選択したインスタンスタイプでサポートされている場合) のサイズと数を設定できます。詳細については、「Amazon EC2 ユーザーガイド」の「インスタンスの起動」と「Amazon EC2 インスタンスストア」を参照してください。

  3. SSH を使用してインスタンスに接続し、必要に応じて設定タスクを実行します。これには、以下のステップのいずれかまたはすべてが含まれる場合があります。

    • Amazon ECS コンテナエージェントをインストールする 詳細については、Amazon Elastic Container Service デベロッパーガイドAmazon ECS コンテナエージェントのインストールを参照してください。

    • インスタンスストアボリュームをフォーマットするスクリプトを設定する。

    • インスタンスストアボリュームまたは Amazon EFS ファイルシステムを /etc/fstab ファイルに追加し、ブート時にマウントする。

    • Docker オプションを設定する (デバッグの有効化、基本イメージサイズの調整など)。

    • パッケージのインストールやファイルのコピー。

    詳細については、「Amazon EC2 ユーザーガイド」の「SSH クライアントを使用して Linux インスタンスに接続する」を参照してください。

  4. 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
    2. 永続的なデータチェックポイントファイルを削除します。デフォルトでは、このファイルは /var/lib/ecs/data/ ディレクトリにあります。ファイルが存在する場合は、次のコマンドを使用してこれらのファイルを削除します。

      sudo rm -rf /var/lib/ecs/data/*
  5. 実行中のインスタンスから新しい AMI を作成します。詳細については、「Amazon EC2 ユーザーガイド」の「Amazon EBS-backed Linux AMI を作成する」を参照してください。

AWS Batch で新しい AMI を使用するには
  1. 新しい AMI が作成されたら、新規 AMI でコンピューティング環境を作成します。これを行うには、AWS Batch コンピューティング環境を作成する際にイメージタイプを選択し、[イメージ ID のオーバーライド] ボックスにカスタム AMI ID を入力します。詳細については、「チュートリアル: Amazon EC2 リソースを使用して、マネージド型のコンピューティング環境を作成する」を参照してください。

    注記

    コンピューティング環境用に選択する AMI は、そのコンピューティング環境で使用するインスタンスタイプのアーキテクチャと一致している必要があります。たとえば、コンピューティング環境で A1 インスタンスタイプを使用する場合、選択するコンピューティングリソース AMI で Arm インスタンスをサポートしている必要があります。Amazon ECS は、Amazon ECS に最適化された Amazon Linux 2 AMI の、x86 と Arm の両バージョンを提供しています。詳細については、Amazon Elastic Container Service デベロッパーガイドのAmazon ECS に最適化された Amazon Linux 2 AMIを参照してください。

  2. ジョブキューを作成し、新しいコンピューティング環境を関連付けます。詳細については、ジョブキューの作成を参照してください。

    注記

    ジョブキューに関連付けられているすべてのコンピューティング環境で、同じアーキテクチャを共有する必要があります。AWS Batchでは、単一のジョブキューでのコンピューティング環境アーキテクチャタイプの混在をサポートしていません。

  3. (オプション) 新しいジョブキューにサンプルジョブを送信します。詳細については、リファレンス: ジョブ定義の例シングルノードのジョブ定義を作成する 、およびチュートリアル: ジョブを送信するを参照してください。