Amazon Elastic Container Service (Amazon ECS) 是一种服务,用于在可扩展集群上运行 Docker 应用程序。通过本教程,您将学习如何基于负载均衡器在 Amazon ECS 集群上运行支持 Docker 的示例应用程序,测试示例应用程序并删除资源以避免收费。
管理亚马逊云科技资源
步骤 1:通过 Amazon ECS 设置您的首次运行
Amazon ECS 首次运行向导将指导您创建集群并启动示例网络应用程序。通过此步,您将进入 Amazon ECS 控制台并启动向导。
b. 借助 Amazon ECS,您可选择通过 Amazon Elastic Container Registry (Amazon ECR) 创建映像存储库,并将映像作为首次运行向导的一部分(参见右侧屏幕截图)。目前这项功能仅限部分地区。
- 如果您没有 Amazon ECR,请跳至步骤 2。
- 如果您有 Amazon ECR 选项,请取消勾选 Deploy a sample application onto an Amazon ECS Cluster(将示例应用程序部署至 Amazon ECS 集群)旁边的复选框,并选择 Continue(继续)。
步骤 2:创建任务定义
任务定义就像一个应用程序蓝图。在本步中,您需要指定任务定义,以便 Amazon ECS 知道哪个 Docker 映像将用于容器,任务中需要使用多少容器,以及每个容器的资源分配方式。
步骤 3:配置服务
创建好任务定义后,您将要配置 Amazon ECS 服务。这项服务将会启动并维持集群中的任务定义副本。 例如,通过将应用程序作为一项服务来运行,Amazon ECS 将自动恢复所有已停止的任务,并维持您所指定的副本数。
a. 配置服务选项:
- 服务名称:默认名称“sample-webapp”是基于网络的一个“Hello World”应用程序。这就意味着服务会无限期运行下去,因此通过以服务形式运行,如果任务运行不佳或意外停止,便会重新启动服务。
- 所需的任务数:默认值为 1。这一过程将会创建 1 个任务副本。
b. Elastic Load Balancing:您可选择在服务中使用负载均衡器。Amazon ECS 可创建 Elastic Load Balancing (ELB) 负载均衡器,以便在您的任务启动容器实例之间分配流量。
- 容器名称:主机端口:选择 Simple-app:80。
- 示例应用程序中设置了 ELB 侦听器协议、ELB 侦听器端口和 ELB 运行状况检查的默认值。如需进一步了解有关负载均衡配置的更多信息,请参阅 Service Load Balancing(服务负载均衡)。
c. 在您将负载均衡器附加至 Amazon ECS 服务之前,您必须为要使用的服务创建 Identity and Access Management (IAM) 角色。这样一来,Amazon ECS 便可调用 Amazon EC2 和 Elastic Load Balancing API 并通过负载均衡器来注册或取消注册实例。
- 如果您还没有 Service IAM 角色,Amazon ECS 会为您创建一个名为 ecsServiceRole 的角色。
- 如果您已有 Amazon ECS 服务角色,请通过下拉列表选择既有角色。
d. 查看您的设置并选择 Next Step(下一步)。
步骤 4:配置集群
您的 Amazon ECS 任务会在集群上运行,该集群是一个运行 Amazon ECS 容器代理的容器实例集。 在本步骤中,您将配置集群,查看安全设置,并设置 IAM 角色。
a. 请遵循以下配置设置:
- 集群名称:输入 sample-cluster。
- EC2 实例类型:默认实例类型为 t2.micro。拥有更多 CPU 和内存资源的实例类型可处理更多任务。如需进一步了解有关不同实例类型的信息,请参阅 Amazon EC2 实例类型。
- 实例数量:保留默认值 1,以便启动一个 Amazon EC2 实例,在您的集群中执行任务。集群中拥有的实例越多,可通过集群处理的任务就越多。
- 密钥对:后续将需要密钥对才能通过 SSH 连接至您的实例。您可选择 None - unable to SSH(无 - 无法执行 SSH),选择现有密钥对,或在 Amazon EC2 控制台中创建一个密钥对来继续操作。
b.(可选)安全组:默认值(不限地点)支持从整个互联网访问。您还可选择 CIDR 块,以限制您的实例访问权限。
c.容器实例 IAM 角色:
- 如果您没有 IAM 角色,Amazon ECS 向导将为您创建一个。
- 如果您已有容器实例 IAM 角色,请从下拉列表中选择。
d. 选择 Review and Launch(审核并启动)。
步骤 5:启动并查看资源
在前面的步骤中,您已配置任务定义(类似于应用程序蓝图),Amazon ECS 服务(启动并维护任务定义副本)和您的集群(运行容器代理的容器实例集)。在本步中,您将审核、启动并查看您所创建的资源。
a. 启动之前,您最后还有机会审查任务定义、任务配置和集群配置。
- 选择 Launch Instance & run service(启动实例和运行服务)。
b. 您目前处于启动状态页面,该页面会显示启动所处状态,并描述该过程的各个步骤。
- 启动完成后,选择查看服务。
步骤 6:打开示例应用程序
在本步中,您将通过将浏览器指向负载均衡器的 DNS 名称来验证示例应用程序是否已启动且正在运行。
a. 在 sample-webapp 页面上,单击 Load Balancer Name(负载均衡器名称)。
b. 现在您将测试示例应用程序:
- 复制 ELB DNS 名称。
- 复制到新的浏览器窗口。
- 敲击键盘上的 Enter 键以查看示例应用程序(在本例中为静态网页)。
步骤 7:删除您的资源
在本教程的学习过程中,您已启动三个资源,分别为:Amazon ECS 集群、Amazon EC2 实例和负载均衡器。在本步中,您将清除您的所有资源以避免不必要的收费。
a. 返回至 Amazon ECS 控制台页面
- 单击集群名称 (sample-cluster)。
b. 勾选 sample-webapp 旁边的复选框并单击更新。
c. 为避免意外删除具有活动任务的服务,您需要在 Amazon ECS 删除服务之前停止所有任务。
- 设置任务数量为 0 并选择 Update Service(更新服务)。
- 更新完服务后,选择 Delete(删除)。
d. 删除随集群启动的 Amazon EC2 实例:
- 输入 Amazon EC2 控制台
- 在左侧面板中选择 Instances(实例)。
- 勾选实例名称 ECS Instance - EC2ContainerService-default 旁边的复选框。
- 选择Actions (操作)> Instance State(实例状态) > Terminate(终止)。
e. 删除您的负载均衡器:
- 在左侧面板中,选择 Load Balancers(负载均衡器)。
- 勾选由您为您的服务创建的负载均衡器旁边的复选框(应以 EC2Contai-EcsElast 开头)。
- 右击并选择删除。
恭喜您!
恭喜您! 您已完整学习了如何在 Amazon Elastic Container Service (Amazon ECS) 中配置、部署和删除支持 Docker 的应用程序。Amazon ECS 是一项高度可扩展的高性能容器管理服务,该服务支持 Docker 容器,支持您在托管的 Amazon EC2 实例集群上轻松运行应用程序。
推荐的后续步骤
既然您已学会了将支持 Docker 的应用程序部署至 Amazon ECS,现在您可以开始下一教程的学习,下一教程将指导您如何创建 Docker Registry 来存储容器映像。您将构建一个 Docker 映像,将其推送至存储库中,并用于在 Amazon ECS 上部署应用程序。