Amazon ECS 组件
集群
Amazon ECS 集群是任务或服务的逻辑分组。您可以使用集群隔离应用程序。这样,他们就不会使用相同的底层基础设施。当您的任务在 Fargate 上运行时,您的群集资源也由 Fargate 托管。
容器和镜像
要在 Amazon ECS 上部署应用程序,必须配置应用程序组件以在容器中运行。容器是软件开发的标准化单位,它包含软件应用程序运行需要的所有内容。这包括相关代码、运行时、系统工具和系统库。从称为映像的只读模板中创建容器。
通常通过 Dockerfile 进行构建镜像。Dockerfile 是一个纯文本文件,指定了容器中包含的所有组件。构建完成后,这些映像将存储在可从中下载它们的注册表。然后,下载后,您可以使用它们在集群上运行。有关容器技术的更多信息,请参阅 创建容器镜像以在 Amazon ECS 上使用。

任务定义
任务定义是描述构成应用程序的一个或多个容器的文本文件。该文件以 JSON 格式。您可以使用它来描述最多 10 个容器。任务定义可以用作应用程序的蓝图。它为您的应用程序指定各种参数。例如,您可以使用它指定操作系统的参数、要使用哪些容器、要为应用程序打开哪些端口以及任务中的容器应使用哪些数据卷。可用于任务定义的特定参数取决于您的特定应用程序需求。
您的整个应用程序堆栈不需要存在于单个任务定义上。实际上,我们建议您的应用程序跨越多个任务定义。您的应用程序可通过将相关容器组合到其自己的任务定义(每个任务定义表示一个组件)中来操作。
任务
任务 是集群内的任务定义的实例化。在为 Amazon ECS 中的应用程序创建任务定义后,您可以指定将在集群上运行的任务的数量。您可以运行独立任务,也可以将任务作为服务的一部分运行。
服务
您可以使用 Amazon ECS 服务在 Amazon ECS 集群中同时运行和维护所需数量的任务。它的工作原理是,如果您的任何任务出于任何原因失败或停止,Amazon ECS 服务调度器将根据您的任务定义启动另一个实例。这样做是为了替换它,从而保持服务中所需的任务数量。
容器代理
容器代理 在 Amazon ECS 群集内的每个实例上运行。代理向 Amazon ECS 发送有关容器当前正在运行的任务和资源使用率的信息。在接收来自 Amazon ECS 的请求时启动和停止任务。有关更多信息,请参阅Amazon ECS 容器代理。

Fargate 架构概述
Amazon ECS 是一项区域服务,可在 AWS 区域 内的多个可用区中以高度可用的方式简化运行容器所涉及的管理。您可以在新的或现有的 VPC 中创建 Amazon ECS 群集。集群启动并运行后,您可以创建任务定义,定义哪些容器映像在集群中运行。您的任务定义用于运行任务或创建服务。将在容器注册表中存储和提取容器镜像,例如 Amazon Elastic Container Registry。
下图表明了 AWS Fargate 上运行的 Amazon ECS 环境的架构。
