1. 简介

Amazon Web Services (AWS) 包含一百多种服务,每项服务都针对一个功能领域。服务的多样性可让您灵活地管理 AWS 基础设施,然而,判断应使用哪些服务以及如何进行预配置可能会非常困难。

通过 Elastic Beanstalk,可以在 AWS 云中快速部署和管理应用程序,而不必了解运行这些应用程序的基础设施。Elastic Beanstalk 可减少管理复杂性,而不会限制选择或控制权。您只需上传应用程序,Elastic Beanstalk 将自动处理有关容量预配置、负载均衡、扩展和应用程序运行状况监控的部署细节。

Elastic Beanstalk 支持在 Go、Java、.NET、Node.js、PHP、Python 和 Ruby 中开发的应用程序。当您部署应用程序时,Elastic Beanstalk 构建选定的受支持的平台版本并预置一个或多个 AWS 资源(如 Amazon EC2 实例)来运行您的应用程序。

要使用 Elastic Beanstalk,您需创建一个应用程序,将应用程序版本以应用程序源捆绑的形式(如 Java .war 文件)上传到 Elastic Beanstalk,然后提供一些有关该应用程序的信息。Elastic Beanstalk 会自动启动环境,然后创建并配置运行代码所需的 AWS 资源。启动环境后,您即可管理环境并部署新应用程序版本。下图说明了 Elastic Beanstalk 的工作流程。
Elastic Beanstalk - 图1
Elastic Beanstalk 没有额外费用。您只需为应用程序使用的基础 AWS 资源付费。

2. 在 Elastic Beanstalk 上创建和部署 Java 应用程序

AWS Elastic Beanstalk 支持适用于 Java 应用程序的两个平台。

  • Tomcat – 基于 Apache Tomcat 的平台,是一种开源 Web 容器,适用于使用 Java servlet 和 JavaServer 页面 (JSP) 处理 HTTP 请求的应用程序。
  • Java SE – 面向不使用 Web 容器或使用非 Tomcat 容器(如 Jetty 或 GlassFish)的应用程序提供的平台。


2.1 开始在 Elastic Beanstalk 上使用 Java

2.1.1 使用示例 Java 应用程序启动环境

  • Elastic Beanstalk 为每个平台提供单一页面示例应用程序(index.jsp)和较复杂的示例,后者显示 Amazon RDS 等额外 AWS 资源的使用以及特定语言或平台的功能和 API。


  • 步骤:
    • 打开 Elastic Beanstalk 控制台,然后在 Regions (区域) 列表中选择您的 AWS 区域。
    • 在导航窗格中,选择应用程序,然后在列表中选择现有应用程序的名称或创建一个。
    • 在应用程序概述页面上,选择 Create a new environment (创建新环境)。Elastic Beanstalk - 图2
    • 选择 Web server environment (Web 服务器环境)或 Worker environment (工作线程环境) 环境层。环境的层创建后无法更改。Elastic Beanstalk - 图3
    • 对于平台,选择与应用程序使用的语言匹配的平台和平台分支(Tomcat 平台)。
    • 对于应用程序代码,选择示例应用程序
    • 要进一步自定义环境,请选择 Configure more options (配置更多选项)。只能在创建环境期间设置下列选项:
      • 环境名称
      • 域名
      • 平台版本
      • VPC
      • 套餐
    • 可在环境创建后更改下列设置,但它们需要配置新实例或其他资源并且应用更改可能需要很长的时间:
      • 实例类型、根卷、密钥对和 AWS Identity and Access Management (IAM) 角色
      • 内部 Amazon RDS 数据库
      • 负载均衡器


  • 以下是 Java 成功运行示例页面

image.png

2.1.2 更新部署新应用程序版本

  • 将新应用程序版本部署到 Elastic Beanstalk 环境
    • 打开 Elastic Beanstalk 控制台,然后在 Regions (区域) 列表中选择您的 AWS 区域。
    • 在导航窗格中,选择 Environments (环境),然后从列表中选择环境的名称。
    • 选择 Upload and deploy (上传和部署)。image.png
    • 使用屏幕上的表单上传应用程序源代码包。image.png
    • 选择 Deploy。image.png
  • 部署新应用程序版本非常快,因为不需要配置或重新启动 EC2 实例。image.png