借助 Amazon Elastic Container Service (Amazon ECS),您可以轻松运行、扩展和保护 AWS 上的 Docker 容器应用程序。本地打包为容器的应用程序的部署和运行方式与 Amazon ECS 管理的容器相同。使用 Amazon ECS 后,您不再需要安装、操作和扩展您自己的容器编排和集群管理基础设施,并让您可以专注于您的容器化应用程序的资源需求和可用性要求。

借助 Amazon ECS,您可以从一个容器扩展到覆盖数百个实例的数千个容器,而运行应用程序的方式并不会因此而变得复杂。您可以运行包括应用程序、批量作业和微服务在内的任何东西。Amazon ECS 将基础设施的一切复杂因素全部消除,让您能够集中精力设计、开发、运行容器化应用程序。

通过 Amazon ECS,您可以使用 AWS Fargate 来全面管理您的基础设施并仅专注于部署容器,或者您可以选择创建和终止 Docker 容器来查看详细的集群状态信息,从而获取对底层服务器集群的全面可见性和控制。您可以集成并使用自己的容器计划程序或将 Amazon ECS 接入您现有的软件交付过程,例如持续集成和交付系统。

AWS Fargate 支持

Amazon ECS 提供 AWS Fargate 技术。使用 AWS Fargate,您无需再选择 Amazon EC2 实例类型、预置和扩展集群,或者修补和更新每个服务器。您无需再担心任务置放策略,例如装箱或主机传播,任务会在各个可用区之间自动进行平衡。Fargate 会为您管理容器的可用性。您只需定义应用程序的要求,并选择 Fargate 作为控制台或 CLI 中的启动类型,而 Fargate 会负责运行容器所需的所有扩展和基础设施管理。

对于要求对基础设施进行更精细的服务器级别控制的开发人员而言,Amazon ECS EC2 启动类型可允许您管理服务器集群,并安排服务器上的容器置放。

开发

Docker 支持

Amazon ECS 支持 Docker 并使您能够运行和管理 Docker 容器。您本地打包为容器的应用程序将在 Amazon ECS 上部署和运行,无需进行任何配置更改。

Windows 容器兼容性

Amazon ECS 支持管理 Windows 容器。针对 Amazon ECS 进行优化的 Windows Amazon 系统映像 (AMI) 可提供增强的实例和容器启动时性能,以及对 CPU、内存使用率和预留指标的可见性。

本地开发

Amazon ECS CLI 支持您简化本地开发体验,并在 Amazon ECS 上轻松设置和运行容器。Amazon ECS CLI 支持 Docker Compose,后者是一款可用于定义和运行多容器应用程序的开源工具。您可以在开发计算机上以及生产过程中应用用于定义多容器应用程序的同一个 Compose 定义。Amazon ECS CLI 是开放资源。下载 Amazon ECS CLI

存储库支持

Amazon ECS 可用于任何第三方托管的 Docker 映像存储库或可访问的私有 Docker 注册表,如 Docker Hub 和 Amazon Elastic Container Registry (Amazon ECR)。您只需在任务定义中指定存储库,然后 Amazon ECS 将为应用程序检索适当的映像。

管理

任务定义

Amazon ECS 使您可以通过名为“任务定义”的声明性 JSON 模板来定义任务。在任务定义中,您可以指定您的任务需要的一个或多个容器,包括 Docker 存储库和映像、内存和 CPU 要求、共享数据卷以及容器互相链接的方式。您可以从您在该服务中注册的单个任务定义文件中启动任意数量的任务。任务定义文件还可以让您对应用程序规格进行版本控制。

编程控制

Amazon ECS 为您提供了一组简单的 API 操作,使您能够集成和扩展服务。使用 API 操作,您可以创建和删除集群、注册和注销任务、启动和终止 Docker 容器,并提供集群状态及其实例的相关详细信息。您还可以使用 AWS CloudFormation 预置 Amazon ECS 集群、注册任务定义和安排容器。

容器部署

Amazon ECS 让您可以轻松将容器更新到新的版本。您可以上传新版本的应用程序任务定义,Amazon ECS 计划程序将自动使用更新后的映像启动新的容器并停止运行着旧版本的容器。Amazon ECS 会自动从关联的应用程序负载均衡器注册和注销您的容器。

容器自动恢复

Amazon ECS 将自动恢复运行状况不佳的容器,以确保您拥有支持应用程序所需数量的容器。

计划

Amazon ECS 包括多项计划策略,这些策略可根据您的资源需求(如 CPU 或 RAM)和可用性要求将容器放入各个集群。借助可用的计划策略,您可以安排批处理任务、长时间运行的应用程序和服务,以及守护进程。

任务计划
借助 Amazon ECS 任务计划,您可以运行执行工作而后停止的进程,如批处理任务。任务计划可以手动启动任务,从任务队列自动启动任务,或者基于您定义的时间间隔启动任务。

服务计划
借助 Amazon ECS 服务计划,您可以运行无状态服务和应用程序。此计划策略可确保指定数量的任务持续运行,并在失败后重新启动。您可以确保任务是在 Elastic Load Balancing 负载均衡器上注册的,并且能够执行您为正在运行的任务定义的运行状况检查。

守护计划
Amazon ECS 守护计划会在 ECS 集群中选定的每个实例上自动运行相同的任务。这样一来,您便可轻松运行为诸如日志记录、监控或备份之类的服务提供常见管理功能的任务。

任务置放

Amazon ECS 允许您自定义如何根据内置属性(如实例类型、可用区或者您定义的自定义属性)将任务放置到 EC2 实例的集群上。您可以使用“environment=production”等属性来为资源添加标记,使用 API 操作列表来查找这些资源,并使用 RunTask 和 CreateService API 操作来安排针对这些资源的任务。

通过 Amazon ECS,您还可以使用 bin pack 和 spread 等置放策略来进一步定义放置任务的位置。可将策略链接在一起以实现复杂的置放功能,而无需编写任何代码。

任务置放策略无法与 AWS Fargate 启动类型配合使用。

网络和安全性

任务联网

Amazon Elastic Container Service 支持 Docker 联网,并通过与 Amazon VPC 集成为容器提供隔离。这使您能够控制容器与其他服务和外部流量的连接。借助 Amazon ECS,您可以在容器的四种联网模式之间进行选择以满足不同的使用案例:

任务联网/awsvpc
此模式为每个正在运行的 ECS 任务分配一个专用弹性网络接口,可允许容器在 VPC 中具有完整的联网功能,如同 EC2 实例一样。


此模式会创建一个可连接本地虚拟网络中的主机上运行的所有容器的 Linux 桥,可通过主机的默认网络连接访问此 Linux 桥。

主机
此模式直接将容器添加到主机的网络堆栈,在无隔离的主机网络中公开容器。


此模式下,容器无法进行外部联网。

负载均衡

Amazon ECS 与 Elastic Load Balancing 集成,允许您使用应用程序负载均衡器或网络负载均衡器在多个容器之间分配流量。您只需指定要使用的任务定义和负载均衡器,Amazon ECS 会自动的从负载均衡器中添加和删除容器。您可以在任务定义中指定动态端口,这可为安排在 Amazon EC2 实例上的容器提供未使用的端口。您还可以使用基于路径的路由与多个服务共享一个负载均衡器。

服务发现

Amazon ECS 提供服务发现功能,让您的容器化服务可以轻松发现并连接彼此。

Amazon ECS 使用 Route53 Auto Naming API 创建并管理一个服务名称注册表,以便您可以在代码中按名称引用服务,并编写 DNS 查询,以在运行时将服务名称解析到服务终端节点。

您可以在服务的任务定义中指定运行状况检查条件,Amazon ECS 将确保仅通过服务查找返回运行正常的服务终端节点。

安全性

Amazon ECS 能让您为每个 ECS 任务指定一个 IAM 角色。如此一来,Amazon ECS 容器实例将获得遵循“最低权限”访问策略的最小角色,允许您分别管理实例角色和任务角色。您也可以使用 Amazon CloudWatch 日志来获取对任务所分配到的 IAM 角色的可见性。

监控和日志记录

监控

Amazon ECS 通过 Amazon CloudWatch 为您的容器和集群提供监控功能。您可以监控正在运行的任务的 CPU 和内存使用率的平均值及总和,这些任务按任务定义、服务或集群进行分组。您还可以设置 CloudWatch 警报,在您的容器或集群需要扩大或缩小规模时提醒您。

日志记录

AWS ECS 使您可以通过 AWS CloudTrail 记录所有的 Amazon ECS API 调用并将日志文件发送给您。记录的信息包括 API 调用者的身份、API 调用的时间、API 调用者的源 IP 地址、请求参数以及 Amazon ECS 返回的响应元素。CloudTrail 为您提供从 AWS 管理控制台、AWS 开发工具包以及 AWS CLI 进行的 API 调用的历史记录。它支持安全分析、资源更改跟踪以及合规性审核。

了解 Amazon ECS 定价

访问定价页面
准备好开始使用了吗?
注册
还有更多问题?
联系我们