跳至主要内容

Amazon Elastic Container Service 文档

使用 Amazon Elastic Container Service(Amazon ECS),您可以在 AWS 上部署容器化工作负载。Amazon ECS 使您能够从单个 Docker 容器扩展到管理企业的应用程序组合。在可用区中、云中和本地运行和扩展容器工作负载,无需管理控制面板或节点。

Amazon ECS 的主要功能

使用 AWS Fargate 时默认为无服务器:AWS Fargate 内置在 Amazon ECS 中,可帮助您管理服务器、处理容量规划和隔离容器工作负载。只需定义应用程序的要求,选择 Fargate 作为控制台或命令行界面(CLI)中的启动类型,而 Fargate 将帮助您负责扩展和基础设施管理。

Amazon ECS Anywhere:使用 ECS Anywhere,您可以使用 Amazon ECS 控制台和运算符工具来管理本地容器工作负载,以便在您的众多基于容器的应用程序中提供一致的体验。AWS Systems Manager(SSM)集成旨在于在您的本地硬件与 AWS 控制面板之间建立信任。

通过设计实现安全性和隔离:Amazon ECS 旨在以原生方式与您已经信任的安全性、身份、管理和监管工具集成,从而帮助您快速、成功地部署到生产中。您可以为每个容器分配精细权限,从而在构建应用程序时实现高度隔离。
 
自动化的控制面板操作:Amazon ECS 是一项完全托管的容器编排服务,并内置了 AWS 配置和操作最佳实践,而且您不必管理任何控制面板、节点或附加组件。它构建用于以原生方式与 AWS 和第三方工具集成,从而使团队能够专注于构建应用程序而非环境。

Amazon ECS 的其他功能

开发

  • Docker 支持:Amazon ECS 支持 Docker,以使您能够运行和管理 Docker 容器。它甚至能够集成到 Docker Compose CLI 中,以使您能够定义并运行多容器应用程序。您在本地打包为容器的应用程序将在 Amazon ECS 上部署和运行,无需进行配置更改。
  • Windows 容器兼容性:Amazon ECS 支持 Windows 容器的管理。针对 Amazon ECS 进行优化的 Windows 亚马逊机器映像(AMI)旨在提供增强的实例和容器启动时性能,以及对 CPU、内存使用率和预留指标的可见性。
  • AWS Copilot:AWS Copilot CLI 是一款专为开发人员设计的工具,用于在 Amazon ECS 和 AWS Fargate 上构建、发布和运行生产就绪型容器化应用程序。Copilot 采用从基础设施到持续交付的最佳实践构建,这些最佳实践会从其命令行提供给客户。您还可以通过查看服务的状态或日志、纵向扩展或缩减生产服务来监控服务的运行状况,并启动一个用于自动化测试的新环境。下载 AWS Copilot。
  • 存储库支持:将 Amazon ECS 与第三方托管的 Docker 映像存储库或可访问的私有 Docker 注册表 [如 Docker Hub 和 Amazon Elastic Container Registry(Amazon ECR)] 结合使用。您需要在您的任务定义中指定存储库,而 Amazon ECS 旨在为应用程序检索相应的映像。

管理

  • 任务定义:Amazon ECS 使您可以通过名为“任务定义”的 JavaScript 对象表示法(JSON)模板来定义任务。在任务定义中,您可以指定您的任务需要的一个或多个容器,包括 Docker 存储库和映像、内存和 CPU 要求、共享数据卷以及容器互相链接的方式。您可以从您在该服务中注册的单个任务定义文件中启动任务。任务定义文件还可以让您对应用程序规格进行版本控制。
  • 编程控制:Amazon ECS 为您提供了一组 API 操作,使您能够集成和扩展服务。使用 API 操作,您可以创建和删除集群、注册和注销任务、启动和终止 Docker 容器,并提供集群状态及其实例的相关信息。您还可以使用 AWS CloudFormation 预置 Amazon ECS 集群、注册任务定义和调度容器。
  • 容器部署:Amazon ECS 让您可以轻松将容器更新到新的版本。您可以上传新版本的应用程序任务定义,Amazon ECS 调度器将使用更新后的映像启动新的容器并停止运行旧版本的容器。Amazon ECS 会从关联的应用程序负载均衡器注册和注销您的容器。
  • 蓝绿部署:使用 AWS CodeDeploy 进行蓝绿部署可帮助您在应用程序更新期间最大限度地缩短停机时间。您可以启动新版本的 Amazon ECS 服务以及旧版本,并且在重新路由流量之前测试新版本。您还可以监控部署流程并且在存在问题的情况下回滚。
  • 容器自动恢复:Amazon ECS 设计为可恢复运行状况不佳的容器,以使您拥有支持应用程序所需数量的容器。
  • 容量提供程序:借助容量提供程序,您可以就容器化工作负载如何在不同类型的计算容量上运行定义规则,并管理容量的扩展。容量提供程序可与 Amazon Elastic Compute Cloud(Amazon EC2)和 AWS Fargate 配合使用。当运行任务和服务时,您可以将它们拆分到多个容量提供程序中,以支持新的功能,例如在 Fargate 和 Fargate Spot 中按预定义的拆分百分比运行服务。
  • 存储:Amazon Elastic File System(Amazon EFS)是一种可扩展的托管式弹性文件系统,让您能够构建应用程序,并从您的 Amazon ECS 和 AWS Fargate 部署中保留和共享数据和状态。您可以专注于您的应用程序,而不是基础设施。了解有关持久性文件存储的更多信息。

计划和任务置放

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

  • 任务调度:借助 Amazon ECS 任务调度,您可以运行执行工作而后停止的进程,如批处理任务。任务调度可从任务队列启动任务,或者基于您定义的时间间隔启动任务。
  • 服务调度:Amazon ECS 服务调度功能使您能够运行无状态的服务和应用程序,从而使指定数量的任务始终处于运行状态,并在出现故障时自动重启任务。客户可以在 Elastic Load Balancing 负载均衡器上注册任务,并且能够执行用户为正在运行的任务定义的运行状况检查。
  • 进程守护程序调度:Amazon ECS 进程守护程序调度会在 ECS 集群中选定的每个实例上运行相同的任务。该服务旨在让您能够运行为日志记录、监控或备份等服务提供常见管理功能的任务。
  • 任务置放:Amazon ECS 允许用户自定义根据内置属性(例如实例类型、可用区或者用户定义的自定义属性)将任务置放到 Amazon EC2 实例的集群上的方式。使用“environment=production”等属性来为资源添加标记,使用列出 API 操作来查找这些资源,并使用 RunTask 和 CreateService API 操作来调度针对这些资源的任务。通过 Amazon ECS,使用 bin pack 和 spread 等置放策略来进一步定义放置任务的位置。可将策略链接在一起以实现置放功能,而无需编写任何代码。

联网

  • 服务发现:Amazon ECS 与 AWS Cloud Map 集成,使您的容器化服务可以彼此发现并相互连接。AWS Cloud Map 是一项云资源发现服务,您可以使用它为应用程序资源定义自定义名称。这项服务可以提高应用程序的可用性,因为您的 Web 服务将会发现这些变化资源的位置。
  • 服务连接:Amazon ECS Service Connect 可帮助您实现 Amazon ECS 的服务发现、连接性和流量可观测性。该服务让您可以专注于应用程序代码,而无需分心处理网络基础设施相关工作,从而帮助您构建应用程序。您可以使用 ECS Service Connect 为服务端点定义逻辑名称,并在客户端应用程序中使用这些逻辑名称连接到依赖项。ECS Service Connect 可帮助您将流量发送至运行正常的端点,并在 ECS 控制台和 Amazon CloudWatch 中提供流量遥测。ECS Service Connect 支持连接耗尽,可帮助您的客户端应用程序切换到新版本的服务端点,而不会遇到流量错误。通过 ECS Service Connect,您可以:
    • 设置客户端应用程序连接到其依赖项的方式
    • 通过逻辑名称编写和操作弹性分布式应用程序
    • 监控和分配 ECS 任务之间的流量,而无需部署和配置负载均衡器
    • 部署服务,并提供与包含应用程序的 ECS 微服务的集成
  • 任务联网:Amazon ECS 支持 Docker 联网,并通过与 Amazon VPC 集成为容器提供隔离。这可以帮助您控制容器与其他服务和外部流量的连接方式。
  • 负载均衡:Amazon ECS 与弹性负载均衡器集成,后者经过设计,使您能够使用应用程序负载均衡器或网络负载均衡器在多个容器之间分配流量。您只需指定要使用的任务定义和负载均衡器,Amazon ECS 会从负载均衡器中添加和删除容器。在任务定义中指定动态端口,这可为安排在 EC2 实例上的容器提供未使用的端口。此外,使用基于路径的路由与多个服务共享一个负载均衡器。

监控和日志记录

  • 监控:Amazon ECS 通过 Amazon CloudWatch 为您的容器和集群提供监控功能。您可以监控正在运行的任务的 CPU 和内存使用率的平均值及总和,这些任务按任务定义、服务或集群进行分组。设置 CloudWatch 警报,在您的容器或集群需要纵向扩展或缩减时提醒您。
  • 日志记录:Amazon ECS 使您可以通过 AWS CloudTrail 记录所有的 Amazon ECS API 调用并将日志文件发送给您。记录的信息包括 API 调用者的身份、API 调用的时间、API 调用者的源 IP 地址、请求参数以及 Amazon ECS 返回的响应元素。CloudTrail 为您提供从 AWS 管理控制台、AWS 开发工具包以及 AWS CLI 进行的 API 调用的历史记录。它支持安全分析、资源更改跟踪以及合规性审核。
  • AWS Config:AWS Config 与 Amazon ECS 集成,使您能够查看自己 AWS 账户中的 AWS 资源配置。使用 AWS Config,用户可以监控和跟踪资源的配置方式、它们彼此之间的关系以及这些配置和关系如何随时间变化。

混合部署

  • AWS Outposts:您可以使用 AWS Outposts 上的 Amazon ECS 来运行那些需要与本地系统实现低延迟通信的容器化应用程序。Outposts 是一项完全托管服务,可将 AWS 基础设施、AWS 服务、API 和工具扩展到连接的站点。使用 Outposts 上的 Amazon ECS,您可以像管理云中的容器一样轻松地管理本地容器。

其他信息

有关服务控制、安全特征和功能的更多信息,包括有关存储、检索、修改、限制和删除数据的信息(如适用),请参阅 https://docs.aws.amazon.com/index.html。就 http://aws.amazon.com/agreement 上的 AWS 客户协议或您与 AWS 之间签订的管理您使用 AWS 服务的其他协议而言,这些附加信息不构成文档的一部分。