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 を使用して、コンテナインスタンスを起動できます。
-
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 -
次のコマンドを実行して、GPU AMI ID を取得します。これは次のステップで使用します。
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended --region
us-east-1
-
次のコマンドを実行して、GPU インスタンスを起動します。次のパラメータを必ず置き換えてください。
-
subnet
を、インスタンスを起動するプライベートまたはパブリックサブネットの ID に置き換えます。 -
gpu_ami
を、前のステップの AMI ID に置き換えます。 -
t3.large
を、使用するインスタンスタイプに置き換えます。 -
region
を、リージョンコードに置き換えます。
aws ec2 run-instances --key-name ecs-gpu-example \ --subnet-id
subnet
\ --image-idgpu_ami
\ --instance-typet3.large
\ --regionregion
\ --tag-specifications 'ResourceType=instance,Tags=[{Key=GPU,Value=example}]' \ --user-data file://userdata.toml \ --iam-instance-profile Name=ecsInstanceRole -
-
次のコマンドを実行して、コンテナインスタンスがクラスターに登録されていることを検証します。このコマンドを実行するときは、次のパラメータを必ず置き換えてください。
-
cluster
を、自分のクラスター名に置き換えます。 -
region
を、リージョンコードに置き換えます。
aws ecs list-container-instances --cluster
cluster-name
--regionregion
-