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

开始使用 Eb

注意

该版本的 EB CLI 及其文档已替换成版本 3 (在本部分中,EB CLI 3 表示 EB CLI 的版本 3 及更高版本)。有关新版本的信息,请参阅 Elastic Beanstalk 命令行界面 (EB CLI)

Eb 是一个命令行界面 (CLI) 工具,该工具将向您提出一系列问题并通过您的答案部署和管理 Elastic Beanstalk 应用程序。本部分提供了使用 eb 启动、查看、更新和删除示例应用程序的端对端演示。

若要完成此演练,需要在 AWS 示例代码和库网站下载命令行工具。有关适用于更高级内容的完整 CLI 参考,请参阅 操作。有关如何开始的说明,请参阅 开始设置

步骤 1:初始化 Git 存储库

Eb 是一个命令行接口,您可以将其与 Git 结合使用以快速且更轻松地部署应用程序。Eb 作为 Elastic Beanstalk 命令行工具包的一部分提供。请按照以下步骤安装 eb 并初始化 Git 存储库。

安装 eb、其必备的软件并初始化 Git 存储库

  1. 在您的本地计算机上安装以下软件:

    1. Linux/Unix/Mac

    2. Windows

  2. 初始化您的 Git 存储库。

    git init .

步骤 2:配置 Elastic Beanstalk

Elastic Beanstalk 需要以下信息部署应用程序:

  • AWS 访问密钥 ID

  • AWS 私有密钥

  • 服务区域

  • 应用程序名称

  • 环境名称

  • 解决方案堆栈

使用 init 命令时,Elastic Beanstalk 会提示您输入此信息。如果提供了默认值或当前设置,且您打算使用,请按 Enter

在使用 eb 之前,请将路径设置为 eb 的位置。下表显示了 Linux/UNIX 和 Windows 的示例。

在 Linux 和 UNIX 中 在 Windows 中
$ export PATH=$PATH:<path to unzipped eb CLI package>/eb/linux/python2.7/

如果您使用的是 Python 3.0,路径将包含 python3 而不是 python2.7

C:\> set PATH=%PATH%;<path to unzipped eb CLI package>\eb\windows\

配置 Elastic Beanstalk

注意

EB CLI 将您的凭证存储在名为 credentials 的文件中,该文件位于您的用户目录中名为 .aws 的文件夹中。

  1. 在创建本地存储库的目录中,键入下列命令:

    eb init
  2. 当系统提示您提供访问密钥 ID 时,键入您的访问密钥 ID。要获取访问密钥 ID,请参阅如何获取安全凭证? (在 AWS General Reference 中)。

    Enter your AWS Access Key ID (current value is "AKIAIOSFODNN7EXAMPLE"):
  3. 当系统提示您提供秘密访问密钥时,键入您的秘密访问密钥。要获取秘密访问密钥,请参阅如何获取安全凭证? (在 AWS General Reference 中)。

    Enter your AWS Secret Access Key (current value is "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"):
  4. 当系统提示您提供 Elastic Beanstalk 地区时,键入该地区的编号。有关此产品的地区信息,请转到 Amazon Web Services General Reference 内的“地区和终端节点”。在本示例中,我们将使用 US West (Oregon)

  5. 当系统提示您提供 Elastic Beanstalk 应用程序的名称时,键入该应用程序的名称。如果此前尚未配置应用程序名称,则 Elastic Beanstalk 会根据当前目录名称生成应用程序名称。在此示例中,我们使用的是 HelloWorld。

    Enter an AWS Elastic Beanstalk application name (auto-generated value is "windows"): HelloWorld

    注意

    如果应用程序名称中有一个空格,请确保不要使用引号。

  6. 当系统提示您提供 Elastic Beanstalk 环境的名称时,键入该环境的名称。Elastic Beanstalk 会自动根据应用程序名称创建环境名称。如果要接受默认设置,请按“Enter”。

    Enter an AWS Elastic Beanstalk environment name (current value is "HelloWorld-env"):

    注意

    如果应用程序名称中有空格,请确保环境名称中不包含空格。

  7. 在系统提示您时,请选择环境层。有关环境层的更多信息,请参阅 环境层。在本示例中,我们将使用 1

    Available environment tiers are: 1) WebServer::Standard::1.0 2) Worker::SQS/HTTP::1.0
  8. 当系统提示您提供解决方案堆栈时,键入您想要的解决方案堆栈的编号。有关解决方案堆栈的更多信息,请参阅Elastic Beanstalk 支持的平台。在此示例中,我们使用的是“64bit Amazon Linux running PHP 5.4”。

  9. 在系统提示您时,请选择环境类型。对于本示例,请使用 2

    Available environment types are: 1) LoadBalanced 2) SingleInstance
  10. 当系统提示您创建 Amazon RDS 数据库实例时,请键入 yn。有关使用 Amazon RDS 的更多信息,请参阅配合使用 Elastic Beanstalk 和 Amazon Relational Database Service。在此示例中,键入 y

    Create an Amazon RDS DB Instance? [y/n]:
  11. 系统提示您从头或从快照中创建数据库时,键入您的选择。在此示例中,我们使用的是“No snapshot”。

  12. 当系统提示您输入 RDS 用户主密码时,请键入包含 8 到 16 个可打印 ASCII 字符 (不包括 /、\ 和 @) 的密码。

    Enter an Amazon RDS DB master password:
    Retype password to confirm:
  13. 如果您删除了 Amazon RDS 数据库实例,则在系统提示您创建快照时,键入 yn。在此示例中,键入“n”。如果键入 n,则当您终止环境后,RDS 数据库实例将会删除,您的数据将会丢失。

    默认情况下,eb 将为 Amazon RDS 设置以下默认值。

    • “Database engine” – MySQL

    • “Default version: ” – 5.5

    • “Database name: ” – ebdb

    • “Allocated storage” – 5 GB

    • Instance class – db.t2.micro (对于未在 Amazon VPC 中运行的环境为 db.m1.large)

    • “Deletion policy” – delete

    • “Master username” – ebroot

  14. 当系统提示您输入实例配置文件名称时,可选择创建默认实例配置文件或使用现有实例配置文件。使用实例配置文件可让 IAM 用户和 AWS 服务访问临时安全凭证,以进行 AWS API 调用。使用实例配置文件可让您免于必须在 EC2 实例上存储长期安全凭证。有关实例配置文件的更多信息,请参阅服务角色、实例配置文件和用户策略。在此示例中,我们将使用 Create a default instance profile

    您会看到 AWS 凭证文件已成功更新的确认消息。

在配置 Elastic Beanstalk 后,可随时部署示例应用程序。

如果要更新 Elastic Beanstalk 配置,您可再次使用 init 命令。系统提示时,请更新您的配置选项。如果要保留上述任一设置,请按“Enter”键。如果要更新 Amazon RDS 数据库配置设置,可以更新 .elasticbeanstalk 目录内的 optionsettings 文件,然后使用 eb update 命令更新您的 Elastic Beanstalk 环境。

注意

您可以通过在每个目录中重复前面两个步骤来设置多个目录以用于 eb (各自具有自己的 Elastic Beanstalk 配置):首先初始化 Git 存储库,然后使用 init 配置 eb。

步骤 3:创建应用程序

下一步,您需要创建和部署一个示例应用程序。在这一步,您将使用一个已经准备好的示例应用程序。Elastic Beanstalk 使用在上一步中指定的配置信息执行以下操作:

  • 使用指定的应用程序名称创建应用程序。

  • 使用指定的环境名称启动一个环境,该环境将配置用来托管应用程序的 AWS 资源。

  • 将应用程序部署到新创建的环境中。

使用 start 命令创建和部署示例应用程序。

创建应用程序

  • 在创建本地存储库的目录中,键入下列命令:

    eb start

完成此过程可能需要几分钟。Elastic Beanstalk 会在此过程中提供状态更新。如果您随时希望停止轮询状态的更新,请按“Ctrl+C”。当环境状态为“Green”时,Elastic Beanstalk 会输出应用程序的 URL。

步骤 4:查看应用程序

在上一个步骤,已创建应用程序并已将其部署到 Elastic Beanstalk。在环境准备完毕且状态变为“Green”后,Elastic Beanstalk 会提供查看该应用程序的 URL。在这个步骤中,您可以检查环境的状态,确保它已设置为“Green”,然后复制并粘贴 URL,以便查看该应用程序。

使用 status 命令检查环境的状态,然后使用 URL 查看应用程序。

查看应用程序

  1. 在创建本地存储库的目录中,键入下列命令:

    eb status --verbose

    Elastic Beanstalk 会显示环境状态。如果将环境设为“Green”,则 Elastic Beanstalk 会显示应用程序的 URL。如果已将 Amazon RDS 数据库实例附加到环境,则会显示 Amazon RDS 数据库信息。

  2. 将 URL 复制和粘贴到 Web 浏览器中,以查看应用程序。

步骤 5:更新应用程序

在部署示例应用程序后,可将其更新为自己的应用程序。在此步骤中,我们将使用简单的 HelloWorld 应用程序更新示例 PHP 应用程序。

更新示例应用程序

  1. 创建一个显示“Hello World”的简单 PHP 文件,然后将它命名为 index.php

    <html> <head> <title>PHP Test</title> </head> <body> <?php echo '<p>Hello World</p>'; ?> </body> </html>

    下一步,将新程序添加到本地 Git 存储库中,然后提交更改。

    git add index.php git commit -m "initial check-in"

    注意

    有关 Git 命令的详细信息,请转到 Git – 快速版本控制系统

  2. 部署到 Elastic Beanstalk.

    eb push
  3. 查看已更新的应用程序。如步骤 4:查看应用程序中的操作一样,在 Web 浏览器内复制并粘贴相同的 URL。

步骤 6:清除

如果不再希望运行您的应用程序,您可通过终止环境并删除应用程序进行清除。

请使用 stop 命令终止环境并使用 delete 命令删除应用程序。

终止环境并删除应用程序

  1. 在创建本地存储库的目录中,键入下列命令:

    eb stop

    此过程可能需要几分钟时间。成功终止环境后,Elastic Beanstalk 会立即显示一条消息。

    注意

    如果将 Amazon RDS 数据库实例附加到您的环境,您的 Amazon RDS 数据库将会删除,您将丢失您的数据。要保存数据,请在删除应用程序之前创建快照。有关如何创建快照的说明,请转至 Amazon Relational Database Service 用户指南中的创建数据库快照

  2. 从命令行接口的安装目录中,键入以下命令:

    eb delete

    Elastic Beanstalk 将在成功删除应用程序后显示一条消息。