Amazon Batch上的AmazonFargate - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Batch上的AmazonFargate

AmazonFargate 是可与Amazon Batch运行容器而不必管理 Amazon EC2 实例的服务器或集群。与AmazonFargate,您不必再预置、配置或扩展虚拟机集群即可运行容器。这样一来,您就无需再选择服务器类型、确定扩展集群的时间和优化集群打包。

您在运行使用 Fargate 资源的作业时,需要将应用程序打包到容器中、指定 CPU 和内存要求、定义联网和 IAM 策略并启动应用程序。每个 Fargate 作业都具有自己的隔离边界,不与其他作业共享底层内核、CPU 资源、内存资源或 elastic network interface。

何时使用 Fargate

对于许多客户来说,Fargate 是更好的选择。Fargate 启动并扩展计算,以便与您为容器指定的资源需求紧密匹配。使用 Fargate,无需过度配置和支付额外服务器费用。您无需担心与基础架构相关的参数(如实例类型)的详细信息。当需要扩展计算环境时,在 Fargate 资源上运行的作业可以更快地启动。启动新的 Amazon EC2 实例可能需要几分钟时间,而在 Fargate 上运行的作业可以在大约 30 秒内进行预配置(取决于容器映像大小、作业数量和其他一些因素)。

如果作业需要以下任何一项,Amazon EC2 是正确的选择:

  • 超过 4 个 vCPUs

  • 超过 30 千兆字节 (GiB) 的内存

  • GPU

  • 基于 ARMAmazon引力 CPU

  • 自定义 AMI

  • 其中的任何LinuxParametersparameters

如果您拥有大量作业,Amazon EC2 可能是正确的选择,因为将任务分配到 EC2 资源的速率高于 Fargate 资源,并且可以同时运行更多的作业。有关更多信息,请参阅 。AmazonFargate Service 配额中的Amazon Elastic Container Service 开发指南

Fargate 上的 Job 定义

Amazon Batch作业不支持所有可用的作业定义参数。某些参数完全不受支持,而其他参数对于 Fargate 作业的行为则不同。

下面的列表介绍了 Fargate 作业中无效或受其他限制的作业定义参数。

platformCapabilities

必须指定为FARGATE

"platformCapabilities": [ "FARGATE" ]
type

必须指定为container

"type": "container"
containerProperties 中的参数
executionRoleArn

必须指定在 Fargate 资源上运行的作业。有关更多信息,请参阅 。任务的 IAM 角色中的Amazon Elastic Container Service 开发指南

"executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole"
fargatePlatformConfiguration

(可选,仅适用于 Fargate 作业定义)。指定 Fargate 平台版本,或LATEST查看最新平台版本。可能的值platformVersion1.3.01.4.0, 和LATEST(默认值).

"fargatePlatformConfiguration": { "platformVersion": "1.4.0" }
instanceType
ulimits

不适用于在 Fargate 资源上运行的作业。

memory
vcpus

这些设置必须在resourceRequirements

privileged

要么不指定此参数,要么指定false

"privileged": false
resourceRequirements

必须同时指定内存和 vCPU 要求,使用支持的值。Fargate 资源上运行的作业不支持 GPU 资源。

"resourceRequirements": [ {"type": "MEMORY", "value": "512"}, {"type": "VCPU", "value": "0.25"} ]
linuxParameters 中的参数
devices
maxSwap
sharedMemorySize
swappiness
tmpfs

不适用于在 Fargate 资源上运行的作业。

logConfiguration 中的参数
logDriver

仅支持 awslogsfluentd。有关更多信息,请参阅 使用 awslogs 日志驱动程序

中的成员networkConfiguration
assignPublicIp

如果私有子网没有连接的 NAT 网关来将流量发送到 Internet,assignPublicIp必须为”ENABLED“。有关更多信息,请参阅 Amazon Batch执行 IAM 角色

Fargate 上的 Job 队列

Amazon Batch作业队列基本上保持不变。唯一的限制是,computeEnvironmentOrder必须都是 Fargate 计算环境(FARGATE或者FARGATE_SPOT)。EC2 和 Fargate 计算环境不能混合使用。

Fargate 上的计算环境

Amazon Batch计算环境不支持所有可用的计算环境参数。某些参数完全不受支持,而其他参数对 Fargate 具有特定要求。

下面的列表描述了 Fargate 作业中无效或受其他限制的计算环境参数。

type

此参数必须为MANAGED

"type": "MANAGED"
中的参数computeResources对象
allocationStrategy
bidPercentage
desiredvCpus
imageId
instanceTypes
ec2Configuration
ec2KeyPair
instanceRole
launchTemplate
minvCpus
placementGroup
spotIamFleetRole

这些不适用于 Fargate 计算环境,因此不应提供。

subnets

如果此参数中列出的子网没有连接 NAT 网关,assignPublicIp参数必须设置为ENABLED

tags

这不适用于 Fargate 计算环境,因此不应提供。要为 Fargate 计算环境指定标签,请使用tags参数,该参数不在computeResources对象。

type

必须是 FARGATEFARGATE_SPOT

"type": "FARGATE_SPOT"