Amazon ECS용 GPU 컨테이너 인스턴스 실행
Amazon ECS용 GPU 컨테이너 인스턴스 실행
Amazon EC2의 Amazon ECS에서 GPU 인스턴스를 사용하려면, launch template, 사용자 데이터 파일을 만들고 인스턴스를 실행해야 해요. 그런 다음 GPU용으로 구성된 태스크 정의를 사용하는 태스크를 실행할 수 있어요.
출처: 문서
본문
Launch template 사용
Launch template을 만들 수 있어요.
- AMI로 Amazon ECS-optimized GPU AMI ID를 사용하는 launch template을 만드세요. launch template을 만드는 방법은 Amazon EC2 User Guide의
Create a new launch template using parameters you define를 참고하세요. - 이전 단계의 AMI ID를 Amazon Machine Image로 사용하세요. Systems Manager 파라미터로 AMI ID를 지정하는 방법은 Amazon EC2 User Guide의
Specify a Systems Manager parameter in a launch template를 참고하세요. - launch template의 사용자 데이터(User data)에 다음을 추가하세요.
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-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
- 다음 명령을 실행해 컨테이너 인스턴스가 클러스터에 등록됐는지 확인하세요. 이 명령을 실행할 때 다음 파라미터를 바꾸는 것을 잊지 마세요:
cluster-name을 클러스터 이름으로 바꾸세요.region을 리전 코드로 바꾸세요.
aws ecs list-container-instances --cluster cluster-name --region region