选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

ECS使用亚马逊ECR和 AWS Fargate 在亚马逊上部署 Java 微服务 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

ECS使用亚马逊ECR和 AWS Fargate 在亚马逊上部署 Java 微服务

由 Vijay Thompson (AWS) 和 Sandeep Bondugula () 创作 AWS

摘要

此模式将指导您完成在亚马逊弹性容器服务 (Amazon) 中将 Java 微服务部署为容器化应用程序的步骤。ECS该模式还使用亚马逊弹性容器注册表 (亚马逊ECR) 来管理您的容器,并使用 AWS Fargate 来运行您的容器。

先决条件和限制

先决条件

  • 在本地 Docker 上运行的现有 Java 微服务应用程序

  • 一个活跃的AWS账户

  • 熟悉亚马逊ECR、亚马ECS逊、Far AWS gate AWS 和命令行界面 () AWS CLI

  • 熟悉 Java 和 Docker 软件

产品版本

  • AWSCLI版本 1.7 或更高版本

架构

源技术堆栈

  • (例如,使用 Spring Boot 开发的)和在本地部署的 Java 微服务

  • Docker

源架构

用于在亚马逊上部署 Java 微服务的源架构 ECS

目标技术堆栈

  • Amazon ECR

  • Amazon ECS

  • AWS Fargate

目标架构

用于在亚马逊上部署 Java 微服务的目标架构 ECS

工具

工具

  • Amazon Elastic Container Registry (AmazonECR) 是一个完全托管的注册表,可让开发人员轻松存储、管理和部署 Docker 容器镜像。亚马逊ECR已与亚马逊集成ECS,以简化您的 development-to-production工作流程。Amazon 将您的映像ECR托管在高度可用且可扩展的架构中,因此您可以可靠地为应用程序部署容器。与 Ident AWS ity and Access Management (IAM) 的集成提供了对每个存储库的资源级控制。

  • Amazon 弹性容器服务 (AmazonECS) 是一项高度可扩展、高性能的容器编排服务,它支持 Docker 容器,并允许您轻松地在其上运行和扩展容器化应用程序。AWSAmazon 使您ECS无需安装和操作自己的容器编排软件、管理和扩展虚拟机集群或在这些虚拟机上调度容器。

  • AWSFargat e 是一款适用于 Amazon 的计算引擎ECS,它允许您运行容器,而无需管理服务器或集群。有了 AWS Fargate,您无需再为运行容器而预置、配置和扩展虚拟机集群。这样一来,您就无需再选择服务器类型、确定扩展集群的时间和优化集群打包。

  • Docker 是一个平台,允许您在名为容器的包中构建、测试和交付应用程序。

代码

以下内容 DockerFile 指定了所使用的 Java 开发套件 (JDK) 版本、Java archive (JAR) 文件所在的版本、公开的端口号以及应用程序的入口点。

FROM openjdk:8 ADD target/Spring-docker.jar Spring-docker.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","Spring-docker.jar"]

操作说明

任务描述所需技能

创建存储库。

登录AWS管理控制台,然后在https://console.aws.amazon.com/ecr/存储库中打开 Amazon ECR 控制台。创建私有存储库。有关说明,请参阅 Amazon ECR 文档中的创建私有存储库

开发人员、系统管理员

上传项目。

打开存储库并选择查看推送命令。然后按照显示的步骤上传项目。(这些步骤仅在您使用 1.7 或更高AWSCLI版本时才起作用。) 上传完成后,将版本URL的版本复制到存储库中。当你在 Amazon 中创建容器URL时,你将使用它ECS。

开发人员、系统管理员

创建亚马逊ECR存储库

任务描述所需技能

创建存储库。

登录AWS管理控制台,然后在https://console.aws.amazon.com/ecr/存储库中打开 Amazon ECR 控制台。创建私有存储库。有关说明,请参阅 Amazon ECR 文档中的创建私有存储库

开发人员、系统管理员

上传项目。

打开存储库并选择查看推送命令。然后按照显示的步骤上传项目。(这些步骤仅在您使用 1.7 或更高AWSCLI版本时才起作用。) 上传完成后,将版本URL的版本复制到存储库中。当你在 Amazon 中创建容器URL时,你将使用它ECS。

开发人员、系统管理员
任务描述所需技能

创建任务定义。

在亚马逊上运行 Docker 容器ECS需要任务定义。打开 Amazon ECS 控制台 https://console.aws.amazon.com/ecs/,选择任务定义,然后创建新的任务定义。有关更多信息,请参阅 Amazon ECS 文档中的创建任务定义

开发人员、系统管理员

请选择启动类型。

选择 Fargate 作为启动类型。

开发人员、系统管理员

配置任务。

定义任务名称并使用适当数量的任务内存和配置应用程序CPU。

开发人员、系统管理员

定义容器。

添加容器,提供名称、Amazon ECR 存储库URL的名称、内存限制和端口映射。已针对端口映射配置了端口 8080 和 80。根据您的应用程序要求配置其余设置。

开发人员、系统管理员

创建任务。

任务和容器配置到位后,创建任务。有关详细说明,请查看相关资源部分的链接。

开发人员、系统管理员

创建并启动容器

任务描述所需技能

创建任务定义。

在亚马逊上运行 Docker 容器ECS需要任务定义。打开 Amazon ECS 控制台 https://console.aws.amazon.com/ecs/,选择任务定义,然后创建新的任务定义。有关更多信息,请参阅 Amazon ECS 文档中的创建任务定义

开发人员、系统管理员

请选择启动类型。

选择 Fargate 作为启动类型。

开发人员、系统管理员

配置任务。

定义任务名称并使用适当数量的任务内存和配置应用程序CPU。

开发人员、系统管理员

定义容器。

添加容器,提供名称、Amazon ECR 存储库URL的名称、内存限制和端口映射。已针对端口映射配置了端口 8080 和 80。根据您的应用程序要求配置其余设置。

开发人员、系统管理员

创建任务。

任务和容器配置到位后,创建任务。有关详细说明,请查看相关资源部分的链接。

开发人员、系统管理员
任务描述所需技能

创建或选择集群。

Amazon ECS 集群提供任务或服务的逻辑分组。您可以选择使用现有集群或创建新集群。如果您决定创建新集群,请根据您的要求选择集群类型。在我们的示例中,我们选择了一个网络集群。为集群提供一个名称,然后选择是否要创建新的虚拟私有云 (VPC) 以用于 Fargate 任务。

开发人员、系统管理员

创建服务。

在集群内部,选择创建服务

开发人员、系统管理员

请选择启动类型。

选择 Fargate 作为启动类型。

开发人员、系统管理员

选择任务定义、修订版和平台版本。

选择要运行的任务,然后选择任务定义的修订版和平台版本。

开发人员、系统管理员

选择 集群。

从下拉列表中选择要在其中创建服务的集群。

开发人员、系统管理员

提供服务名称。

为您正在创建的服务提供唯一名称。

开发人员、系统管理员

指定任务数量。

配置服务启动时应运行的任务数。如果您启动时有两个或更多任务,则需要负载均衡器来平衡这些任务。要配置的最小任务数为 1

开发人员、系统管理员

设置最小和最大运行状况正常百分比。

为应用程序配置最小和最大运行状况正常百分比,或者接受提供的默认选项。

开发人员、系统管理员

配置部署设置。

根据要求选择部署类型。您可以选择滚动更新或蓝绿部署。

开发人员、系统管理员

配置集群VPC、子网和安全组。

配置集群VPC、要在其上部署应用程序的子网以及用于提供入站/出站连接访问权限的安全组(HTTPHTTPS、和端口 8080)。

开发人员、系统管理员

配置公有 IP 设置。

启用或禁用公有 IP,具体取决于您是否要使用公有 IP 地址执行 Fargate 任务。

开发人员、系统管理员

配置负载均衡。

如果您使用多个任务启动服务,请配置负载均衡器。在启动该服务之前,您必须创建负载均衡器及其目标组。

开发人员、系统管理员

配置自动扩缩。

将您的服务配置为使用 Amazon S ECS ervice Auto Scaling 根据您的要求向上或向下调整所需的任务数量。

开发人员、系统管理员

检查设置,然后创建服务。

检查服务设置,然后选择创建服务

开发人员、系统管理员

创建 Amazon ECS 集群并配置服务

任务描述所需技能

创建或选择集群。

Amazon ECS 集群提供任务或服务的逻辑分组。您可以选择使用现有集群或创建新集群。如果您决定创建新集群,请根据您的要求选择集群类型。在我们的示例中,我们选择了一个网络集群。为集群提供一个名称,然后选择是否要创建新的虚拟私有云 (VPC) 以用于 Fargate 任务。

开发人员、系统管理员

创建服务。

在集群内部,选择创建服务

开发人员、系统管理员

请选择启动类型。

选择 Fargate 作为启动类型。

开发人员、系统管理员

选择任务定义、修订版和平台版本。

选择要运行的任务,然后选择任务定义的修订版和平台版本。

开发人员、系统管理员

选择 集群。

从下拉列表中选择要在其中创建服务的集群。

开发人员、系统管理员

提供服务名称。

为您正在创建的服务提供唯一名称。

开发人员、系统管理员

指定任务数量。

配置服务启动时应运行的任务数。如果您启动时有两个或更多任务,则需要负载均衡器来平衡这些任务。要配置的最小任务数为 1

开发人员、系统管理员

设置最小和最大运行状况正常百分比。

为应用程序配置最小和最大运行状况正常百分比,或者接受提供的默认选项。

开发人员、系统管理员

配置部署设置。

根据要求选择部署类型。您可以选择滚动更新或蓝绿部署。

开发人员、系统管理员

配置集群VPC、子网和安全组。

配置集群VPC、要在其上部署应用程序的子网以及用于提供入站/出站连接访问权限的安全组(HTTPHTTPS、和端口 8080)。

开发人员、系统管理员

配置公有 IP 设置。

启用或禁用公有 IP,具体取决于您是否要使用公有 IP 地址执行 Fargate 任务。

开发人员、系统管理员

配置负载均衡。

如果您使用多个任务启动服务,请配置负载均衡器。在启动该服务之前,您必须创建负载均衡器及其目标组。

开发人员、系统管理员

配置自动扩缩。

将您的服务配置为使用 Amazon S ECS ervice Auto Scaling 根据您的要求向上或向下调整所需的任务数量。

开发人员、系统管理员

检查设置,然后创建服务。

检查服务设置,然后选择创建服务

开发人员、系统管理员
任务描述所需技能

测试您的应用程序。

使用部署任务时创建DNS的公共数据库来测试应用程序。如果应用程序有负载均衡器,请使用它来测试应用程序,然后割接。

开发人员、系统管理员

割接

任务描述所需技能

测试您的应用程序。

使用部署任务时创建DNS的公共数据库来测试应用程序。如果应用程序有负载均衡器,请使用它来测试应用程序,然后割接。

开发人员、系统管理员

相关资源

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。