实验概览
本实验演示如何使用 Amazon Elastic Container Service 托管一个简单的多组件 Web 应用程序,该应用程序由一个网站和两项支持性 API 服务组成。该网站会显示一个表格,您可以在其中用名词、动词和形容词来替换原有的占位符,从而编写一个故事。当您选择 submit(提交)按钮后,系统会查询字词 API 以查找所需的字词,以便填写故事文本中的所有占位符。然后,您可以选择 save(保存),使用保存 API 将您创建的内容持久保存到 Amazon DynamoDB 中。该应用程序名为 Storyizer。
您首先需要在命令主机上为 Web 应用程序的每个组件构建 Docker 容器。然后,您需要将容器推送到 Amazon Elastic Container Repository (ECR),以便在构建 ECS 集群时可以对其进行检索。
接下来,为三个组成部分(网站、API 和保存)分别创建任务定义,从而指定 Docker 映像、资源要求和环境变量。然后,您可以在 AWS ECS 中注册这些任务定义,并为每个组成部分创建服务。每项服务都被配置为维护两个正在运行的任务(任务是运行给定 Docker 容器的定义)。这是一种高可用性设计,因为如果有一个服务任务运行不正常,ECS 会自动将其替换为新启动的任务。ECS 还会与应用程序负载均衡器 (ALB) 和每个 ECS 任务协调动态主机端口映射。这让您可以在单个主机上运行一个应用程序组件的多个容器,而不会发生端口冲突。
目标
完成本实验后,您应能够:
- 了解构建 Docker 映像所需的步骤。
- 将容器映像推送到 Amazon ECR 存储库。
- 将容器作为服务从存储库部署到 Amazon ECS 集群。
技术知识先决条件
要完成本实验,您需要:
- 一台运行 Microsoft Windows、Mac OS X 或 Linux(Ubuntu、SuSE 或 Red Hat)且可以连接 Wi-Fi 的笔记本电脑
- 对于 Microsoft Windows 用户:具有电脑的管理员访问权限
- 互联网浏览器,例如 Chrome、Firefox 或 IE9 或更高版本(不支持旧版本 Internet Explorer)
图标说明
本实验中使用了不同图标,以提醒大家注意各种类型的说明和备注。下面的列表解释了每个图标的用途:
- 命令:您必须运行的命令。
- 预期输出:您可以用来验证命令或已编辑文件输出的示例输出。
- 注意:一项提示、技巧或重要指导。
- 提醒:特别相关或较为重要的信息(不查看该信息并不足以引起设备或数据问题,但可能导致需要重复某些步骤)。
- 了解详情:可以找到更多信息的位置。
- 任务完成:本实验的总结或结论要点。