了解如何创建 Fargate 启动类型的 Amazon ECS Linux 任务 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

了解如何创建 Fargate 启动类型的 Amazon ECS Linux 任务

Amazon Elastic Container Service (Amazon ECS) 是一项高度可扩展的快速容器管理服务,可让您轻松运行、停止和管理容器。您可以通过在 Amazon Fargate 上启动服务或任务,将容器托管在由 Amazon ECS 管理的无服务器基础设施上。有关 Fargate 的更多信息,请参阅 适用于 Amazon ECS 的 Amazon Fargate

通过在区域(这些区域中的 Amazon ECS 支持 Amazon Fargate)中将 Fargate 启动类型用于您的任务,开始在 Amazon Fargate 上使用 Amazon ECS。

要在 Amazon Fargate 上开始使用 Amazon ECS,请完成以下步骤。

先决条件

在开始之前,请完成 设置以使用 Amazon ECS 中的步骤,并且您的 Amazon 用户具有 AdministratorAccess IAM policy 示例中指定的权限。

控制台会尝试自动创建任务执行 IAM 角色,这是 Fargate 任务需要的。要确保控制台能够创建该 IAM 角色,必须满足以下条件之一:

重要

使用任务定义创建服务时所选择的安全组,必须为入站流量开放端口 80。将以下入站规则添加到安全组。有关如何创建安全组的信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的为 Amazon EC2 实例创建安全组

  • 类型:HTTP

  • 协议:TCP

  • 端口范围:80

  • 来源:Anywhere(任何位置)(0.0.0.0/0

第 1 步:创建集群

创建使用默认 VPC 的集群。

在开始之前,分配相应的 IAM 权限。有关更多信息,请参阅 Amazon ECS 集群示例

  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. 从导航栏中,选择要使用的区域。

  3. 在导航窗格中,选择集群

  4. Clusters(集群)页面上,选择 Create cluster(创建集群)。

  5. Cluster configuration(集群配置)下,为 Cluster name(集群名称),输入唯一名称。

    该名称最多可以包含 255 个字母(大小写字母)、数字和连字符。

  6. (可选)要打开 Container Insights,请展开 Monitoring(监控),然后打开 Use Container Insights(使用 Container Insights)。

  7. (可选)为了帮助识别您的集群,请展开 Tags(标签),然后配置您的标签。

    [添加标签] 选择 Add tag(添加标签),然后执行以下操作:

    • 对于 Key(键),输入键名称。

    • 对于,输入键值。

    [删除标签] 选择标签的“键”和“值”右侧的Remove(删除)。

  8. 选择Create(创建)。

第 2 步:创建任务定义

任务定义类似于应用程序的蓝图。每次在 Amazon ECS 中启动任务时,您都指定任务定义。这样,服务知道要用于容器的 Docker 映像、任务中要使用的容器数量以及为每个容器分配的资源。

  1. 在导航窗格中,选择 Task Definitions

  2. 选择 Create new Task Definition(创建新的任务定义)、Create new revision with JSON(使用 JSON 创建新的修订)。

  3. 将以下示例任务定义复制并粘贴到框中,然后选择 Save (保存)

    { "family": "sample-fargate", "networkMode": "awsvpc", "containerDefinitions": [ { "name": "fargate-app", "image": "public.ecr.aws/docker/library/httpd:latest", "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ], "essential": true, "entryPoint": [ "sh", "-c" ], "command": [ "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground\"" ] } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512" }
  4. 选择创建

第 3 步:创建服务

创建使用该任务定义的服务。

  1. 在导航窗格中,选择 Clusters(集群),然后选择您在 第 1 步:创建集群 中创建的集群。

  2. Services(服务)选项卡上,选择 Create(创建)。

  3. Deployment configuration(部署配置)下,指定应用程序的部署方式。

    1. Task Definitions(任务定义)中,选择您在 第 2 步:创建任务定义 中创建的任务定义。

    2. 对于 Service name(服务名称),为您的服务输入一个名称。

    3. 对于 Desired tasks(所需任务),输入 1

  4. 联网下,您可以为您的任务创建新安全组或者选择现有安全组。确保您使用的安全组具有 先决条件 下列出的入站规则。

  5. 选择创建

步骤 4:查看您的服务

  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. 在导航窗格中,选择集群

  3. 选择您在其中运行服务的集群。

  4. 服务选项卡中的服务名称下,选择您在 第 3 步:创建服务 中创建的服务。

  5. 选择任务选项卡,然后在服务中选择任务。

  6. 在“任务”页面的配置部分,在公有 IP 的下方选择打开地址

第 5 步:清理

完成使用 Amazon ECS 集群后,您应清除与其关联的资源,以避免产生与您未使用的资源相关的费用。

有些 Amazon ECS 资源(如任务、服务、集群和容器实例)是使用 Amazon ECS 控制台清除的。其他资源(例如 EC2 实例、Elastic Load Balancing和自动扩缩组)必须在 Amazon EC2 控制台中手动清除或通过删除创建它们的 Amazon CloudFormation 堆栈来清除。

  1. 在导航窗格中,选择集群

  2. 集群页面上,选择您为本教程而创建的集群。

  3. 选择服务选项卡。

  4. 选择服务,然后选择删除

  5. 在确认提示符处,输入 delete,然后选择 Delete(删除)。您也可以使用 Force delete 选项,让 Amazon ECS 在将其删除之前代表您缩减服务。

    等待直至系统删除服务。

  6. 选择 Delete Cluster (删除集群)。在确认提示符中,输入 delete cluster-name,然后选择 Delete(删除)。删除该集群将清除使用该集群创建的关联资源,包括自动扩缩组、VPC 或负载均衡器。