Amazon ECS 功能

Amazon Elastic Container Service(Amazon ECS)是一个完全托管的容器编排服务,可帮助组织轻松部署、管理和扩展容器化的应用程序。Amazon ECS 控制面板无版本且固定,与 AWS 环境的其余部分深度集成,为在云中运行容器工作负载提供安全且易于使用的解决方案。Amazon ECS 可以与 Amazon Elastic Compute Cloud(Amazon EC2)、AWS Fargate 一起运行,甚至可以与 Amazon ECS Anywhere 的本地基础设施一起运行。

主要功能

AWS Fargate 内置在 Amazon ECS 中,这意味着您不必再担心管理服务器、处理容量规划、考虑如何隔离容器工作负载以实现安全性等事宜。只需定义应用程序的要求,并选择 AWS Fargate 作为控制台或命令行界面 (CLI) 中的启动类型,AWS Fargate 负责跨灵活的计算选项运行容器所需的所有扩展和基础设施管理,并自动集成到您的应用程序需要的其他支持性 AWS 服务。

使用 Amazon ECS Anywhere,您可以使用您熟悉的 Amazon ECS 控制台和运算符工具来管理本地容器工作负载,以便在您的众多基于容器的应用程序中提供一致的体验。您还可以使用 AWS Outposts 上的 Amazon ECS 来运行要求极低的本地系统延迟的容器化应用程序。

Amazon ECS 以原生方式与您已经信任的安全性、身份、管理和监管工具集成,从而帮助您快速、成功地部署到生产中。您可以为每个应用程序分配精细权限,从而在构建应用程序时实现高度隔离。以您期望从 AWS 获得的安全性和合规性级别启动您的容器。 而且,通过与 Amazon GuardDuty 的集成,您可以在工作负载的外部威胁升级之前快速轻松地检测出来。

Amazon ECS 是一项完全托管的容器编排服务,并内置了 AWS 配置和操作最佳实践,而且您不必管理任何控制面板、节点或附加组件。它以原生方式与 AWS 和第三方工具集成,能够让团队更轻松地专注于构建应用程序而非环境。

开发

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

AWS Copilot CLI 是一种工具,开发人员可以使用它在 Amazon ECS 和 AWS Fargate 上构建、发布和运行生产就绪型容器化应用程序。Copilot 采用了从基础设施即代码到持续交付的最佳实践,并且以最适合命令行的方式提供给客户。您还可以通过查看服务的状态或日志、扩展或缩小生产服务,以及启动一个用于自动化测试的新环境来监控服务的运行状况。 下载 AWS Copilot。

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

管理

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

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

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

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

借助容量提供程序,您可以就容器化工作负载如何在不同类型的计算容量上运行定义灵活的规则,并管理容量的扩展。容量提供程序与 Amazon Elastic Compute Cloud (Amazon EC2) 和 AWS Fargate 配合使用。当运行任务和服务时,您可以将它们拆分到多个容量提供程序中,以支持新的功能,例如在 Fargate 和 Fargate Spot 中按预定义的拆分百分比运行服务。

Amazon Elastic Block Store(Amazon EBS)是一项易于使用、可扩展、高性能的区块存储服务,允许您为 Amazon ECS 和 AWS Fargate 部署预置高性价比的存储。您可以将所有 EBS 配置和功能用于部署在 Amazon ECS 上的容器工作负载。

Amazon Elastic File System(Amazon EFS)是一种简单、可扩展、完全托管的弹性文件系统,可让您构建现代化的应用程序,并从您的 Amazon ECS 和 AWS Fargate 部署中保留和共享数据和状态。考虑到了通过容器使用 Amazon EFS 的所有方面(包括连接),无需进行任何管理。您只需专注于您的应用程序,而无需专注于基础设施。 了解有关持久性文件存储的更多信息

计划和任务置放

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

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

了解有关安排 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 Service Connect 简化了 Amazon ECS 的服务发现、连接和流量可观测性。这让您得以专注于应用程序代码而不是网络基础设施,从而帮助您更快地构建应用程序。您可以使用 ECS Service Connect 为服务端点定义逻辑名称,并在客户端应用程序中使用这些逻辑名称连接到依赖项。ECS Service Connect 可帮助您将流量发送至运行正常的端点,并在 ECS 控制台和 Amazon CloudWatch 中提供丰富的流量遥测。ECS Service Connect 让本机 ECS 部署变得更加可靠,因为它支持自动连接耗尽,这将有助于您的客户端应用程序切换到新版本的服务端点,而不会遇到流量错误。

通过 ECS Service Connect,您可以:

• 仅需一步便可设置客户端应用程序连接到其依赖项的方式

• 通过逻辑名称编写和操作弹性分布式应用程序

• 监控和分配 ECS 任务之间的流量,而无需部署和配置负载均衡器

• 更快地部署服务,并且与包含应用程序的 ECS 微服务无缝集成

了解有关将现有 Amazon ECS 服务从服务发现迁移到 ECS Service Connect 的更多信息 »

Amazon ECS 与 AWS Cloud Map 集成,使您的容器化服务可以彼此轻松发现并相互连接。 AWS Cloud Map 是一项云资源发现服务,您可以使用它为应用程序资源定义自定义名称。这项服务可以提高应用程序的可用性,因为您的 Web 服务始终会发现这些动态变化资源的最新位置。

了解有关将现有 Amazon ECS 服务从服务发现迁移到 ECS Service Connect 的更多信息 »

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

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

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

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


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

Amazon ECS 与 Elastic Load Balancing 集成,允许您使用 Application Load Balancer 或 Network Load Balancer 在多个容器之间分配流量。您只需指定要使用的任务定义和负载均衡器,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 与 Amazon ECS 集成,使您能够查看自己 AWS 账户中的 AWS 资源配置。使用 AWS Config,用户可以监控和跟踪资源的配置方式、它们彼此之间的关系以及这些配置和关系如何随时间变化。AWS Config 能够简化合规性和安全性、运行问题排查和资源管理。

混合部署

您可以使用 AWS Outposts 上的 Amazon ECS 运行要求极低的本地系统延迟的容器化应用程序。Outposts 是一项完全托管服务,可将 AWS 基础设施、AWS 服务、API 和工具扩展到几乎所有连接的站点。使用 Outposts 上的 Amazon ECS,您可以像管理云中的容器一样轻松地管理本地容器。

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

详细了解 Amazon ECS Anywhere »