什么是 Amazon Elastic Container Service? - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

什么是 Amazon Elastic Container Service?

Amazon Elastic Container Service(Amazon ECS)是一项高度可扩展的快速容器管理服务,它可轻松运行、停止和管理群集上的容器。您的容器是在用于运行服务中的单个任务或任务的任务定义中定义的。在此情况下,服务是一种配置,可用于在群集中同时运行和维护指定数量的任务。您可以在由Amazon Fargate。或者,为了更好地控制您的基础架构,您可以在Amazon EC2您管理的实例。

Amazon ECS使您能够通过简单的 API 调用来启动和停止基于容器的应用程序。您还可以从集中式服务检索群集的状态,并可以访问许多熟悉的Amazon EC2功能。

您可以根据您的资源需求、隔离策略和可用性要求计划容器在群集中的放置。与Amazon ECS,您无需操作自己的群集管理和配置管理系统,也无需担心扩展管理基础设施。

Amazon ECS可用于创建一致的构建和部署体验、管理和扩展批处理和提取-转换-加载 (ETL) 工作负载以及在微服务模型上构建先进的应用程序架构。有关 Amazon ECS 使用案例和方案的更多信息,请参阅容器使用案例

Amazon 容器服务团队在 GitHub 上维护着公有路线图。该路线图包含有关团队工作的信息并启用Amazon客户提供直接反馈。有关更多信息,请参阅 Amazon 容器路线图

Amazon ECS 的功能

Amazon ECS是一项区域服务,可在区域内的多个可用区中以高度可用的方式简化容器的运行。您可以在新的或现有的 VPC 中创建 Amazon ECS 集群。在群集启动并运行后,您可以创建用于定义在群集中运行的容器映像的任务定义。您的任务定义用于运行任务或创建服务。容器映像将在容器注册表中存储和提取,例如Amazon Elastic Container Registry

下图演示了Amazon ECS环境运行于Amazon Fargate。


                示意图显示Amazon ECS使用Fargate的任务。

以下部分将更详细地深入探究 Amazon ECS 基础设施的各个元素。

容器和映像

要在 Amazon ECS 上部署应用程序,必须构建应用程序组件以在容器 中运行。容器是一种软件开发的标准化单位,包含您的软件应用程序需要运行的一切,包括相关代码、运行时、系统工具和系统库。从称为映像 的只读模板中创建容器。

映像通常由 Dockerfile 构建,后者是一个明文文件,指定了容器中包含的所有组件。构建后,这些映像将存储在注册表在那里,它们可以下载并在您的群集中运行。有关容器技术的更多信息,请参阅 Amazon ECS 的 Docker 基本知识


                    显示 Docker 映像创建和注册在Amazon ECS环境。

任务定义

要准备要在上运行的应用程序Amazon ECS,您必须创建任务定义。任务定义是一个文本文件(JSON 格式),描述了构成应用程序的一个或多个容器(最多为 10 个)。可以将任务定义视为应用程序的蓝图。它为您的应用程序指定各种参数。例如,这些参数可用于指示应使用哪些容器,应为应用程序打开哪些端口,应与任务中的容器一起使用哪些数据卷。可用于您的任务定义的特定参数取决于您的特定应用程序的需求。有关创建任务定义的更多信息,请参阅 Amazon ECS 任务定义

以下是指定使用 Fargate 启动运行 NGINX Web 服务器的单个容器的任务定义的示例。有关演示在任务定义中使用多个容器的更扩展的示例,请参阅示例任务定义

{ "family": "webserver", "containerDefinitions": [ { "name": "web", "image": "nginx", "memory": "100", "cpu": "99" }, ], "requiresCompatibilities": [ "FARGATE" ], "networkMode": "awsvpc", "memory": "512", "cpu": "256", }

任务

任务 是集群内的任务定义的实例化。在为Amazon ECS,您可以指定要在您的群集中运行的任务的数量。

Amazon ECS 任务计划程序负责将任务放置到您的集群中。有多种不同的计划选项可供选择。例如,您可以定义同时运行和维护指定数量的任务的服务。有关可用的不同计划选项的更多信息,请参阅计划Amazon ECS任务


                    显示任务调度和放置在Amazon ECS使用Fargate的任务。

Clusters

Amazon ECS 集群 是任务或服务的逻辑分组。您可以注册一个或多个Amazon EC2实例(也称为容器实例),以便在其上运行任务。或者,您可以使用Fargate提供运行任务。当您的任务在Fargate,您的集群资源也由Fargate。

当您第一次使用Amazon ECS,则会为您创建一个默认集群。您可以在账户中创建其他集群以保持您的资源独立。

有关创建集群的更多信息,请参见 Amazon ECS 集群。有关启动容器实例并将它们注册到您的集群的更多信息,请参阅Amazon ECS 容器实例

容器代理

这些区域有:容器代理在每个容器实例上运行Amazon ECS集群 代理将有关资源的当前正在运行的任务和资源使用率的信息发送至Amazon ECS。它会启动和停止任务,只要它收到来自Amazon ECS。有关更多信息,请参阅 Amazon ECS容器代理


                    显示Amazon ECS环境。

开始使用 Amazon ECS

要了解可用于使用Amazon ECS,请参阅Amazon ECS开发人员工具概述

如果是第一次使用 Amazon ECS,则 Amazon ECS 的 Amazon Web Services Management Console将提供一个首次运行向导,该向导逐步指导您为 Web 服务器定义任务定义、配置服务以及启动您的首个 Fargate 任务。我们强烈建议您使用初次运行向导Amazon ECS。有关更多信息,请参阅 开始使用 Amazon ECS

或者,您可以安装 Amazon Command Line Interface (Amazon CLI) 以使用 Amazon ECS。有关更多信息,请参阅 使用 Amazon ECS 进行设置

Amazon ECS 可与以下 Amazon 服务一起使用:

Amazon Identity and Access Management

IAM(Identity and Access Management)是一项访问管理服务,可帮助您安全地控制对Amazon资源的费用。您可以使用 IAM 控制对哪个用户进行身份验证 (登录) 和授权 (具有权限) 以查看或执行特定操作。InAmazon ECS,您可以使用IAM在容器实例级访问IAM角色和任务级别使用IAM任务角色。有关更多信息,请参阅 适用于 Amazon Elastic Container Service 的 Identity and Access Management

Amazon EC2 Auto Scaling

Auto Scaling是一项服务,可让您根据用户定义的策略、运行状况检查和时间表自动扩展或扩展任务。您可以对服务内的 Fargate 任务使用 Auto Scaling,从而根据多个指标进行扩展,或对 EC2 任务使用来扩展集群中的容器实例。有关更多信息,请参阅 服务自动扩展

Elastic Load Balancing

这些区域有:Elastic Load Balancing服务将在您的Amazon ECS服务。它可以让您实现更高水平的应用程序容错能力,从而无缝提供分配应用程序流量所需的负载均衡容量。您可以使用 Elastic Load Balancing 创建一个使集群中的服务流量达到均衡的终端节点。有关更多信息,请参阅 服务负载均衡

Amazon Elastic Container Registry

Amazon ECR 是一项托管 Amazon Docker 注册表服务,安全、可扩展且可靠。通过使用 IAM,Amazon ECR 支持具有基于资源的权限的私有 Docker 存储库,以便特定用户或任务可以访问存储库和映像。开发人员可以使用 Docker CLI 推送、拉取和管理映像。有关更多信息,请参阅 Amazon Elastic Container Registry 用户指南

Amazon CloudFormation

Amazon CloudFormation为开发人员和系统管理员提供了一种创建和管理相关Amazon资源的费用。更具体地说,它使资源的配置和更新更加有序和可预测。您可以在 Amazon CloudFormation 脚本中将集群、任务定义和服务定义为实体。有关更多信息,请参阅 。Amazon CloudFormation模板参考

Pricing

Amazon ECS定价取决于您使用的Amazon Fargate或者Amazon EC2基础架构来托管容器化工作负载。使用Amazon ECS上的Amazon Outposts,则定价遵循的模型与使用Amazon EC2。有关更多信息,请参阅 Amazon ECS 定价

Amazon ECS和Fargate还提供Savings Plans,根据您的Amazon用法 有关更多信息,请参阅 Savings Plans 用户指南

要查看您的账单,请转至Billing and Cost Management 控制面板中的Amazon Billing and Cost Management控制台。您的账单中包含了提供您的账单的更多详情的使用率报告的链接。要了解有关 Amazon 账户账单的更多信息,请参阅 Amazon 账户账单

如果您有关于 Amazon 账单、账户和事件的问题,请联系 Amazon Support

Trusted Advisor 可帮助您优化成本、安全性和您的 Amazon 环境性能,有关其概述,请参阅 Amazon Trusted Advisor