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

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

Amazon Batch上AmazonFargate

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

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

什么时候使用 Fargate

我们建议在大多数情况下使用 Fargate。Fargate 启动并扩展计算,以便与您为容器指定的资源要求密切匹配。使用 Fargate,您不需要过度配置或为其他服务器付费。您也无需担心基础设施相关参数的细节,例如实例类型。当计算环境需要扩展时,可以更快地启动在 Fargate 资源上运行的作业。通常需要几分钟的时间来启动新的 Amazon EC2 实例。但是,在 Fargate 上运行的作业可以在大约 30 秒内进行配置。所需的确切时间取决于多个因素,包括容器映像大小和作业数量。

但是,如果您的作业需要以下任一条件,我们建议您使用 Amazon EC2:

  • 超过四个 vCPUs

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

  • GPU

  • 基于 ArmerAmazon引力通 CPU

  • 自定义 Amazon 系统映像 (AMI)

  • 任何一个LinuxParameters参数

如果您有大量作业,我们建议您使用 Amazon EC2 基础设施。这是因为,使用 EC2,可以以更高的速度向 EC2 资源分配作业,而不是向 Fargate 资源分配任务。此外,当您使用 EC2 时,可以同时运行更多作业。有关更多信息,请参阅 。AmazonFargate 服务配额中的Amazon Elastic Container Service 开发者指.

注意

Amazon Batch不支持 Fargate 或 EC2 资源上的 Windows 容器。

Fargate 上的 Job 定义

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

以下列表描述了在 Fargate 作业中无效或其他限制的作业定义参数。

platformCapabilities

必须指定为FARGATE.

"platformCapabilities": [ "FARGATE" ]
type

必须指定为container.

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

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

"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 网关,assignPublicIp必须为”ENABLED“。有关更多信息,请参阅 Amazon Batch执行 IAM 角色

Fargate 上的 Job 队列

Amazon BatchFargate 上的作业队列基本上没有变化。唯一的限制是中列出的计算环境computeEnvironmentOrder必须都是 Fargate 计算环境(FARGATE要么FARGATE_SPOT)。EC2 和 Fargate 计算环境不能混合使用。

Fargate 上的计算环境

Amazon BatchFargate 上的计算环境不支持所有可用的计算环境参数。某些参数完全不受支持。其他人对 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"