针对 Deep Learning Containers 设置 Amazon ECS - AWS 深度学习容器
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

针对 Deep Learning Containers 设置 Amazon ECS

本部分介绍如何设置 Amazon ECS 以便使用 Deep Learning Containers。

重要

如果您的账户已创建 Amazon ECS 服务相关角色,则默认情况下会为您的服务使用该角色,除非您在此处指定一个角色。如果您的任务定义使用 awsvpc 网络模式,或者将服务配置为使用以下任何功能,则需要服务相关角色:服务发现、外部部署控制器、多个目标组或 Elastic Inference 加速器。如果是这种情况,则不应在此指定角色。有关更多信息,请参阅 Amazon ECS 开发人员指南 中的为 Amazon ECS 使用服务相关角色

从您的主机运行以下操作。

  1. 在包含您之前创建的密钥对和安全组的区域中创建 Amazon ECS 集群。

    aws ecs create-cluster --cluster-name ecs-ec2-training-inference --region us-east-1
  2. 在集群中启动一个或多个 Amazon EC2 实例。有关基于 GPU 的工作,请参阅Amazon ECS 开发人员指南 中的在 Amazon ECS 上使用 GPU,以指导您选择实例类型。选择实例类型后,再选择适合您的使用案例的经 ECS 优化的 AMI。对于基于 CPU 的工作,您可以使用经 Amazon Linux 或 Amazon Linux 2 ECS 优化的 AMI。对于基于 GPU 的工作,必须使用 ECS GPU 优化的 AMI 和 p2/p3 实例类型。您可以在 经 Amazon ECS 优化的 AMI 中找到 Amazon ECS-optimized AMI ID。在本示例中,您将在 us-east-1 中启动一个具有基于 GPU 的 AMI 以及 100 GB 磁盘大小的实例。

    1. 使用以下内容创建名为 my_script.txt 的文件。引用您在上一步中创建的同一集群名称。

      #!/bin/bash echo ECS_CLUSTER=ecs-ec2-training-inference >> /etc/ecs/ecs.config
    2. (可选)使用以下内容创建名为 my_mapping.txt 的文件,这将在创建实例后更改根卷的大小。

      [ { "DeviceName": "/dev/xvda", "Ebs": { "VolumeSize": 100 } } ]
    3. 使用Amazon ECS-optimized AMI 启动 Amazon EC2 实例并将其附加到集群。使用安全组 ID 和您创建的密钥对名称并在以下命令中替换它们。要获取最新的 Amazon ECS-optimized AMI ID,请参阅 Amazon Elastic Container Service Developer Guide 中的 Amazon ECS 优化的 AMI

      aws ec2 run-instances --image-id ami-0dfdeb4b6d47a87a2 \ --count 1 \ --instance-type p2.8xlarge \ --key-name key-pair-1234 \ --security-group-ids sg-abcd1234 \ --iam-instance-profile Name="ecsInstanceRole" \ --user-data file://my_script.txt \ --block-device-mapping file://my_mapping.txt \ --region us-east-1

      在 Amazon EC2 控制台中,您可以根据响应中的 instance-id 验证此步骤是否成功。

现在,您有一个正在运行容器实例的 Amazon ECS 集群。使用以下步骤验证 Amazon EC2 实例已注册到集群。

验证 Amazon EC2 实例是否已注册到集群

  1. https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。

  2. 选择带有注册了 Amazon EC2 实例的集群。

  3. Cluster (集群) 页面上,选择 ECS Instances (ECS 实例)

  4. 验证对于在上一步骤中创建的 instance-idAgent Connected (代理已连接) 值是否为 True (真)。此外,记下控制台上显示的可用 CPU 和内存值,因为在随后的教程中会用到这些值。上述值可能需要几分钟才能显示在控制台中。

后续步骤

要了解有关在 Amazon ECS 上使用 Deep Learning Containers 进行训练和推论,请参阅Amazon ECS 教程