本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon ECS 上的 64 位 ARM 工作负载
Amazon ECS 支持使用 64 位 ARM 应用程序。你可以在搭载 Amazon
Graviton
注意事项
在开始部署使用 64 位 ARM 架构的任务定义之前,请考虑以下事项:
-
应用程序可以使用 Fargate 或 EC2 启动类型。
-
使用 ARM64 架构的 Linux 任务不支持 Fargate Spot 容量提供程序。
-
这些应用程序只能使用 Linux 操作系统。
-
对于 Fargate 类型,应用程序必须使用 Fargate 平台版本
1.4.0
或更高版本。 -
应用程序可以使用Fluent Bit或 CloudWatch 进行监控。
-
对于 Fargate 启动类型,以下内容 Amazon Web Services 区域 不支持 64 位 ARM 工作负载:
-
美国东部(弗吉尼亚州北部),
use1-az3
可用区
-
-
对于 Amazon EC2 启动类型,请参阅以下内容以验证您的区域是否支持要使用的实例类型:
您还可以使用带筛选器的 Amazon EC2
describe-instance-type-offerings
命令来查看您所在区域的实例产品。aws ec2 describe-instance-type-offerings --filters Name=instance-type,Values=
instance-type
--regionregion
以下示例检查美国东部(弗吉尼亚州北部)(us-east-1)区域中的 M6 实例类型可用性。
aws ec2 describe-instance-type-offerings --filters "Name=instance-type,Values=m6*" --region us-east-1
有关更多信息,请参阅 Amazon EC2 命令行参考describe-instance-type-offerings 中的。
在任务定义中指定 ARM 架构
要使用 ARM 架构,请为 cpuArchitecture
任务定义参数指定 ARM64
。
在以下示例中,ARM 架构是在任务定义中指定的。该文件以 JSON 格式。
{
"runtimePlatform": {
"operatingSystemFamily": "LINUX",
"cpuArchitecture": "ARM64"
},
...
}
在以下示例中,ARM 架构的任务定义显示“hello world”。
{ "family": "arm64-testapp", "networkMode": "awsvpc", "containerDefinitions": [ { "name": "arm-container", "image": "arm64v8/busybox", "cpu": 100, "memory": 100, "essential": true, "command": [ "echo hello world" ], "entryPoint": [ "sh", "-c" ] } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512", "runtimePlatform": { "operatingSystemFamily": "LINUX", "cpuArchitecture": "ARM64" }, "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole" }
用于配置 ARM 的接口
您可以使用以下接口之一为 Amazon ECS 任务定义配置 ARM CPU 架构:
-
Amazon ECS 控制台
-
Amazon Command Line Interface (Amazon CLI)
-
Amazon 软件开发工具包
-
Amazon 副驾驶