AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

开始在 Elastic Beanstalk 上使用 Java

要开始在 AWS Elastic Beanstalk 上使用 Java 应用程序,您只需一个应用程序源包,将其作为第一个应用程序版本上传并部署到环境中。当您创建环境时,Elastic Beanstalk 会分配运行可扩展 Web 应用程序所需的所有 AWS 资源。

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

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

单一页面示例是您在创建环境时获得的相同代码,无需提供您自身的源代码。较复杂的示例在 GitHub 上托管,可能需要汇编或构建,之后方可部署到 Elastic Beanstalk 环境。

示例

名称

支持的配置

环境类型

描述

Tomcat 默认值

使用 Java 8 的 Tomcat 8

使用 Java 7 的 Tomcat 7

使用 Java 6 的 Tomcat 7

Web 服务器

工作线程

java-tomcat-v1_cn.zip

配置为仅在网站根目录中显示一个页面 (index.jsp) 的 Tomcat Web 应用程序。

对于工作线程环境,此示例包含一个 cron.yaml 文件,该文件配置一个每分钟调用一次 scheduled.jsp 的计划任务。调用 scheduled.jsp 时,它会写入 /tmp/sample-app.log 处的日志文件。最后,.ebextensions 中包含一个配置文件,它在您请求环境日志时将日志从 /tmp/ 复制到由 Elastic Beanstalk 读取的位置。

如果您在运行此示例的环境中启用了 X-Ray 集成,则应用程序会显示有关 X-Ray 的更多内容,并提供用于生成调试信息(可在 X-Ray 控制台中查看)的选项。

Java SE 默认值

Java 8

Java 7

Web 服务器

java-se-jetty-gradle-v3.zip

使用 BuildfileProcfile 配置文件的 Jetty SE 应用程序。此示例中的 Buildfile 运行 Gradle 命令在实例上生成应用程序源文件。

如果您在运行此示例的环境中启用了 X-Ray 集成,则应用程序会显示有关 X-Ray 的更多内容,并提供用于生成调试信息(可在 X-Ray 控制台中查看)的选项。

Scorekeep

Java 8 Web 服务器 克隆 GitHub.com 的报告

Scorekeep 是一种 RESTful Web API,它借助 Spring 框架提供用于创建和管理用户、会话及游戏的接口。此 API 与通过 HTTP 使用它的 Angular 1.5 Web 应用程序捆绑在一起。

应用程序使用 Java SE 平台的功能下载依赖项和用作构建基础的实例,从而最小化源包的大小。此外,应用程序还包含覆盖默认配置的 nginx 配置文件,以通过代理在端口 80 上静态地为前端 Web 应用程序提供服务,并将针对 /api 下路径的请求路由到在 localhost:5000 上运行的 API。

Scorekeep 还包含一个 xray 分支,它演示了使用 AWS X-Ray 检测 Java 应用程序的方法。它演示了使用 servlet 筛选条件进行传入 HTTP 请求检测、自动和手动 AWS 软件开发工具包客户端检测、记录器配置以及传出 HTTP 请求和 SQL 客户端的检测方法。

请参阅自述文件获取说明,或跟随 AWS X-Ray 入门教程演练用 X-Ray 检测应用程序的过程。

是否有 Snake?

使用 Java 8 的 Tomcat 8 Web 服务器 克隆 GitHub.com 的报告

是否有 Snake?是 Tomcat Web 应用程序,显示 Elastic Beanstalk 配置文件、Amazon RDS、JDBC、PostgreSQL、Servlets、JSPs、Simple Tag Support、Tag Files、Log4J、Bootstrap 和 Jackson 的使用。

此项目的源代码包括最低要求构建脚本,后者将小服务程序和模型汇编入类文件,并将所需文件封装入您可部署至 Elastic Beanstalk 环境的 Web 存档。请参阅项目存储库中的自述文件,浏览完整说明。

Locust Load Generator

Java 8

Web 服务器

克隆 GitHub.com 的报告

您可用于对不同 Elastic Beanstalk 环境中运行的另一个 Web 应用程序进行负载测试的 Web 应用程序。显示 BuildfileProcfile 文件、DynamoDB 以及 Locust(一种开放源负载测试工具)的使用。

按照这些步骤操作,下载任意示例应用程序并将其部署到 Elastic Beanstalk:

使用示例应用程序启动环境 (控制台)

  1. 打开 Elastic Beanstalk 控制台

  2. 选择应用程序或创建新应用程序

  3. 从右上角的操作菜单中,选择创建环境

  4. 选择 Web 服务器环境工作线程环境环境层。环境的层创建后无法更改。

    注意

    Windows Server 平台上的 .NET 不支持工作线程环境层。

  5. 选择与您的应用程序使用的语言匹配的平台

    注意

    对于列出的大多数平台,Elastic Beanstalk 支持多个配置。默认情况下,控制台将选择 Elastic Beanstalk 支持的语言、Web 容器或框架的最新版本。如果您的应用程序需要较旧的版本,请选择配置更多选项,如下所述。

  6. 对于应用程序代码,选择示例应用程序

  7. 如果您要进一步自定义环境,请选择配置更多选项。下列选项只能在创建环境期间设置:

    • 环境名称

    • 域名

    • 平台配置

    • VPC

    • 套餐

    下列设置可在环境创建后更改,但需要配置新实例或其他资源并且应用更改可能需要很长的时间:

    • 实例类型、根卷、密钥对和 IAM 角色

    • 内部 Amazon RDS 数据库

    • 负载均衡器

    有关所有可用设置的详细信息,请参阅新建环境向导

  8. 选择 Create environment (创建环境)

后续步骤

有了运行应用程序的环境以后,您随时可以部署新的应用程序版本或完全不同的应用程序。部署新应用程序版本非常快,因为不需要配置或重新启动 EC2 实例。

在您部署了一两个示例应用程序并准备好开始在本地开发和运行 Java 应用程序以后,请参阅下一节以使用所有需要的工具和库设置 Java 开发环境。