为 Amazon ECS 托管实例创建容量提供程序
Amazon ECS 托管实例使用容量提供程序来管理工作负载的计算容量。默认情况下,Amazon ECS 会提供一个默认容量提供程序,其自动选择成本最优化的通用实例类型。但是,您可以创建自定义容量提供程序来指定实例属性(例如,实例类型、CPU 制造商、加速器类型和其他要求)。
自定义容量提供程序使用基于属性的实例类型选择,允许您将实例要求表示为一组属性。这些要求会自动转换为所有匹配的 Amazon EC2 实例类型,从而简化实例类型配置的创建和维护。要了解有关实例要求和基于属性的选择的更多信息,请参阅《Amazon EC2 用户指南》中的 Amazon EC2 Fleet 基于属性的实例类型选择文档。
先决条件
开始之前,请确保您已完成以下操作:
-
确定使用哪种类型的监控。有关更多信息,请参阅 Amazon ECS 托管实例的详细监控。
-
拥有一个现有集群或计划创建一个集群。有关更多信息,请参阅 为 Amazon ECS 托管实例创建集群。
-
您拥有 Amazon ECS 托管实例所需的 IAM 角色。这包括:
-
基础设施角色 - 允许 Amazon ECS 代表您调用 AWS 服务来管理 Amazon ECS 托管实例基础设施。
有关更多信息,请参阅 Amazon ECS 基础设施 IAM 角色。
-
实例配置文件 - 为在托管实例上运行的 Amazon ECS 容器代理和 Docker 进程守护程序提供权限。
有关更多信息,请参阅 Amazon ECS 托管实例实例配置文件。
-
了解如何选择实例。有关更多信息,请参阅 Amazon ECS 托管实例的实例选择最佳实践。
控制台过程
为 Amazon ECS 托管实例创建容量提供程序(Amazon ECS 控制台)
在 https://console.aws.amazon.com/ecs/v2
打开控制台。 -
从导航栏中,选择要使用的区域。
-
在导航窗格中,选择集群。
-
在集群页面上,选择您的集群名称。
-
在集群页面上,选择基础设施选项卡。
-
在容量提供程序部分中,选择创建容量提供程序。
-
在容量提供程序配置下,配置以下各项:
-
对于容量提供程序名称,输入您的容量提供程序的唯一名称。
-
对于容量提供程序类型,选择 Amazon ECS 托管实例。
-
-
在实例配置下,配置以下各项:
-
对于实例配置文件,选择为 Amazon ECS 托管实例创建的实例配置文件角色。
-
对于基础设施角色,选择为 Amazon ECS 托管实例创建的基础设施角色。
-
-
在实例要求下,为您的实例指定属性。您可以配置以下各项的任意组合:
-
vCPU 计数 - 指定 vCPU 的数量(例如,
4或8-16表示范围)。 -
内存 (MiB) - 以 MiB 为单位指定内存量(例如,
8192或16384-32768表示范围)。 -
实例类型 - 指定特定实例类型(例如
m5.large,m5.xlarge,c5.large)。 -
CPU 制造商 - 从
intel、amd或amazon-web-services中选择。 -
加速器类型 - 指定加速器类型,例如
gpu、fpga或inference。 -
加速器计数 - 指定加速器的数量(例如,
1或2-4表示范围)。
-
-
在高级配置下,选择以下监视选项之一:
-
要让 CloudWatch 发送状态检查指标,请选择基本。
-
要让 CloudWatch 发送所有指标,请选择详细。
-
-
(可选)为了帮助识别您的容量提供程序,请展开标签,然后配置您的标签。
要将标签从容量提供程序传播到托管资源(例如从容量提供程序启动的实例),对于传播以下来源的标签,请选择容量提供程序。
[添加标签] 选择 Add tag(添加标签),然后执行以下操作:
-
对于 Key(键),输入键名称。
-
对于值,输入键值。
-
-
选择创建。
AWS CLI 过程
您可以使用 AWS CLI 为 Amazon ECS 托管实例创建容量提供程序。使用最新版本的 AWS CLI。有关如何升级到最新版本的更多信息,请参阅 Installing or updating to the latest version of the AWS CLI。
为 Amazon ECS 托管实例创建容量提供程序 (AWS CLI)
-
运行以下命令:
aws ecs create-capacity-provider --cli-input-json file://capacity-provider-definition.json以下
capacity-provider-definition.json可用于指定基本实例要求、实例存储大小并启用标签传播:{ "name": "my-managed-instances-provider", "cluster": "my-cluster", "tags": [ { "key": "version", "value": "test" } ], "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole", "instanceRequirements": { "vCpuCount": { "min": 4, "max": 8 }, "memoryMiB": { "min": 8192, "max": 16384 } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] }, "storageConfiguration": { "storageSizeGiB": 100 }, "monitoring": "basic" }, "propagateTags": "CAPACITY_PROVIDER" } } -
验证是否已成功创建容量提供程序:
aws ecs describe-capacity-providers \ --capacity-providersmy-managed-instances-provider
后续步骤
创建容量提供程序后,您可以在创建服务或运行任务时使用该容量提供程序:
-
要将容量提供程序与服务一起使用,请参阅创建 Amazon ECS 滚动更新部署。
-
要将容量提供程序与独立任务一起使用,请参阅将应用程序作为 Amazon ECS 任务运行。