使用 Amazon ECS 上的 64 位 ARM 工作负载
Amazon ECS 支持使用 64 位 ARM 应用程序。您可以在 Amazon Graviton2
注意事项
在开始部署使用 64 位 ARM 架构的任务定义之前,请考虑以下事项:
-
应用程序可以使用 Fargate 或 EC2 启动类型。
-
这些应用程序只能使用 Linux 操作系统。
-
对于 Fargate 类型,应用程序必须使用 Fargate 平台版本
1.4.0
或更高版本。 -
应用程序可以使用 Fluent Bit 或 CloudWatch 进行监控。
-
对于 Fargate 启动类型,以下Amazon Web Services 区域不支持 64 位 ARM 工作负载:
-
美国东部(弗吉尼亚北部),
use1-az3
可用区 -
亚太地区(海得拉巴)
-
亚太地区(墨尔本)
-
中国(北京)
-
China (Ningxia)
-
欧洲(苏黎世)
-
非洲(开普敦)
-
中东(阿联酋)
-
中东(巴林)
Amazon GovCloud(美国东部)
Amazon GovCloud(美国西部)
-
在亚太地区(大阪)区域,尤其仅限于
apne3-az2
和apne3-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 Copilot