Amazon ECS 启动类型
任务定义启动类型定义了任务可以运行的容量,例如 Amazon Fargate。
选择启动类型后,Amazon ECS 会验证您配置的任务定义参数是否适用于启动类型。
Fargate
Fargate 是一款无服务器、按实际使用量付费的计算引擎,让您无需管理服务器即可专注于构建应用程序。选择 Fargate 时,您无需管理 EC2 基础设施。您只需构建容器映像,并定义要在哪个集群上运行应用程序。Fargate 与以下 Amazon 服务进行本机集成,包括:
-
Amazon VPC
-
Auto Scaling
-
Elastic Load Balancing
-
IAM
-
Secrets Manager
与 EC2 相比,您对 Fargate 拥有更多控制权,因为您可以选择应用程序所需的确切 CPU 和内存。Fargate 可以横向扩展容量,因此您无需担心流量激增。这意味着 Fargate 的运营工作量更少。
Fargate 符合合规计划的标准,包括 PCI、FIPS 140-2、FedRAMP 和 HIPAA。有关更多信息,请参阅合规性计划范围内的 Amazon 服务
Fargate 适用于以下工作负载:
-
需要低运营开销的大型工作负载
-
偶尔会突增的小型工作负载
-
小工作负载
-
批处理工作负载
有关支持 Fargate 的区域的信息,请参阅 Amazon ECS 在 Amazon Fargate 上的支持区域。
下图演示了一般架构。
有关 Fargate 上的Amazon ECS 更多信息,请参阅 适用于 Amazon ECS 的 Amazon Fargate。
EC2
EC2 启动类型适用于必须进行价格优化的大型工作负载。
当考虑如何使用 EC2 启动类型对任务定义和服务建模时,我们建议您考虑哪些流程必须一起运行以及您将如何扩展每个组件。
例如,假设某个应用程序包含以下组件:
-
一项在网页上显示信息的前端服务
-
一项为前端服务提供 API 的后端服务
-
数据存储
对于此示例,创建将用于共同目的的容器分组的任务定义。将不同的组件分离为多个单独的任务定义。以下示例集群具有运行三个前端服务容器、两个后端服务容器和一个数据存储服务容器的三个容器实例。
您可以对任务定义中的相关容器(例如,必须一起运行的已链接的容器)进行分组。例如,将日志流容器添加到前端服务,并将其包含在同一任务定义中。
在拥有任务定义后,您可以从这些任务定义创建服务以保持所需任务的可用性。有关更多信息,请参阅 使用控制台创建 Amazon ECS 服务。在您的服务中,您可以将容器与 Elastic Load Balancing 负载平衡器关联。有关更多信息,请参阅 使用负载均衡分配 Amazon ECS 服务流量。当您的应用程序要求发生更改时,您可以更新服务以增大或减小所需任务数。或者,您可以更新服务以在任务中部署较新版本的容器。有关更多信息,请参阅 使用控制台更新 Amazon ECS 服务。
外部
外部启动类型用于在您注册到 Amazon ECS 群集并远程管理的内部部署服务器或虚拟机 (VM) 上运行容器化应用程序。有关更多信息,请参阅 外部启动类型的 Amazon ECS 集群。