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

使用 Elastic Beanstalk 配置 Amazon Virtual Private Cloud (Amazon VPC)

Amazon Virtual Private Cloud (Amazon VPC) 是网络服务,它将流量安全地路由到在 Elastic Beanstalk 中运行应用程序的 EC2 实例。如果在启动您的环境时未配置 VPC,Elastic Beanstalk 将使用默认 VPC。

您可以在自定义 VPC 中启动您的环境以自定义网络和安全设置。您可以在 Elastic Beanstalk 中选择用于您的资源的子网,以及如何为您的环境中的实例和负载均衡器配置 IP 地址。在创建环境时,它将锁定到一个 VPC,但您可以在运行的环境上更改子网和 IP 地址设置。

有关创建用于 Elastic Beanstalk 的 VPC 的说明,请参阅将 Elastic Beanstalk 用于 Amazon Virtual Private Cloud

在 Elastic Beanstalk 控制台中配置 VPC 设置

如果在创建环境时选择了自定义 VPC,则可以在 Elastic Beanstalk 控制台中修改其 VPC 设置。

配置您的环境的 VPC 设置

  1. 打开 Elastic Beanstalk 控制台

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

  3. 选择 Configuration

  4. 网络配置卡上,选择修改

可供使用的设置如下。

VPC

为您的环境选择一个 VPC。您只能在创建环境期间更改该设置。

负载均衡器可见性

对于负载均衡的环境,请选择负载均衡器模式。默认情况下,负载均衡器是具有公有 IP 地址和域名的公有负载均衡器。如果您的应用程序仅处理来自您的 VPC 或连接的 VPN 的流量,请取消选择该选项,然后为您的负载均衡器选择私有子网以将负载均衡器指定为内部负载均衡器并禁止从 Internet 访问。

负载均衡器子网

对于负载均衡的环境,请选择负载均衡器用于处理流量的子网。对于公有应用程序,请选择公有子网。可以在多个可用区中使用子网以提供高可用性。对于内部应用程序,请选择私有子网并禁用负载均衡器可见性。

实例公有 IP 地址

如果为您的应用程序实例选择公有子网,请启用公有 IP 地址以便从 Internet 路由这些地址。

实例子网

为您的应用程序实例选择子网。为您的负载均衡器使用的每个可用区选择至少一个子网。如果为您的实例选择私有子网,您的 VPC 必须在公有子网中具有实例可用于访问 Internet 的 NAT 网关。

实例安全组

在您的应用程序实例中添加安全组。在创建环境时,Elastic Beanstalk 为您的实例创建一个安全组并自动分配该安全组。您可以添加额外的安全组,以便为您的实例授予其他 AWS 资源的访问权限,例如,外部 Amazon RDS 数据库。

数据库子网

在运行附加到您的 Elastic Beanstalk 环境的 Amazon RDS 数据库时,请为您的数据库实例选择子网。为了获得高可用性,请将数据库指定为多可用区数据库,并为每个可用区选择一个子网。要确保您的应用程序可以连接到您的数据库,请在同一子网中运行应用程序和数据库。

aws:ec2:vpc 命名空间

您可以使用 aws:ec2:vpc 命名空间中的配置选项配置您的环境的网络设置。

以下配置文件使用该命名空间中的选项,为公有-私有配置设置环境的 VPC 和子网。要在配置文件中设置 VPC ID,必须在创建环境期间在应用程序源包中包含该文件。有关在创建环境期间配置这些设置的其他方法,请参阅在环境创建过程中设置配置选项

例 .ebextensions/vpc.config – 公有-私有

option_settings: aws:ec2:vpc: VPCId: vpc-087a68c03b9c50c84 AssociatePublicIpAddress: 'false' ELBScheme: public ELBSubnets: subnet-0fe6b36bcb0ffc462,subnet-032fe3068297ac5b2 Subnets: subnet-026c6117b178a9c45,subnet-0839e902f656e8bd1

该示例显示一个公有-私有配置,其中,负载均衡器和 EC2 实例在同一公有子网中运行。

例 .ebextensions/vpc.config – 公有-公有

option_settings: aws:ec2:vpc: VPCId: vpc-087a68c03b9c50c84 AssociatePublicIpAddress: 'true' ELBScheme: public ELBSubnets: subnet-0fe6b36bcb0ffc462,subnet-032fe3068297ac5b2 Subnets: subnet-0fe6b36bcb0ffc462,subnet-032fe3068297ac5b2