了解如何为 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:创建集群
-
在 https://console.aws.amazon.com/ecs/v2
打开 Amazon ECS 控制台。 -
从导航栏中,选择要使用的区域。
-
在导航窗格中,选择集群。
-
在 Clusters(集群)页面上,选择 Create cluster(创建集群)。
-
在集群配置下,对于集群名称,请输入集群的唯一名称。
-
在基础设施下,请选择 Fargate 和托管 EC2。
-
配置托管实例设置:
-
对于基础设施角色,请选择您为托管实例基础设施管理创建的 IAM 角色。
-
对于实例配置文件,选择您创建的
ecsInstanceRole。 -
对于实例属性,选择使用 ECS 默认值。
-
-
在网络下,为托管实例配置 VPC 和子网:
-
对于 VPC,选择承载托管实例的 VPC。
-
对于子网,选择一个或多个将在其中启动托管实例的子网。
-
对于 Security groups,选择一个或多个安全组。
-
-
(可选)要向您的集群添加标签,请展开标签,然后配置您的标签。
-
选择创建。
第 2 步:创建任务定义
任务定义是应用程序的蓝图。每次在 Amazon ECS 中启动任务时,您都指定任务定义。这样,服务知道要用于容器的 Docker 映像、任务中要使用的容器数量以及为每个容器分配的资源。请按照下面的步骤创建任务定义:
-
在导航窗格中,选择 Task Definitions。
选择 Create new task definition(创建新的任务定义)、Create new task definition with JSON(使用 JSON 创建新的任务定义)。
-
将下面的 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" } -
选择创建。
步骤 3:创建服务
利用 Amazon ECS 访问,您可在 Amazon ECS 集群中同时运行和维护指定数量的任务定义实例。请按照以下步骤创建服务:
-
在导航窗格中,选择集群,然后选择
managed-instance-tutorial集群。 -
在 Services(服务)选项卡上,选择 Create(创建)。
-
对于任务定义系列,选择 managed-instance-tutorial。
对于服务名称,输入
managed-instance-tutorial-service。-
在环境下,选择容量提供程序策略。
-
在联网下,配置以下内容:
选择现有 VPC 或者创建新的 VPC。
-
对于子网,选择要使用的子网。
对于安全组,请选择现有的安全组或创建一个允许端口 80 上的入站流量的新安全组。
-
选择创建。
步骤 4:查看您的服务
在您的服务启动后,您可以查看它以了解更多信息并对其进行测试。
-
选择
managed-instance-tutorial-service服务。 -
在任务选项卡上,选择正在运行的任务的任务 ID。
-
在网络下的公有 IP 中,选择开放地址。
-
您应该会看到 Apache HTTP Server 测试页面,该页面确认 Web 服务器运行正常。
第 5 步:清理
完成本教程后,您应该清理关联的资源,以免产生未使用资源的费用。
-
在导航窗格中,选择集群。
-
在集群页面上,选择
managed-instance-tutorial集群。 -
选择服务选项卡。
-
选择
managed-instance-tutorial-service服务,然后选择删除。 -
在确认提示符处,输入
delete,然后选择删除。 -
删除服务后,请在导航窗格中选择集群。
-
在集群页面上,选择
managed-instance-tutorial集群,然后选择删除集群。 -
在确认提示符处,输入
delete managed-instance-tutorial,然后选择删除。