麦斯科技 · 2021年11月28日

支持AWS Fargate的AWS Graviton2–为您的无服务器容器提供优化达40%的性价比

https://aws.amazon.com/blogs/aws/announcing-aws-graviton2-support-for-aws-fargate-get-up-to-40-better-price-performance-for-your-serverless-containers/

作者:Channy Yun 2021年11月23日

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

包括亚马逊关系数据库服务(Amazon RDS)、Amazon Aurora、Amazon ElastiCache、Amazon OpenSearch服务(Amazon Elasticsearch服务的继承者)和Amazon EMR在内的许多全管理服务已将Graviron2的优势扩展到了客户身上。最近,我们还使用AWS Lambda将Graviton2的优势扩展到了我们的无服务器计算客户。与在基于x86的实例上运行AWS Lambda函数相比,由AWS Graviton2支持的AWS Lambda函数提供了优化达19%的性能和低20%的成本。

今天,我很高兴地宣布AWS Graviton2通过亚马逊弹性容器服务(Amazon ECS)支持AWS Fargate。AWS Fargate是AWS上容器的无服务器计算引擎,无需配置、扩展和管理服务器。与基于Intel x86的Fargate相比,AWS Graviton 2处理器支持的AWS Fargate在容器化应用程序中提供了高达40%的性价比和低20%的成本。

通过对Fargate的Graviton2支持,您可以获得Fargate的无服务器优势、Graviton2的性价比优势以及使用您选择的容器计算处理器的灵活性。您可以使用容器注册表(如Amazon Elastic container registry(Amazon ECR))上载多体系结构映像或映像清单中包含ARM64的映像。当通过Amazon ECS进行协调时,Fargate将在Gravion2驱动的计算机上运行这些应用程序。

多体系结构容器映像由两个主要部分组成:layers和manifest。每个容器映像都有一个或多个文件系统layers。manifest指定组成映像的layers组及其运行时特征,即ARM64和X86_64。

2021-multi-architecture-aws-fargate.png

这允许您拥有支持多个体系结构的同一存储库,容器运行时根据系统体系结构(包括ARM64)选择要拉取的image layers。要了解更多信息,请访问介绍Amazon ECR的多体系结构容器映像。https://aws.amazon.com/blogs/containers/introducing-multi-architecture-container-images-for-amazon-ecr/

由Graviton2处理器驱动的Fargate入门

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

2021-fargate-arm64-task-definitions.png

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

JSON


{
 "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"
}

JSON

当您使用基于Graviton的计算运行任务时,您可以在ECS控制台的每个任务详细信息页面中看到Linux/ARM64 for Operating system/Architecture的值。

2021-fargate-arm64-clusters.png

2021-fargate-arm64-tasks.png

使用AWS命令行界面(AWS CLI),您只需查找ECS集群中使用的体系结构。https://aws.amazon.com/cli

Bash


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

以下是描述任务响应中的CPU体系结构输出,或将其作为ListTasks的过滤器。

JSON


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

迁移到基于Gaviton2的Fargate容器

使用基于Intel x86的产品,您可以获得与容器化应用程序相同的Fargate功能。通过Amazon弹性文件系统(Amazon EFS)文件系统的日志记录、监视、跟踪、可扩展临时存储等功能,您可以轻松地将应用程序迁移到基于Graviton2的Fargate容器。您可以通过Amazon CloudWatch日志进行开箱即用的日志记录,并通过Container Insights和AWS Distro for Open Telemetry agent通过ServiceLens实现跟踪。

有了Amazon ECS,您可以使用Amazon ECS Exec进行break-glass或开发人员调试场景。使用ECS Exec,您可以直接与容器交互,而无需首先与主机容器操作系统交互、打开入站端口或管理SSH密钥。您可以使用ECS Exec在Amazon EC2实例或AWS Fargate上运行的容器中运行命令,或向容器获取shell。要了解更多信息,请参阅AWS文档中的使用Amazon ECS Exec进行调试。https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html

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

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

现在可用

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

对于与Arm兼容的基于容器的应用程序,您可以获得高达40%的性价比。您可以通过按需定价获得高达52%的折扣,以换取一年或三年的计算储蓄计划承诺,从而进一步降低成本。有关更多信息,请参阅AWS Fargate定价页面。

试一试,请在亚马逊ECS的AWS论坛上向我们发送关于公共AWS容器路线图的反馈,或者通过您通常的AWS支持联系人发送反馈。

关于作者

channyun_400x400.jpg

Channy Yun是AWS的主要开发倡导者,热衷于帮助开发人员在最新的AWS服务上构建现代应用程序。作为一名务实的开发者和博客写手,他热爱社区驱动的技术学习和共享,这使得开发者成为全球AWS用户群的一员。他的主要主题是开源、容器、存储、网络与安全以及物联网。在推特@channyun上关注他。

推荐阅读
关注数
5845
内容数
525
定期发布Arm相关软件信息,微信公众号 ArmSWDevs,欢迎关注~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息