

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

# 创建 IPv4仅供文档数据库集群使用的 VPC
<a name="docdb-vpc-create-ipv4"></a>

一种常见的场景包括虚拟私有云（VPC）中基于 Amazon VPC 服务的集群。例如，此 VPC 可以与在同一 VPC 中运行的服务或应用程序共享数据。在本主题中，针对此场景创建 VPC。

**Topics**
+ [步骤 1：创建包含私有子网和公有子网的 VPC](#vpc-private-public-subnets)
+ [步骤 2：为公有应用程序创建 VPC 安全组](#create-vpc-sg-public)
+ [步骤 3：为私有集群创建 VPC 安全组](#create-vpc-sg-private)
+ [步骤 4：创建子网组](#create-cluster-subnet-group)
+ [删除 VPC](#docdb-delete-vpc)

您的集群只需对您的应用程序可用，而无需对公共互联网可用。因此，请创建包含公有子网和私有子网的 VPC。应用程序托管在公有子网中，因此能够访问公共互联网。集群托管在私有子网中。应用程序可以连接到集群，因为它托管在同一 VPC 内。但是，集群不可用于公共互联网，从而提高了安全性。

本主题中的此过程在单独的可用区中配置额外的公有子网和私有子网。此过程未使用这些子网。DocumentDB 子网组需要位于至少两个可用区中的一个子网。借助额外的子网，可以更轻松地配置多个 DocumentDB 实例。

本主题介绍为 Amazon DocumentDB 集群配置 VPC。有关 Amazon VPC 的更多信息，请参阅 [https://docs.amazonaws.cn/vpc/latest/userguide/what-is-amazon-vpc.html](https://docs.amazonaws.cn/vpc/latest/userguide/what-is-amazon-vpc.html)。

**提示**  
在创建集群时，您可以自动在 Amazon EC2 实例和 DocumentDB 集群之间设置网络连接。网络配置类似于此场景中描述的配置。有关更多信息，请参阅 [自动连接 Amazon EC2](connect-ec2-auto.md)。

## 步骤 1：创建包含私有子网和公有子网的 VPC
<a name="vpc-private-public-subnets"></a>

使用以下步骤创建包含公有和私有子网的 VPC。

**创建 VPC 和子网**

1. 在 [https://console.aws.amazon.com/vpc 上打开亚马逊 VPC](https://console.amazonaws.cn//vpc) 控制台。

1. 在的右上角 Amazon Web Services 管理控制台，选择要在其中创建 VPC 的区域。此示例使用 美国西部（俄勒冈） 区域。

1. 在左上角，选择 **VPC Dashboard**（VPC 控制面板）。要开始创建 VPC，请选择 **Create VPC**（创建 VPC）。

1. 对于 **VPC Settings**（VPC 设置）下的 **Resources to create**（要创建的资源），选择 **VPC and more**（VPC 及更多）。

1. 对于 **VPC settings**（VPC 设置），请设置以下值：
   + **名称标签自动生成** – **example**
   + **IPv4 CIDR 块 —** **10.0.0.0/16**
   + **IPv6 CIDR 块** — **没有 IPv6 CID** R 块
   + **租赁** – **默认值**
   + **可用区数量 (AZs)** — **2**
   + **自定义 AZs**-保留默认值
   + **公有子网的数量** – **2**
   + **私有子网的数量** – **2**
   + **自定义子网 CIDR 数据块** – 保留默认值
   + **NAT 网关（\$1）**– **无**
   + **VPC 端点** – **无**
   + **DNS 选项** – 保留默认值

1. 选择**创建 VPC**。

## 步骤 2：为公有应用程序创建 VPC 安全组
<a name="create-vpc-sg-public"></a>

接下来创建安全组以便进行公共访问。要连接到您的 VPC 中的公有 EC2 实例，您需要向 VPC 安全组添加入站规则。这些规则允许流量从互联网进行连接。

**创建 VPC 安全组**

1. 在 [https://console.aws.amazon.com/vpc 上打开亚马逊 VPC](https://console.amazonaws.cn//vpc) 控制台。

1. 依次选择 **VPC 控制面板)**、**安全组**和**创建安全组**。

1. 在**创建安全组**页面上，设置以下值：
   + **安全组名称** – **example-securitygroup**
   + **描述** – **Application security group**
   + **VPC** – 选择您之前创建的 VPC，例如：**vpc-example**。

1. 将入站规则添加到安全组。

   1. 使用安全外壳 (SSH) 确定用于连接您的 VPC 中的 EC2 实例的 IP 地址。要确定您的公有 IP 地址，可以在不同的浏览器窗口或选项卡中使用该服务[https://checkip.amazonaws.com](https://checkip.amazonaws.com)。IP 地址的一个示例为 `203.0.113.25/32`。

      在许多情况下，您可能通过互联网服务提供商（ISP）进行连接，或者在不使用静态 IP 地址的情况下从防火墙之后进行连接。如果是这样，请找出客户端计算机使用的 IP 地址范围。
**警告**  
如果您使用 `0.0.0.0/0` 进行 SSH 访问，则所有 IP 地址可能能够使用 SSH 访问您的公有实例。在测试环境下短时间内，此方法尚可接受，但它对于生产环境并不安全。在生产环境中，将仅向特定 IP 地址或地址范围授权使用 SSH 访问您的实例。

   1. 在**入站规则**部分中，选择**添加规则**。

   1. 为您的新入站规则设置以下值，以允许 SSH 访问您的 Amazon EC2 实例。完成此操作后，您可以连接到您的 EC2 实例以安装应用程序和其他实用程序。您还可以连接到您的 EC2 实例，为您的应用程序上传内容。
      + **类型** – **SSH**
      + **来源** – 您在步骤 a 中创建的 IP 地址或范围，例如：**203.0.113.25/32**。

   1. 选择**添加规则**。

   1. 为新入站规则设置以下值以允许针对应用程序的 HTTP 访问：
      + **类型** – **HTTP**
      + **来源** – **0.0.0.0/0**

1. 请选择 **Create security group**（创建安全组）以创建安全组。

   请记下安全组 ID，因为稍后在另一个过程中需要使用该 ID。

## 步骤 3：为私有集群创建 VPC 安全组
<a name="create-vpc-sg-private"></a>

要保持您的集群为私有，请创建第二个安全组进行私有访问。要连接到 VPC 中的私有集群，请将入站规则添加到 VPC 安全组，以仅支持来自应用程序的流量。

**创建 VPC 安全组**

1. 在 [https://console.aws.amazon.com/vpc 上打开亚马逊 VPC](https://console.amazonaws.cn//vpc) 控制台。

1. 依次选择 **VPC 控制面板)**、**安全组**和**创建安全组**。

1. 在**创建安全组**页面上，设置以下值：
   + **安全组名称** – **example-securitygroup**
   + **描述** – **Instance security group**
   + **VPC** – 选择您之前创建的 VPC，例如：**vpc-example**

1. 将入站规则添加到安全组。

   1. 在**入站规则**部分中，选择**添加规则**。

   1. 为您的新入站规则设置以下值，以允许来自您的亚马逊实例的端口 27017 上的 DocumentDB 流量。 EC2 完成此操作后，您就可以从应用程序连接到集群。这样，您就可以从应用程序将数据存储和检索到数据库。
      + **类型** – **Custom TCP**
      + **来源** – 您先前在本主题中创建的应用程序安全组的标识符，例如：**sg-9edd5cfb**。

   1. 选择**添加规则**。

   1. 为新入站规则设置以下值以允许针对应用程序的 HTTP 访问：
      + **类型** – **HTTP**
      + **来源** – **0.0.0.0/0**

1. 请选择 **Create security group**（创建安全组）以创建安全组。

## 步骤 4：创建子网组
<a name="create-cluster-subnet-group"></a>

子网组是在 VPC 中创建的一组子网，随后可为集群指定这些子网。通过子网组，您可能能够在创建集群时指定特定的 VPC。

**创建子网组**

1. 在 VPC 中识别数据库的私有子网。

   1. 在 [https://console.aws.amazon.com/vpc 上打开亚马逊 VPC](https://console.amazonaws.cn//vpc) 控制台。

   1. 选择 **VPC Dashboard**（VPC 控制面板），然后选择 **Subnets**（子网）。

   1. **记下您在步骤 1 中创建 IDs 的名为：**example-subnet-private1-us-west-2a 和 2-us-west-2b** 的子网。example-subnet-private**创建子网组 IDs 时需要子网。

1. [登录 Amazon Web Services 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.amazonaws.cn/docdb)

   确保您连接到 Amazon DocumentDB 控制台，而不是 Amazon VPC 控制台。

1. 在导航窗格中，选择**子网组**。

1. 选择**创建**。

1. 在**创建子网组**页面的**子网组详细信息**部分中设置以下值：
   + **名称** – **example-db-subnet-group**
   + **描述** – **Instance security group**

1. 在**添加子网**部分中，选择以下值：
   + **VPC** – 选择您之前创建的 VPC，例如：**vpc-example**
   + **可用区** – 选择在步骤 1 中创建的两个可用区。示例：**us-west-2a** 和 **us-west-2b**
   + **子网** – 选择您在步骤 1 中创建的私有子网。

1. 选择**创建**。

您的新子网组显示在 DocumentDB 控制台的子网组列表中。您可以选择子网组以在详细信息窗格中查看详细信息。这些详细信息包括与该组关联的所有子网。

**注意**  
如果您已创建此 VPC 以将其与 DocumentDB 集群关联，请按照 [创建 Amazon DocumentDB 集群](db-cluster-create.md) 中的说明创建集群。

## 删除 VPC
<a name="docdb-delete-vpc"></a>

如果不再需要 VPC 及其中使用的其他资源，可以将其删除。

**注意**  
如果您在本主题中创建的 VPC 中添加了资源，则可能需要先删除这些资源，然后才能删除 VPC。例如，这些资源可能包括亚马逊 EC2 实例或文档数据库集群。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[您的 VPC 的安全性](https://docs.amazonaws.cn/vpc/latest/userguide/delete-vpc.html)。

**删除 VPC 和相关资源**

1. 删除子网组：

   1. [登录 Amazon Web Services 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.amazonaws.cn/docdb)

   1. 在导航窗格中，选择**子网组**。

   1. 选择要删除的子网组，例如**example-db-subnet-group**。

   1. 选择 **Delete (删除)**，然后在确认窗口中选择 **Delete (删除)**。

1. 记下 VPC ID：

   1. 在 [https://console.aws.amazon.com/vpc 上打开亚马逊 VPC](https://console.amazonaws.cn//vpc) 控制台。

   1. 选择 **VPC 控制面板**，然后选择**您的 VPCs**。

   1. 在列表中，标识您创建的 VPC，例如 **vpc-example**。

   1. 记下所创建 VPC 的 **VPC ID**。在后面的步骤中，您需要此 VPC ID。

1. 删除安全组：

   1. 在 [https://console.aws.amazon.com/vpc 上打开亚马逊 VPC](https://console.amazonaws.cn//vpc) 控制台。

   1. 选择 **VPC 控制面板**，然后选择**安全组**。

   1. 选择 Amazon DocumentDB 集群的安全组，例如 **example-securitygroup**。

   1. 对于**操作**，请选择**删除安全组**，然后在确认对话框中选择**删除**。

   1. 返回**安全组**页面，为 Amazon EC2 实例选择安全组，例如 e **xample-** securitygroup。

   1. 对于**操作**，请选择**删除安全组**，然后在确认对话框中选择**删除**。

1. 删除 VPC：

   1. 在 [https://console.aws.amazon.com/vpc 上打开亚马逊 VPC](https://console.amazonaws.cn//vpc) 控制台。

   1. 选择 **VPC 控制面板**，然后选择**您的 VPCs**。

   1. 选择要删除的 VPC，例如 **vpc-example**。

   1. 对于**操作**，请选择“删除 VPC”。

      确认页面显示与 VPC 关联的其他资源，这些资源也将被删除，包括与其关联的子网。

   1. 在确认对话框中，输入 **delete**，然后选择**删除**。