本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon ECS 设置
本主题介绍如何设置AmazonDeep Learning Containers 使用 Amazon Elastic Container Service。
先决条件
本安装指南假设您已完成以下先决条件:
-
安装并配置最新版本的Amazon CLI. 有关安装或升级 Amazon CLI 的更多信息,请参阅安装 Amazon Command Line Interface。
-
完成中的步骤使用 Amazon ECS 进行设置.
-
以下情况之一是真的:
-
您的用户拥有管理员权限。有关更多信息,请参阅使用 Amazon ECS 进行设置。
-
您的用户拥有创建服务角色的 IAM 权限。有关更多信息,请参阅创建角色以向 Amazon 服务委派权限。
-
拥有管理员权限的用户手动创建了这些 IAM 角色,使之对所用的账户可用。有关更多信息,请参阅 。Amazon ECS 服务计划程序 IAM 角色和Amazon ECS 容器实例 IAM 角色中的Amazon Elastic Container Service 开发人员.
-
-
Amazon CloudWatch 将日志 IAM 策略添加到 Amazon ECS 容器实例 IAM 角色,从而允许 Amazon ECS 将日志发送到 Amazon CloudWatch。有关更多信息,请参阅 。CloudWatch Logs IAM 策略中的Amazon Elastic Container Service 开发人员.
-
生成密钥对。有关更多信息,请参阅Amazon EC2 密钥对.
-
创建一个新的安全组或更新现有安全组,使之对所需的推理打开端口。
-
对于 MXNet 推理,对于 TCP 流量打开端口 80 和 8081。
-
适用于 TensorFlow 推理,对于 TCP 流量打开端口 8501 和 8500。
有关更多信息,请参阅Amazon EC2 安全组.
-
为 Deep Learning Containers 设置 Amazon ECS
本部分介绍如何将 Amazon ECS 设置为使用 Deep Learning Containers。
如果您的账户已创建 Amazon ECS 服务相关角色,则默认情况下会为您的服务使用该角色,除非您在此处指定一个角色。如果任务定义使用awsvpc网络模式或者服务配置为使用以下任何一种方式:服务发现、外部部署控制器、多个目标组或 Elastic Inference 加速器。如果是这种情况,则不应在此处指定一个角色。有关更多信息,请参阅 。对 Amazon ECS 使用服务相关角色中的Amazon ECS 开发人员指南.
从您的主机运行以下操作。
-
在包含您之前创建的 key pair 和安全组的区域中创建 Amazon ECS 集群。
aws ecs create-cluster --cluster-nameecs-ec2-training-inference--regionus-east-1 -
在集群中启动一个或多个 Amazon EC2 实例。有关基于 GPU 的工作,请参阅在 Amazon ECS 上使用 GPU中的Amazon ECS 开发人员指南以通知您的实例类型选择。如果您选择 GPU 实例类型,请确保选择经 Amazon ECS GPU 优化的 AMI。对于基于 CPU 的工作,可以使用 Amazon Linux 或 Amazon Linux 2 ECS 优化的 AMI。有关兼容实例类型和经 Amazon ECS 优化的 AMI ID 的更多信息,请参阅经 Amazon ECS 优化的 AMI. 在本示例中,您将在 us-east-1 中启动一个具有 100 GB 磁盘大小的 AMI 的实例。
-
使用以下内容创建名为
my_script.txt的文件。引用您在上一步中创建的同一集群名称。#!/bin/bash echo ECS_CLUSTER=ecs-ec2-training-inference>> /etc/ecs/ecs.config -
(可选)使用以下内容创建名为
my_mapping.txt的文件,这将在创建实例后更改根卷的大小。[ { "DeviceName": "/dev/xvda", "Ebs": { "VolumeSize": 100 } } ] -
使用经 Amazon ECS 优化的 AMI 启动 Amazon EC2 实例并将其连接到集群。使用您创建的安全组 ID 和 key pair 名称并在以下命令中替换它们。要获取最新的经 Amazon ECS 优化的 AMI ID,请参阅经 Amazon ECS 优化的 AMI中的Amazon Elastic Container Service 开发人员.
aws ec2 run-instances --image-idami-0dfdeb4b6d47a87a2\ --count1\ --instance-typep2.8xlarge\ --key-namekey-pair-1234\ --security-group-idssg-abcd1234\ --iam-instance-profile Name="ecsInstanceRole" \ --user-datafile://my_script.txt\ --block-device-mappingfile://my_mapping.txt\ --regionus-east-1在 Amazon EC2 控制台中,您可以使用
instance-id从响应中显示。
-
现在,您有一个正在运行容器实例的 Amazon ECS 集群。按照以下步骤验证 Amazon EC2 实例是否已注册到集群。
验证 Amazon EC2 实例是否已注册到集群
打开 https://console.aws.amazon.com/ecs/
上的 Amazon ECS 控制台。 -
选择具有注册 Amazon EC2 实例的集群。
-
在 Cluster 页面上,选择 ECS Instances。
-
验证客服已连接值是True(对于 )
instance-id在上一步中创建。此外,请注意控制台上显示的 CPU 可用和内存值因为在随后的教程中会用到这些值。上述值可能需要几分钟才能显示在控制台中。
后续步骤
要了解如何在 Amazon ECS 上使用 Deep Learning Containers 进行训练和推理,请参阅Amazon ECS 教程.