本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ECS使用 AWS Fargate 在亚马逊上部署 Java 微服务
由 Vijay Thompson (AWS) 和 Sandeep Bondugula () 创作 AWS
摘要
此模式为使用 Fargate 在亚马逊弹性容器服务 (亚马逊ECS) 上部署容器化 Java 微服务提供了指导。AWS该模式不使用亚马逊弹性容器注册表 (AmazonECR) 进行容器管理;相反,Docker 镜像是从 Docker 中心提取的。
先决条件和限制
先决条件
在 Docker 中心上的现有 Java 微服务应用程序
公共 Docker 存储库
一个活跃的AWS账户
熟悉AWS服务,包括 Amazon ECS 和 Fargate
Docker、Java 和 Spring Boot 框架
Amazon Relational Database Service(亚马逊RDS)已启动并运行(可选)
如果应用程序需要 Amazon(可选VPC),则为虚拟私有云 RDS ()
架构
源技术堆栈
Java 微服务(例如,在 Spring Boot 中实施)并部署在 Docker 上
源架构
目标技术堆栈
使用 Fargate 托管每项微服务的 Amazon ECS 集群
用于托管 Amazon ECS 集群和相关安全组的VPC网络
使用 Fargate 启动容器的每个微服务的集群/任务定义
目标架构
工具
工具
Amazon ECS 无需安装和操作您自己的容器编排软件、管理和扩展虚拟机集群或在这些虚拟机上调度容器。
AWSFargate 可帮助您运行容器,而无需管理服务器或亚马逊弹性计算云 (AmazonEC2) 实例。它与亚马逊弹性容器服务 (AmazonECS) 配合使用。
Docker
软件平台可以快速构建、测试和部署应用程序。Docker 将软件打包成称为容器的标准化单元,容器拥有软件运行所需一切,包括库、系统工具、代码和运行时系统。
Docker 代码
以下 Dockerfile 指定了所使用的 Java 开发套件 (JDK) 版本、Java 存档 (JAR) 文件所在的版本、公开的端口号以及应用程序的入口点。
FROM openjdk:11 ADD target/Spring-docker.jar Spring-docker.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","Spring-docker.jar"]
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
创建任务定义。 | 在亚马逊上运行 Docker 容器ECS需要任务定义。打开 Amazon ECS 控制台 https://console.aws.amazon.com/ecs/ | AWS系统管理员、应用程序开发者 |
选择启动类型。 | 选择 Fargate 作为启动类型。 | AWS系统管理员、应用程序开发者 |
配置任务。 | 定义任务名称并使用适当数量的任务内存和配置应用程序CPU。 | AWS系统管理员、应用程序开发者 |
定义容器。 | 指定容器名称。对于映像,输入 Docker 站点名称、存储库名称和 Docker 映像的标签名称( | AWS系统管理员、应用程序开发者 |
创建任务。 | 任务和容器配置到位后,创建任务。有关详细说明,请查看相关资源部分的链接。 | AWS系统管理员、应用程序开发者 |
任务 | 描述 | 所需技能 |
---|---|---|
创建和配置集群。 | 选择仅限网络作为集群类型,配置名称,然后创建集群或使用现有集群(如果有)。有关更多信息,请参阅 Amazon ECS 文档。 | AWS系统管理员、应用程序开发者 |
任务 | 描述 | 所需技能 |
---|---|---|
创建 任务。 | 在集群中,选择运行新任务。 | AWS系统管理员、应用程序开发者 |
选择启动类型。 | 选择 Fargate 作为启动类型。 | AWS系统管理员、应用程序开发者 |
选择任务定义、修订版和平台版本。 | 选择要运行的任务,然后选择任务定义的修订版和平台版本。 | AWS系统管理员、应用程序开发者 |
选择 集群。 | 选择要在其中运行任务的集群。 | AWS系统管理员、应用程序开发者 |
指定任务数量。 | 配置应运行的任务数。如果您启动时有两个或更多任务,则需要负载均衡器在这些任务中分发流量。 | AWS系统管理员、应用程序开发者 |
指定任务组。 | (可选)指定任务组名称以将一组相关任务标识为任务组。 | AWS系统管理员、应用程序开发者 |
配置集群VPC、子网和安全组。 | 配置要在其上部署应用程序的集群VPC和子网。创建或更新安全组(HTTPHTTPS、和端口 8080)以提供对入站和出站连接的访问权限。 | AWS系统管理员、应用程序开发者 |
配置公有 IP 设置。 | 启用或禁用公有 IP,具体取决于您是否要使用公有 IP 地址执行 Fargate 任务。推荐的默认选项为启用。 | AWS系统管理员、应用程序开发者 |
查看设置并创建任务 | 查看设置,然后选择运行任务。 | AWS系统管理员、应用程序开发者 |
任务 | 描述 | 所需技能 |
---|---|---|
复制应用程序URL。 | 当任务状态更新为正在运行时,选择该任务。在“网络”部分中,复制公有 IP。 | AWS系统管理员、应用程序开发者 |
测试您的应用程序。 | 在浏览器中,输入公有 IP 以测试应用程序。 | AWS系统管理员、应用程序开发者 |
相关资源
亚马逊 Docker 基础知识ECS(亚马逊ECS文档)
AWSFargate ECS 上的亚马逊(亚马逊ECS文档)
创建任务定义(Amazon ECS 文档)
创建集群(亚马逊ECS文档)
配置基本服务参数(Amazon ECS 文档)
配置网络(Amazon ECS 文档)
在@@ 亚马逊上部署 Java 微服务 ECS
(博客文章)