AWS Elastic Beanstalk
开发人员指南 (API Version 2010-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

示例:在 VPC 中启动具有公有实例的负载均衡、自动缩放环境

您可以在单个公有子网内的负载均衡、自动缩放环境中部署 Elastic Beanstalk 应用程序。如果您具有单个公有子网并且没有任何私有资源与 Amazon EC2 实例关联,请使用此配置。在此配置中,Elastic Beanstalk 会将公有 IP 地址分配给 Amazon EC2 实例,以便每个实例可以通过 VPC Internet 网关直接访问 Internet。您不需要在 VPC 中创建网络地址转换 (NAT) 配置。

 Elastic Beanstalk 和 VPC 拓扑

要在单个公有子网内的负载均衡、自动扩展环境中部署 Elastic Beanstalk 应用程序,您需要完成下列操作:

创建带公有子网的 VPC

创建 VPC

  1. 登录 AWS 管理控制台并通过以下网址打开 Amazon VPC 控制台:https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 VPC Dashboard,然后选择 Start VPC Wizard

  3. 选择 VPC with a Single Public Subnet,然后选择 Select

     选择向导中的第一个选项

    确认页面会显示用于 VPC 和子网的 CIDR 块。该页面还会显示子网和关联可用区。

     选项 1 确认页面
  4. 选择 Create VPC

    AWS 会创建 VPC、子网、Internet 网关和路由表。选择 OK 可退出向导。

    AWS 成功创建 VPC 之后,会向 VPC 分配 VPC ID。您在下一步中需要此信息。要查看您的 VPC ID,请在 Amazon VPC 控制台的左窗格中选择 Your VPCs

     VPC ID

部署到 Elastic Beanstalk

设置 VPC 后,您可在其中创建您的环境并将应用程序部署到 Elastic Beanstalk。您可以通过 Elastic Beanstalk 控制台或使用 AWS 工具包、AWS CLI、EB CLI 或 Elastic Beanstalk API 来执行此操作。如果您使用 Elastic Beanstalk 控制台,则只需上传 .war.zip 文件并在向导中选择 VPC 设置。Elastic Beanstalk 随后会在 VPC 中创建环境并部署应用程序。或者,您也可使用 AWS 工具包、AWS CLI、EB CLI 或 Elastic Beanstalk API 来部署应用程序。为此,您需要在配置文件中定义 VPC 选项设置并使用源捆绑部署此文件。本主题提供了这两种方法的说明。

使用 Elastic Beanstalk 控制台进行部署

创建 Elastic Beanstalk 应用程序或启动环境时,Elastic Beanstalk 控制台将指导您在 VPC 中创建您的环境。有关更多信息,请参阅 管理和配置 AWS Elastic Beanstalk 应用程序

您需要为实例选择 VPC ID 和子网 ID。默认情况下,VPC 使用 10.0.0.0/24 创建公有子网。通过在 Amazon VPC 控制台中单击 Subnets (子网) 可以查看子网 ID。

 VPC 的子网 ID

使用 AWS Toolkit、AWS CLI、EB CLI 或 Elastic Beanstalk API 来部署

使用 AWS 工具包、EB CLI、AWS CLI 或 API 将应用程序部署到 Elastic Beanstalk 时,您可以在一个文件中指定 VPC 选项设置并使用源包部署该文件。参阅 使用配置文件 (.ebextensions) 进行高级环境自定义 了解更多信息。

在使用您的选项设置创建配置文件时,您需要指定以下配置选项:

aws:ec2:vpc 命名空间:

VPCId

您的 VPC 的标识符。

Subnets

要在其中启动实例的子网的标识符。

您可以通过用逗号分隔标识符来指定多个标识符。

AssociatePublicIpAddress

指定是否在您的 VPC 中启动具有公有 IP 地址的实例。具有公有 IP 地址的实例无需 NAT 设备与 Internet 通信。如果要在单个公有子网中包含您的负载均衡器和实例,则必须将值设置为 true

以下示例介绍的是可在 VPC 内部署 Elastic Beanstalk 应用程序时设置的选项设置。

option_settings: aws:ec2:vpc: VPCId: "vpd_id" Subnets: "instance_subnet, etc" AssociatePublicIpAddress: "true"