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

开始使用 Elastic Beanstalk

以下任务将帮助您开始使用 AWS Elastic Beanstalk 来创建、查看、部署和更新您的应用程序,以及编辑和终止您的环境。您将使用 AWS 管理控制台 (一种基于 Web 的点击式界面) 来完成这些任务。

步骤 1:注册服务

如果您还不是 AWS 客户,则需要注册。注册之后,您将能够访问 Elastic Beanstalk 以及您可能需要的其他 AWS 服务,如 Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Simple Storage Service (Amazon S3) 和 Amazon Simple Notification Service (Amazon SNS)。

如需注册 AWS 账户

  1. 打开 Elastic Beanstalk 控制台

  2. 按照所示说明进行操作。

步骤 2:创建应用程序

下一步,您将创建和部署一个示例应用程序。在这一步,您将使用一个已经准备好的示例应用程序。

Elastic Beanstalk 可免费使用,但它提供的 AWS 资源将是激活的 (且不在沙盒中运行)。您将为这些资源支付标准使用费,直到您在本教程的最后一项任务中终止这些资源为止。总费用是按最低程度收取的 (一般少于一美元)。有关如何最大限度地降低费用的信息,请参阅 AWS 免费套餐

创建示例应用程序

  1. 使用以下预配置的链接打开 Elastic Beanstalk 控制台:https://console.amazonaws.cn/elasticbeanstalk/home#/gettingStarted?applicationName=getting-started-app

  2. 选择平台,然后选择创建应用程序

    
              新建环境向导

为了对 AWS 资源运行示例应用程序,Elastic Beanstalk 将执行以下操作。这些操作需要约 5 分钟的时间完成:

  • 创建一个名为 getting-started-app 的 Elastic Beanstalk 应用程序。

  • 使用以下 AWS 资源启动一个名为 GettingStartedApp-env 的环境:

    • EC2 实例 – 配置来在您选择的平台上运行 Web 应用程序的 Amazon Elastic Compute Cloud (Amazon EC2) 虚拟机。

      各平台运行一组不同的软件、配置文件和脚本以支持特定的语言版本、框架、Web 容器或其组合。大多数平台使用 Apache 或 nginx 作为 Web 应用程序前的反向代理,向其转发请求、提供静态资产以及生成访问和错误日志。

    • 实例安全组 – 配置来允许通过端口 80 访问的 Amazon EC2 安全组。通过此资源,HTTP 流量可以从负载均衡器到达运行您的 Web 应用程序的 EC2 实例。默认情况下,其他端口不允许流量进入。

    • Amazon S3 存储桶 – 使用 Elastic Beanstalk 时创建的源代码、日志和其他项目的存储位置。

    • Amazon CloudWatch 警报 – 用于监控环境实例负载的两个 CloudWatch 警报,在负载过高或过低时触发。警报触发后,您的 Auto Scaling 组会扩展或收缩进行响应。

    • AWS CloudFormation 堆栈 – Elastic Beanstalk 使用 AWS CloudFormation 启动您的环境中的资源并传播配置更改。这些资源在您可通过 AWS CloudFormation 控制台查看的模板中定义。

    • 域名 – 一个域名,它以下面的形式路由到您的 Web 应用程序:subdomain.region.elasticbeanstalk.com

  • 创建名为示例应用程序的新应用程序版本,其引用默认 Elastic Beanstalk 示例应用程序文件。

  • 将示例应用程序代码部署到 GettingStartedApp-env

在创建环境过程中,控制台将跟踪其进度并显示事件,如下所示。


        显示环境创建事件输出的控制台。

当所有资源完成启动并且运行应用程序的 EC2 实例通过运行状况检查后,环境的运行状况将变为 Ok,并且网站将可供使用。

步骤 3:查看有关环境的信息

创建 Elastic Beanstalk 应用程序之后,您可以进入 AWS 管理控制台中的环境控制面板,查看有关您部署的应用程序及其预配置资源的信息。控制面板显示应用程序环境的运行状况、正在运行的版本和环境配置。

当 Elastic Beanstalk 创建您的 AWS 资源并启动您的应用程序时,环境将处于 Pending 状态。有关启动事件的状态消息会显示在环境的仪表板中。

如果您当前未查看控制面板,请立即返回控制面板。

查看控制面板

  1. 打开 Elastic Beanstalk 控制台

  2. 选择 GettingStartedApp-env

    
            显示应用程序和环境列表的 Elastic Beanstalk 控制台。

控制面板显示一些有关环境的有用信息这包括其 URL,其当前运行状况、当前部署的应用程序版本的名称、其最近的 5 个事件以及应用程序运行于的平台配置。


        环境控制面板。

在控制面板的右上角,在操作菜单旁边,您可以找到环境的 URL。这是环境运行的 Web 应用程序的 URL。选择此 URL 以转到应用程序的配置 页面。

控制台的左侧有一个导航窗格,该导航窗格链接到其他页面,这些页面包含有关环境的更多详细信息并提供对附加功能的访问。浏览以下页面以查看环境的当前状态:

  • 配置页面显示为此环境预配置的资源(如托管应用程序的 Amazon EC2 实例)。此页面还可让您配置某些已提供的资源。

  • 运行状况页面显示有关运行应用程序的 EC2 实例的状态和详细运行状况信息。

  • 监控页面显示环境的统计数据(如平均延迟和 CPU 使用率)。您也可使用此页面为所监控的指标创建警报。

  • 事件页面显示来自此环境使用的服务的任何信息性消息或错误消息。

  • 标签页面显示标签,即应用于环境中的资源的键值对。您可以使用此页面来管理您的环境的标签。

步骤 4:部署新应用程序版本

您可以随时部署新版本的应用程序,前提是当前在环境中没有进行其他更新操作。

您现在正在运行的应用程序版本标签为示例应用程序

更新您的应用程序版本

  1. 下载与您的环境的配置匹配的以下示例应用程序之一:

  2. 打开 Elastic Beanstalk 控制台

  3. 在 Elastic Beanstalk 应用程序页面上,选择 getting-started-app,然后选择 GettingStartedApp-env

  4. 概述部分中,选择上传和部署

  5. 选择选择文件并上传您已下载的示例源包。

  6. 控制台会根据上传的存档的名称来自动填充版本标签。在将来部署时,如果您使用同名的源包,则必须键入唯一的版本标签。

  7. 选择 Deploy

Elastic Beanstalk 现已将您的文件部署到 Amazon EC2 实例。您可以在环境的控制面板上查看部署的状态。应用程序版本更新时,环境运行状况状态会变为灰色。完成部署后,Elastic Beanstalk 将执行应用程序运行状况检查。当应用程序对运行状况检查进行响应时,状态会变回绿色。环境控制面板会将新的运行版本显示为示例应用程序第二版本(或您作为版本标签提供的任何版本)。

您的新应用程序版本也会上传并添加到应用程序版本表。要查看该表,请选择我的第一个 Elastic Beanstalk 应用程序,然后选择应用程序版本

第 5 步:更改配置

您可以自定义环境,使其更适合您的应用程序。例如,如果您的应用程序需要进行大量计算,那么您可以更改要运行您的应用程序的 Amazon EC2 实例类型。

有一些配置更改很简单,而且会即刻生效。而有些改则需要 Elastic Beanstalk 删除 AWS 资源后再重新创建,这可能需要几分钟时间。更改配置设置时,Elastic Beanstalk 将提醒您应用程序可能会停机。

在此任务中,您将编辑环境的容量设置。您配置负载均衡的自动扩展环境 (该环境在其 Auto Scaling 组中有 2 到 4 个实例),然后验证是否已发生更改。已创建 2 个 Amazon EC2 实例,并且这 2 个实例已与环境的负载均衡器关联。这些实例将替代 Elastic Beanstalk 最初创建的单个实例。

更改环境配置

  1. 打开 Elastic Beanstalk 控制台

  2. 导航到您的环境的管理页

  3. 选择 Configuration

  4. 容量配置卡上,选择修改

  5. Auto Scaling 组部分中,将环境类型更改为负载均衡

  6. 实例行上,将最大更改为 4,然后将最小更改为 2

  7. 修改容量页面底部,选择保存

  8. 配置概述页面底部,选择应用

  9. 这将显示一条警告。该警告告知您迁移操作将替换您当前的所有实例。选择 Confirm

环境更新可能需要几分钟的时间。环境准备就绪后,您可以转到下一个任务以验证您的更改。

验证负载均衡器已进行更改

  1. 在导航窗格中,选择 Events

    您将在事件列表中看到事件已将新部署成功部署到环境。这确认最小 Auto Scaling 实例数已设置为 2。第二个实例会自动启动。

  2. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  3. 在导航窗格中的 LOAD BALANCING 下,选择 Load Balancers

  4. 重复接下来的两个步骤,直至您识别出具有所需实例名称的负载均衡器为止。

  5. 在负载均衡器列表中选择一个负载均衡器。

  6. 选择负载均衡器: <负载均衡器名称> 窗格中的实例选项卡,然后查看实例表中的名称

    
            负载均衡器窗格

    该信息表明两个实例已关联到该负载均衡器,从而反映了 EC2 实例的增加。

步骤 6:清除

祝贺您! 您已成功地将示例应用程序部署到云、上传了新版本并修改了配置以添加第二个 Auto Scaling 实例。要确保不会为任何不需要的服务付费,请从 Elastic Beanstalk 和 AWS 服务中删除所有不需要的应用程序和环境。

完全删除应用程序

  1. 删除所有应用程序版本。

    1. 打开 Elastic Beanstalk 控制台

    2. 在 Elastic Beanstalk 应用程序页面上,选择 getting-started-app 应用程序。

    3. 在导航窗格上,选择应用程序版本

    4. 应用程序版本页上,选择要删除的所有应用程序版本,然后选择删除

    5. 确认要删除的版本,然后选择删除

    6. 选择完成

  2. 终止环境。

    1. 要返回环境控制面板,请单击 getting-started-app,然后单击 GettingStartedApp-env

    2. 选择操作,然后选择终止环境

    3. 确认您要终止 GettingStartedApp-env,然后选择终止

  3. 删除 getting-started-app Elastic Beanstalk 应用程序。

    1. 选择左上角的 Elastic Beanstalk 返回主控制面板。

    2. 在 Elastic Beanstalk 应用程序页面上,为 getting-started-app 应用程序选择操作,然后选择删除应用程序

    3. 通过选择删除确认您要删除此 Elastic Beanstalk 应用程序。

后续工作

现在,您已了解 Elastic Beanstalk 以及如何访问它,建议您阅读 AWS Elastic Beanstalk 概念。本主题提供了有关 Elastic Beanstalk 组件、架构和 Elastic Beanstalk 应用程序的重要设计注意事项的信息。

除了 AWS 管理控制台之外,您还可使用以下工具创建和管理 Elastic Beanstalk 环境。

EB CLI

EB CLI 是用于创建和管理环境的命令行工具。有关更多信息,请参阅 Elastic Beanstalk 命令行界面 (EB CLI)

AWS SDK for Java

适用于 Java 的 AWS 开发工具包提供了一个 Java API,您可以用这个 Java API 构建可使用 AWS 基础设施服务的应用程序。凭借AWS SDK for Java,您可以通过单个可下载的包 (其中包含 AWS Java 库、代码示例和文档) 在几分钟内即可开始使用。

AWS SDK for Java 要求使用 J2SE Development Kit 5.0 或更高版本。您可以从 http://developers.sun.com/downloads/ 下载最新的 Java 软件。该开发工具包还要求有 Apache Commons (Codec、HTTPClient 和 Logging),以及 Saxon-HE 第三方包,这个第三方包位于该开发工具包的第三方目录下。

有关更多信息,请参阅适用于 Java 的 AWS 开发工具包

AWS Toolkit for Eclipse

借助 AWS Toolkit for Eclipse 插件,您可以创建新的 AWS Java Web 项目(预配置有AWS SDK for Java),然后您可以将 Web 应用程序部署至 Elastic Beanstalk。Elastic Beanstalk 插件构建在 Eclipse Web Tools Platform (WTP) 之上。该工具包提供了 Travel Log 示例 Web 应用程序模板,该模板演示如何使用 Amazon S3 和 Amazon SNS。

为确保您拥有全部 WTP 依赖项,建议您从 Eclipse 的 Java EE 版本开始,您可从 http://eclipse.org/downloads/ 下载这个版本。

有关使用适用于 Eclipse 的 Elastic Beanstalk 插件的更多信息,请参阅 AWS Toolkit for Eclipse。要开始使用 Eclipse 创建 Elastic Beanstalk 应用程序,请参阅在 AWS Elastic Beanstalk 上创建和部署 Java 应用程序

适用于 .NET 的 AWS 开发工具包

适用于 .NET 的 AWS 开发工具包可让您构建各种使用 AWS 基础设施服务的应用程序。凭借适用于 .NET 的 AWS 开发工具包,您可以通过单个可下载的包 (其中包含 AWS .NET 库、代码示例和文档) 在几分钟内即可开始使用。

有关更多信息,请参阅适用于 .NET 的 AWS 开发工具包。有关支持的 .NET Framework 和 Visual Studio 版本,请参阅 适用于 .NET 的 AWS 开发工具包 开发人员指南

AWS Toolkit for Visual Studio

使用 AWS Toolkit for Visual Studio 插件,您可以将现有的 .NET 应用程序部署到 Elastic Beanstalk。AWS 模板中预配置了适用于 .NET 的 AWS 开发工具包,您也可以使用这些模板创建新的项目。有关前提条件和安装信息,请参阅 AWS Toolkit for Visual Studio。要开始使用 Visual Studio 创建 Elastic Beanstalk 应用程序,请参阅使用 AWS Toolkit for Visual Studio 在 .NET 中创建和部署 Elastic Beanstalk 应用程序

AWS SDK for JavaScript in Node.js

AWS SDK for JavaScript in Node.js可让您在 AWS 基础设施服务之上构建应用程序。凭借AWS SDK for JavaScript in Node.js,您可以通过单个可下载的包 (其中包含 AWS Node.js 库、代码示例和文档) 在几分钟内即可开始使用。

有关更多信息,请参阅 Node.js 中的适用于 JavaScript 的 AWS 开发工具包

适用于 PHP 的 AWS 开发工具包

适用于 PHP 的 AWS 开发工具包可让您在 AWS 基础设施服务之上构建应用程序。凭借适用于 PHP 的 AWS 开发工具包,您可以通过单个可下载的包 (其中包含 AWS PHP 库、代码示例和文档) 在几分钟内即可开始使用。

适用于 PHP 的 AWS 开发工具包 需要 PHP 5.2 或更高版本。有关下载详细信息,请参阅 http://php.net/

有关更多信息,请参阅适用于 PHP 的 AWS 开发工具包

AWS SDK for Python (Boto)

凭借AWS SDK for Python (Boto),您可以通过单个可下载的包 (其中包含 AWS Python 库、代码示例和文档) 在几分钟内即可开始使用。您可以在 API 之上构建 Python 应用程序,从而免去了直接对 Web 服务接口编写代码的麻烦。这个一体式库提供了对 Python 开发人员友好的 API,隐藏了与 AWS 云编程相关联的大部分较低层次任务,包括身份验证、请求重试和错误处理。对于如何使用该库构建应用程序,该开发工具包提供了用 Python 编写的实用示例。有关 Boto、示例代码、文档、工具和其他资源的信息,请参阅 Python 开发者中心

适用于 Ruby 的 AWS 开发工具包

您可在几分钟内开始使用可下载的“一站式”包,其中包含 AWS Ruby 库、代码示例和文档。您可以在 API 的顶层构建 Ruby 应用程序,从而免去了直接对照 Web 服务界面编码的麻烦。这个一体式库提供了对 Ruby 开发人员友好的 API,隐藏了与 AWS 云编程相关联的大部分较低层次任务,包括身份验证、请求重试和错误处理。对于如何使用该库构建应用程序,该开发工具包提供了用 Ruby 编写的实用示例。有关开发工具包、示例代码、文档、工具和其他资源的信息,请参阅 Ruby 开发人员中心