Amazon ECS 向け GPU コンテナインスタンスの起動 - Amazon Elastic Container Service

Amazon ECS 向け GPU コンテナインスタンスの起動

Amazon ECS で GPU インスタンスを使用するには、起動テンプレートとユーザーデータファイルを作成し、インスタンスを起動する必要があります。

これにより、GPU 用に設定されたタスク定義を使用するタスクを実行できます。

起動テンプレートを使用する

起動テンプレートを作成します。

  • Amazon ECS に最適化された AMI 用の GPU AMI ID を使用する起動テンプレートを作成してください。起動テンプレートの作成方法については、「Amazon EC2 ユーザーガイド」の「Create a new launch template using parameters you define」を参照してください。

    [Amazon マシンイメージ] には、前のステップの AMI ID を使用します。Systems Manager パラメータで AMI ID を指定する方法については、「Amazon EC2 ユーザーガイド」の「Specify a Systems Manager parameter in a launch template」を参照してください。

    起動テンプレートの [ユーザーデータ] に以下を追加します。cluster-name をクラスターの名前に置き換えます。

    #!/bin/bash echo ECS_CLUSTER=cluster-name >> /etc/ecs/ecs.config; echo ECS_ENABLE_GPU_SUPPORT=true >> /etc/ecs/ecs.config

AWS CLI を使用する

AWS CLI を使用して、コンテナインスタンスを起動できます。

  1. userdata.toml というファイルを作成します。このファイルは、インスタンスのユーザーデータに使用されます。cluster-name をクラスターの名前に置き換えます。

    #!/bin/bash echo ECS_CLUSTER=cluster-name >> /etc/ecs/ecs.config; echo ECS_ENABLE_GPU_SUPPORT=true >> /etc/ecs/ecs.config
  2. 次のコマンドを実行して、GPU AMI ID を取得します。これは次のステップで使用します。

    aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended --region us-east-1
  3. 次のコマンドを実行して、GPU インスタンスを起動します。次のパラメータを必ず置き換えてください。

    • subnet を、インスタンスを起動するプライベートまたはパブリックサブネットの ID に置き換えます。

    • gpu_ami を、前のステップの AMI ID に置き換えます。

    • t3.large を、使用するインスタンスタイプに置き換えます。

    • region を、リージョンコードに置き換えます。

    aws ec2 run-instances --key-name ecs-gpu-example \ --subnet-id subnet \ --image-id gpu_ami \ --instance-type t3.large \ --region region \ --tag-specifications 'ResourceType=instance,Tags=[{Key=GPU,Value=example}]' \ --user-data file://userdata.toml \ --iam-instance-profile Name=ecsInstanceRole
  4. 次のコマンドを実行して、コンテナインスタンスがクラスターに登録されていることを検証します。このコマンドを実行するときは、次のパラメータを必ず置き換えてください。

    • cluster を、自分のクラスター名に置き換えます。

    • region を、リージョンコードに置き換えます。

    aws ecs list-container-instances --cluster cluster-name --region region