

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Elastic Beanstalk 配置 Amazon Virtual Private Cloud (Amazon VPC)
<a name="using-features.managing.vpc"></a>

[亚马逊虚拟私有云](https://docs.amazonaws.cn/vpc/latest/userguide/)（亚马逊 VPC）是一项网络服务，可将流量安全地路由到在 Elastic Beanstalk 中运行您的应用程序的 EC2 实例。如果在启动您的环境时未配置 VPC，Elastic Beanstalk 将使用默认 VPC。

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

## 在 Elastic Beanstalk 控制台中配置 VPC 设置
<a name="environments-cfg-vpc-console"></a>

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

**配置您的环境的 VPC 设置**

1. 打开 [Elastic Beanstalk](https://console.amazonaws.cn/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 Amazon Web Services 区域

1. 在导航窗格中，选择 **Environments**（环境），然后从列表中选择环境的名称。

1. 在导航窗格中，选择 **Configuration**（配置）。

1. 在 **Network**（网络）配置类别中，选择 **Edit**（编辑）。

可供使用的设置如下。

**Topics**
+ [VPC](#environments-cfg-vpc-console-vpc)
+ [负载均衡器可见性](#environments-cfg-vpc-console-lbvisibility)
+ [负载均衡器子网](#environments-cfg-vpc-console-lbsubnets)
+ [实例公有 IP 地址](#environments-cfg-vpc-console-ec2ip)
+ [实例子网](#environments-cfg-vpc-console-ec2subnets)
+ [数据库子网](#environments-cfg-vpc-console-dbsubnets)

### VPC
<a name="environments-cfg-vpc-console-vpc"></a>

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

![\[Elastic Beanstalk 控制台上的 Modify network（修改网络）配置页面中的“VPC”部分\]](http://docs.amazonaws.cn/elasticbeanstalk/latest/dg/images/environments-cfg-vpc-console-vpc.png)


### 负载均衡器可见性
<a name="environments-cfg-vpc-console-lbvisibility"></a>

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

### 负载均衡器子网
<a name="environments-cfg-vpc-console-lbsubnets"></a>

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

![\[Elastic Beanstalk 控制台上的 Modify network（修改网络）配置页面中的 Load balancer settings（负载均衡器设置）部分\]](http://docs.amazonaws.cn/elasticbeanstalk/latest/dg/images/environments-cfg-vpc-console-lb.png)


### 实例公有 IP 地址
<a name="environments-cfg-vpc-console-ec2ip"></a>

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

### 实例子网
<a name="environments-cfg-vpc-console-ec2subnets"></a>

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

![\[Elastic Beanstalk 控制台上的 Modify network（修改网络）配置页面中的 Instance settings（实例设置）部分\]](http://docs.amazonaws.cn/elasticbeanstalk/latest/dg/images/environments-cfg-vpc-console-ec2.png)


### 数据库子网
<a name="environments-cfg-vpc-console-dbsubnets"></a>

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

## aws:ec2:vpc 命名空间
<a name="environments-cfg-vpc-namespace"></a>

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

以下[配置文件](ebextensions.md)使用该命名空间中的选项，为公有-私有配置设置环境的 VPC 和子网。要在配置文件中设置 VPC ID，必须在创建环境期间在应用程序源包中包含该文件。有关在创建环境期间配置这些设置的其他方法，请参阅[在环境创建期间设置配置选项](environment-configuration-methods-during.md)。

**Example .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 实例在同一个公有子网中运行。

**Example .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
```