亚马逊AWS官方博客

支持 AWS Fargate 的 AWS Graviton2 —让您的无服务器容器的性价比提高多达 40%

AWS Graviton2 处理器由 AWS 使用 64 位 Arm Neoverse 内核定制构建,可为在Amazon Elastic Compute Cloud (Amazon EC2) 中运行的云工作负载提供最佳的性价比。与基于 x86 的可比实例相比,它们可在各种工作负载下最高将性价比提升40%。我们的许多客户、,例如 Intuit、SmugMug、Snap、Formula One 和 Honeycomb.io,都使用基于 Graviton2 的实例来运行其工作负载,以便在 Amazon EC2 中为其工作负载提供更高的性价比,并享受更好的性价比。

许多完全托管式服务,包括Amazon Relational Database Service (Amazon RDS)、Amazon AuroraAmazon ElastiCacheAmazon OpenSearch Service(Amazon Elasticsearch Service的接替物)和Amazon EMR 已使其客户享受到 Graviton2 的益处。最近,我们也使用 AWS Lambda 向无服务器计算客户提供Graviton2 的益处。与在基于 x86 的实例上运行相比,由 AWS Graviton2 提供支持的 AWS Lambda 功能可提供高达 19% 的更佳性能,成本降低 20%。

我很高兴地宣布支持附带Amazon Elastic Container Service (Amazon ECS) 的 AWS Fargate的AWS Graviton2。AWS Fargate 是适用于 AWS 上容器的无服务器计算引擎,有了它,您无需预置、扩展和管理服务器。与用于容器化应用程序的基于英特尔 x86 的 Fargate 相比,由 AWS Graviton2 处理器提供支持的 AWS Fargate 的性价比提高 40%,成本降低 20%。

有了 Graviton2 对 Fargate 的支持,您将获得 Fargate 的无服务器益处、Graviton2 的性价比优势以及使用自己选择的容器计算处理器的灵活性。您可以使用容器注册表(例如Amazon Elastic Container Registry (Amazon ECR))上传图像清单中的多架构图像或包含 ARM64 的图像。当通过 Amazon ECS 进行编排时,Fargate 将在 Graviton2 驱动的计算机上运行这些应用程序。

多架构容器图像由两个主要部分组成:层和清单。每个容器图像都有一层或多层文件系统内容。清单说明组成图像的层组及其运行时特性,即ARM64 X86_64

这样,您就可以拥有支持多种架构的同一存储库,而容器运行时则根据系统架构(包括 ARM64)选择要拉取的图像层。如需了解详情,请访问介绍适用于 Amazon ECR 的多架构容器图像

开始使用由 Graviton2 处理器提供支持的 Fargate
要为 Fargate 启用 Graviton2 支持,您可以选择在 ECS 集群中启用 Arm 兼容性。在 ECS 控制台中,创建新的任务定义时,只需在操作系统/架构下拉列表中选择 Linux/ARM64 即可。

以下是一个任务定义示例,该任务定义包含一个使用 Fargate 启动类型和可选参数 cpuArchitecture ARM64 的简单容器。(默认值为 X86_64)。

{
 "family": "bb-arm64",
 "networkMode": "awsvpc",
 "containerDefinitions": [
    {
        "name": "sleep",
        "image": "arm64v8/busybox",
        "cpu": 100,
        "memory": 100,
        "essential": true,
        "command": [ "echo hello" ],
        "entryPoint": [ "sh", "-c" ]
    }
 ],
 "requiresCompatibilities": [ "FARGATE" ],
 "cpu": "1 vCpu",
 "memory": "3 GB",
 "runtimePlatform": { "cpuArchitecture": "ARM64" },
 "executionRoleArn": "arn:aws:iam::1234567890:role/ecsTaskExecutionRole"
}

使用基于 Graviton 的计算运行任务时,您可以在 ECS 控制台的每个任务详情页面中看到操作系统/架构 Linux/ARM64 值。

使用 AWS 命令行界面 (AWS CLI),您只需找到 ECS 集群中使用的架构。

$ aws ecs describe-tasks \
    --cluster MyCluster \
    --tasks arn:aws:ecs:us-west-2:123456789012:task/MyCluster/1234567890123456789

这是DescribeTasks 响应中 CPU 架构的输出,或者将作为 ListTasks 的筛选条件。

{ 
    "tasks": [
    {
        "family": "...",
        "attributes": [
            {
                "name": "ecs.cpu-architecture",
                "value": "arm64"
            }
        ]
    }]
}

迁移到基于 Graviton2 的 Fargate 容器
使用基于英特尔 x86 的产品,您可以获得与用于容器化应用程序相同的 Fargate 功能。借助Amazon Elastic File System (Amazon EFS) 文件系统的日志记录、监控、跟踪、可扩展短暂存储等,您可以轻松地将应用程序迁移到基于 Graviton2 的 Fargate 容器。您可以通过 Amazon CloudWatch 日志获得立即可用的日志记录,通过 Container InsightsAWS Distro for Open Telemetry 座席获得指标,通过 ServiceLens 启用追踪。

借助 Amazon ECS,您可以使用 Amazon ECS Exec 进行破解或开发人员调试。使用 ECS Exec,您可以直接与容器交互,而无需先与主机容器操作系统进行交互、打开入站端口或管理 SSH 密钥。您可以使用 ECS Exec 在 Amazon EC2 实例或 AWS Fargate 上运行的容器中运行命令或获取外壳程序。 如需了解详情,请参阅 AWS 文档中的使用 Amazon ECS Exec 进行调试

在您的开发团队测试并验证应用程序与 ARM64 兼容之后,除了使用长期支持 Graviton 的 AWS CodeBuild 之外,您现在还可以运行 Jenkins 或 Gitlab 运行器。从测试到构建容器再到在 Fargate 上运行容器,这将为您提供端到端的无服务器体验。

要在 AWS Fargate 上获得有关监控和日志记录、安全性和持续交付的更多支持,请参阅扩展Fargate 功能的 AWS Fargate 合作伙伴列表,例如 Aqua Security、Datadog、New Relic、Splunk 和 Sumo Logic。

现已推出
AWS Fargate 上的 AWS Graviton2 支持适用于可以使用 Fargate 的所有 AWS 区域,巴林、开普敦、中国和 GovCloud 地区除外。Fargate 平台版本 (PV) 1.4.0 或更高版本支持此功能。如果您尚未使用 PV 1.4.0,请参阅 AWS 文档中的 AWS Fargate 平台版本部分以了解如何迁移。

对于基于 ARM 兼容容器的应用程序,您的性价比可以提高多达 40%。您可以通过按需定价享受高达 52% 的折扣来进一步降低成本,以换取 Compute Savings Plans 的一年或三年期承诺。有关更多信息,请参阅 AWS Fargate 定价页面。

试一下,然后请通过 Amazon ECS 的AWS 论坛 上的公有 AWS 容器路线图或通过您平常的 AWS support 联系人向我们发送反馈。

Channy