了解如何为 Amazon ECS 托管实例创建任务 - Amazon Elastic Container Service

了解如何为 Amazon ECS 托管实例创建任务

了解如何将 Amazon ECS 与 Amazon ECS 托管实例结合使用以运行容器化应用程序。

先决条件

开始教程前,请完成以下任务:

  • 您已完成设置以使用 Amazon ECS中的步骤。

  • 设置以使用 Amazon ECS 中的步骤已完成。

  • 您拥有 Amazon ECS 托管实例所需的 IAM 角色。这包括:

    • 基础设施角色 - 允许 Amazon ECS 代表您调用 AWS 服务来管理 Amazon ECS 托管实例基础设施。

      有关更多信息,请参阅 Amazon ECS 基础设施 IAM 角色

    • 实例配置文件 - 为在托管实例上运行的 Amazon ECS 容器代理和 Docker 进程守护程序提供权限。

      实例角色名称必须包含 ecsInstanceRole 作为前缀,以匹配基础设施角色中的 iam:PassRole 操作。

      有关更多信息,请参阅 Amazon ECS 托管实例实例配置文件

  • 您已创建要使用的 VPC 和安全组。本教程使用的是托管在 Amazon ECR Public 上的容器映像,因此您的实例必须具有互联网访问权限。要让您的实例路由到互联网,请使用下列选项之一:

    • 将私有子网与具有弹性 IP 地址的 NAT 网关结合使用。

    • 使用公有子网并向实例分配公有 IP 地址。

    有关更多信息,请参阅 创建 Virtual Private Cloud

    有关安全组的信息,请参阅《Amazon Virtual Private Cloud 用户指南》中的您的 VPC 的默认安全组示例规则

  • (可选)AWS CloudShell 是一种为客户提供命令行的工具,而无需创建自己的 EC2 实例。有关更多信息,请参阅《AWS CloudShell 用户指南》中的什么是 AWS CloudShell?

步骤 1:创建集群

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

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

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

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

  5. 集群配置下,对于集群名称,请输入集群的唯一名称。

  6. 基础设施下,请选择 Fargate 和托管 EC2

  7. 配置托管实例设置:

    1. 对于基础设施角色,请选择您为托管实例基础设施管理创建的 IAM 角色。

    2. 对于实例配置文件,选择您创建的 ecsInstanceRole

    3. 对于实例属性,选择使用 ECS 默认值

  8. 网络下,为托管实例配置 VPC 和子网:

    1. 对于 VPC,选择承载托管实例的 VPC。

    2. 对于子网,选择一个或多个将在其中启动托管实例的子网。

    3. 对于 Security groups,选择一个或多个安全组。

  9. (可选)要向您的集群添加标签,请展开标签,然后配置您的标签。

  10. 选择创建

第 2 步:创建任务定义

任务定义是应用程序的蓝图。每次在 Amazon ECS 中启动任务时,您都指定任务定义。这样,服务知道要用于容器的 Docker 映像、任务中要使用的容器数量以及为每个容器分配的资源。请按照下面的步骤创建任务定义:

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

  2. 选择 Create new task definition(创建新的任务定义)、Create new task definition with JSON(使用 JSON 创建新的任务定义)。

  3. 将下面的 JSON 复制并粘贴到编辑器中,替换预填充的 JSON:

    account-id 替换为您的 AWS 账户 ID,并将 region 替换为您正在使用的区域。

    { "family": "managed-instance-tutorial", "networkMode": "awsvpc", "executionRoleArn": "arn:aws:iam::account-id:role/ecsTaskExecutionRole", "containerDefinitions": [ { "name": "sample-app", "image": "public.ecr.aws/docker/library/httpd:latest", "essential": true, "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/managed-instance-tutorial", "awslogs-region": "region", "awslogs-stream-prefix": "ecs" } } } ], "requiresCompatibilities": [ "MANAGED_INSTANCES" ], "cpu": "1024", "memory": "2048" }
  4. 选择创建

步骤 3:创建服务

利用 Amazon ECS 访问,您可在 Amazon ECS 集群中同时运行和维护指定数量的任务定义实例。请按照以下步骤创建服务:

  1. 在导航窗格中,选择集群,然后选择 managed-instance-tutorial 集群。

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

  3. 对于任务定义系列,选择 managed-instance-tutorial

  4. 对于服务名称,输入 managed-instance-tutorial-service

  5. 环境下,选择容量提供程序策略

  6. 联网下,配置以下内容:

    1. 选择现有 VPC 或者创建新的 VPC。

    2. 对于子网,选择要使用的子网。

    3. 对于安全组,请选择现有的安全组或创建一个允许端口 80 上的入站流量的新安全组。

  7. 选择创建

步骤 4:查看您的服务

在您的服务启动后,您可以查看它以了解更多信息并对其进行测试。

  1. 选择 managed-instance-tutorial-service 服务。

  2. 任务选项卡上,选择正在运行的任务的任务 ID。

  3. 网络下的公有 IP 中,选择开放地址

  4. 您应该会看到 Apache HTTP Server 测试页面,该页面确认 Web 服务器运行正常。

第 5 步:清理

完成本教程后,您应该清理关联的资源,以免产生未使用资源的费用。

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

  2. 集群页面上,选择 managed-instance-tutorial 集群。

  3. 选择服务选项卡。

  4. 选择 managed-instance-tutorial-service 服务,然后选择删除

  5. 在确认提示符处,输入 delete,然后选择删除

  6. 删除服务后,请在导航窗格中选择集群

  7. 集群页面上,选择 managed-instance-tutorial 集群,然后选择删除集群

  8. 在确认提示符处,输入 delete managed-instance-tutorial,然后选择删除