

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

# Amazon VPC 和 Amazon DocumentDB
<a name="vpc-docdb"></a>

利用 Amazon Virtual Private Cloud（Amazon VPC），您能够在虚拟私有云（VPC）中启动 AWS 资源，如 Amazon DocumentDB 实例。

使用 VPC 时，您的虚拟联网环境完全由您控制。您可以选择自己的 IP 地址范围、创建子网以及配置路由和访问控制列表。在 VPC 中运行集群不会产生额外费用。

账户具有原定设置 VPC。除非您另行指定，否则所有新集群都将在默认 VPC 中创建。

**Topics**
+ [VPC 中的 DocumentDB 集群](vpc-clusters.md)
+ [访问 VPC 中的 Amazon DocumentDB 集群](access-cluster-vpc.md)
+ [创建 IPv4仅供文档数据库集群使用的 VPC](docdb-vpc-create-ipv4.md)
+ [创建双堆栈 VPC 以用于 DocumentDB 集群](docdb-vpc-create-dual-stack.md)

接下来，您可以查找与 Amazon DocumentDB 集群相关的 VPC 功能的讨论。有关 Amazon VPC 的更多信息，请参阅《[Amazon VPC 用户指南](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)》。

# VPC 中的 DocumentDB 集群
<a name="vpc-clusters"></a>

您的 Amazon DocumentDB 集群位于虚拟私有云（VPC）中。VPC 是一种在逻辑上与中的其他虚拟网络隔离的虚拟网络 AWS 云。借助 Amazon VPC，您可以在 VPC 中启动 AWS 资源，例如亚马逊文档数据库集群或亚马逊 EC2 实例。VPC 可以是您的账户附带的默认 VPC，也可以是您创建的 VPC。所有这些 VPCs 都与您的 AWS 账户相关联。

默认 VPC 具有可用来隔离 VPC 内资源的三个子网。默认 VPC 还具有一个互联网网关，可用来从 VPC 外部访问 VPC 内部的资源。

有关涉及 VPC 内外的 Amazon DocumentDB 集群的场景，请参阅 [访问 VPC 中的 Amazon DocumentDB 集群](access-cluster-vpc.md)。

**Topics**
+ [使用 VPC 中的集群](#vpc-working-clusters)
+ [使用子网组](#vpc-working-subnet-groups)
+ [Amazon DocumentDB IP 寻址](#vpc-docdb-ip-addressing)
+ [在 VPC 中创建集群](#vpc-creating-cluster)

## 使用 VPC 中的集群
<a name="vpc-working-clusters"></a>

下面是有关使用 VPC 中的集群的一些提示：
+ 您的 VPC 必须至少有两个子网。这些子网必须位于您要部署集群 AWS 区域 的两个不同可用区中。子网是 VPC 的 IP 地址范围段，您可以指定子网，利用子网并根据安全和操作需要对集群进行分组。
+ 如果要让 VPC 中的集群实现公开访问，请确保开启 VPC 属性 `DNS hostnames` 和 `DNS resolution`。
+ 您的 VPC 必须具有您创建的子网组。您可通过指定创建的子网来创建子网组。Amazon DocumentDB 选择子网及该子网组中的 IP 地址，以与集群中的主实例关联。主实例使用包含该子网的可用区。
+ 您的 VPC 必须具有允许访问集群的 VPC 安全组。

  有关更多信息，请参阅 [访问 VPC 中的 Amazon DocumentDB 集群](access-cluster-vpc.md)。
+ 每个子网必须包含足够大的 CIDR 数据块，以便在维护活动（包括失效转移和扩展计算）期间有可供 Amazon DocumentDB 使用的备用 IP 地址。例如，诸如 10.0.0.1.0/24 和 10.0.1.0/24 的范围通常足够大。
+ VPC 可以具有 `instance tenancy` 属性值 `default` 或 `dedicated`。所有默认 VPC 的`instance tenancy`属性 VPCs 都设置为默认，默认 VPC 可以支持任何实例类别。

  如果您选择将集群置于`instance tenancy`属性设置为的专用 VPC 中`dedicated`，则集群的实例类必须是已批准的 Amazon EC2 专用实例类型之一。例如，`r5.large` EC2 专用实例对应于`db.r5.large`实例类。有关 VPC 中实例租赁的信息，请参阅[亚马逊*弹性计算云用户指南中的亚马逊 EC2 *实](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Instances.html)例。

  有关可用在专用实例中的实例类型的更多信息，请参阅 [Amazon EC2 定价页面上的亚马逊 EC2 专用实例](https://aws.amazon.com/ec2/pricing/dedicated-instances/)。
**注意**  
当您为集群将 `instance tenancy` 属性设置为 `dedicated` 时，不能保证集群将在专属主机上运行。

## 使用子网组
<a name="vpc-working-subnet-groups"></a>

子网 是您指定的用来根据安全和操作需要对资源进行分组的 VPC 的 IP 地址范围段。子网组是您在 VPC 中创建并随后指定给集群的子网（通常为私有子网）的集合。通过使用子网组，您可以在使用 AWS CLI 或 Amazon DocumentDB API 创建集群时指定特定的 VPC。如果您使用控制台，则可以选择要使用的 VPC 和子网组。

每个子网组应包含给定 AWS 区域中至少两个可用区的子网。在 VPC 中创建集群时，为其选择子网组。对于子网组，Amazon DocumentDB 选择子网及该子网中的 IP 地址，以与集群中的主实例关联。数据库使用包含该子网的可用区。DocumentDB 始终从具有可用 IP 地址空间的子网中分配 IP 地址。

子网组中的子网可以是公有或私有的，具体取决于您为其网络访问控制列表（网络 ACLs）和路由表设置的配置。对于希望可公开访问的集群，其子网组中的所有子网必须均为公有子网。如果与可公开访问的集群关联的子网从公有更改为私有，则可能会影响集群的可用性。

要创建支持双栈模式的子网组，请确保添加到子网组的每个子网都有一个与之关联的 Internet 协议版本 6 (IPv6) CIDR 块。有关更多信息，请参阅《*Amazon Virtual Private Cloud 用户指南》中的[您的 VPC [Amazon DocumentDB IP 寻址](#vpc-docdb-ip-addressing) 并IPv6 支持](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html)该指南*。

当 Amazon DocumentDB 在 VPC 中创建集群时，使用子网组中的 IP 地址将网络接口分配给集群。但是，我们强烈建议您使用域名系统（DNS）名称来连接到集群。之所以建议这样做，是因为底层 IP 地址在失效转移期间会发生变化。

**注意**  
对于在 VPC 中运行的每个集群，请确保子网组的每个子网中预留至少一个地址，以供 Amazon DocumentDB 用来执行恢复操作。

### 共享子网
<a name="w2aac29c51c13c13c15"></a>

您可以在共享 VPC 中创建集群。

使用共享时要记住的一些注意事项 VPCs：
+ 您可以将集群从共享 VPC 子网移动到非共享 VPC 子网，反之亦然。
+ 共享 VPC 中的参与者必须在 VPC 中创建安全组，才能允许他们创建集群。
+ 共享 VPC 中的拥有者和参与者可以使用 DocumentDB 查询访问数据库。但是，只有资源的创建者才能对该资源进行任何 API 调用。

## Amazon DocumentDB IP 寻址
<a name="vpc-docdb-ip-addressing"></a>

IP 地址使 VPC 中的资源能够相互通信以及与 Internet 上的资源进行通信。Amazon DocumentDB 同时支持 IPv4 和 IPv6 寻址协议。默认情况下，亚马逊 DocumentDB 和亚马逊 VPC 使用 IPv4 寻址协议。您无法关闭这种行为。创建 VPC 时，请务必指定 IPv4 CIDR 块（私有 IPv4 地址范围）。您可以选择为您的 VPC 和子网分配 IPv6 CIDR 块，并将该区块中的 IPv6 地址分配给子网中的集群。

**注意**  
只有亚马逊 DocumentDB 版本 4.0 和 5.0 支持双栈模式（IPv6 寻址）。

对该 IPv6 协议的支持扩大了支持的 IP 地址的数量。通过使用该 IPv6 协议，您可以确保有足够的可用地址来满足互联网的未来发展。新的和现有的 DocumentDB 资源可以在您的 VPC 中使用 IPv4 和 IPv6 地址。在应用程序不同部分使用的两个协议之间配置、保护和转换网络流量可能会产生运营开销。您可以对 Amazon DocumentDB 资源的 IPv6 协议进行标准化，以简化您的网络配置。

**Topics**
+ [IPv4 地址](#vpc-docdb-ipv4-addresses)
+ [IPv6 地址](#vpc-docdb-ipv6-addresses)
+ [双堆栈模式](#vpc-docdb-dual-stack)

### IPv4 地址
<a name="vpc-docdb-ipv4-addresses"></a>

创建 VPC 时，必须以 CIDR 块的形式为 VPC 指定 IPv4 地址范围，例如`10.0.0.0/16`。子网组定义此 CIDR 数据块中可供集群使用的 IP 地址范围。这些 IP 地址可以是私有地址，也可以是公有地址。

私有 IPv4 地址是无法通过互联网访问的 IP 地址。您可以使用私有 IPv4 地址在您的集群与同一 VPC 中的其他资源（例如 Amazon EC2 实例）之间进行通信。每个集群都有一个用于在 VPC 中通信的私有 IP 地址。

公有 IP IPv4 地址是可以从互联网访问的地址。您的 DocumentDB 集群不允许使用公有 IP 寻址。任何公有 IP 地址都应由 Internet 网关和公 EC2 有子网解析。

要了解如何创建仅包含可用于常见的 Amazon DocumentDB 场景的私有 IPv4 地址的 VPC，请参阅。[创建 IPv4仅供文档数据库集群使用的 VPC](docdb-vpc-create-ipv4.md)

### IPv6 地址
<a name="vpc-docdb-ipv6-addresses"></a>

您可以选择将 IPv6 CIDR 块与您的 VPC 和子网关联，并将该区块中的 IPv6 地址分配给您的 VPC 中的资源。每个 IPv6 地址都是全球唯一的。

您的 VPC 的 IPv6 CIDR 块是从亚马逊 IPv6 的地址池中自动分配的。您不能自行选择范围。

连接 IPv6 地址时，请确保满足以下条件：
+ 对客户端进行了配置，以便允许客户端到数据库 IPv6 的流量。
+ 集群使用的 DocumentDB 安全组配置正确，因此允许客户端到数据库的流 IPv6 量。
+ 客户端操作系统堆栈允许 IPv6 地址上的流量，操作系统驱动程序和库已配置为选择正确的默认群集端点（ IPv4 或 IPv6）。

有关更多信息 IPv6，请参阅《*Amazon Virtual Private Cloud 用户指南》*中的 [IP 地址](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html)。

### 双堆栈模式
<a name="vpc-docdb-dual-stack"></a>

当集群可以通过 IPv4 和 IPv6 寻址协议进行通信时，它将在双堆栈模式下运行。因此，资源可以通过 IPv4、 IPv6或两者兼而有之地与群集通信。DocumentDB 禁止私有双堆栈模式集群的 IPv6 终端节点访问 Internet Gateway。DocumentDB 这样做是为了确保您的 IPv6 终端节点是私有的，并且只能从您的 VPC 内部进行访问。

**Topics**
+ [双堆栈模式和子网组](#dual-stack-subnet)
+ [使用双堆栈模式集群](#dual-stack-clusters)
+ [修改 IPv4仅限集群以使用双堆栈模式](#modify-ipv4-clusters)
+ [双堆栈模式区域和版本可用性](#dual-stack-availability)
+ [双堆栈网络集群的限制](#dual-stack-limitations)

#### 双堆栈模式和子网组
<a name="dual-stack-subnet"></a>

要使用双栈模式，请确保与集群关联的子网组中的每个子网都有一个与之关联的 IPv6 CIDR 块。您可以创建新的子网组或修改现有的子网组来满足此要求。当集群处于双堆栈模式后，客户端可以与其正常连接。确保正确配置了客户端安全防火墙和 DocumentDB 集群安全组，以允许流量通过。 IPv6要进行连接，客户端需要使用集群的端点。客户端应用程序可以指定连接到数据库时首选哪种协议。在双栈模式下，集群会检测到客户端的首选网络协议，即 IPv4 或 IPv6，并使用该协议进行连接。

如果某子网组因子网删除或 CIDR 断开关联而停止支持双堆栈模式，则与该子网组关联的集群存在网络状态不兼容的风险。此外，创建新的双堆栈模式集群时，您不能使用子网组。

要使用确定子网组是否支持双栈模式 AWS 管理控制台，请在子**网组的详细信息页面上查看网络类型**。要使用确定子网组是否支持双栈模式 AWS CLI，请运行[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-db-subnet-groups.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-db-subnet-groups.html)命令并在输出`SupportedNetworkTypes`中查看。

只读副本被视为独立的集群，并且可以具有与主集群不同的网络类型。如果您更改只读副本的主集群的网络类型，则只读副本不会受到影响。当您恢复集群时，可以将其恢复为支持的任何网络类型。

#### 使用双堆栈模式集群
<a name="dual-stack-clusters"></a>

创建或修改集群时，您可以指定双堆栈模式，以允许您的资源通过 IPv4 IPv6、或两者兼而有之与群集通信。

使用创建或修改集群时，可以在**网络类型**部分指定双堆栈模式。 AWS 管理控制台 下图显示了控制台中的**网络类型**部分：

![\[控制台中的网络类型部分，已选中双堆栈模式。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/nw-type-dual-stack.png)


使用创建或修改集群时，请将`--network-type`选项设置`DUAL`为使用双堆栈模式。 AWS CLI 当您使用 DocumentDB API 创建或修改集群时，请将 `NetworkType` 参数设置为 `DUAL` 以使用双堆栈模式。如果指定的 DocumentDB 引擎版本或子网组不支持双堆栈模式，则返回 `NetworkTypeNotSupported` 错误。

有关创建集群的更多信息，请参阅 [创建 Amazon DocumentDB 集群](db-cluster-create.md)。有关修改集群的更多信息，请参阅 [修改 Amazon DocumentDB 集群](db-cluster-modify.md)。

要使用控制台确定集群是否处于双堆栈模式，请查看集群的**连接和安全**选项卡上的**网络类型**。

#### 修改 IPv4仅限集群以使用双堆栈模式
<a name="modify-ipv4-clusters"></a>

您可以修改 IPv4仅限集群以使用双堆栈模式。为此，请更改集群的网络类型。

建议您在维护时段内更改 Amazon DocumentDB 集群的网络类型。您可以使用 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/modify-db-cluster.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/modify-db-cluster.html) 命令手动设置网络类型。

在修改集群以使用双堆栈模式之前，请确保其子网组支持双堆栈模式。如果与集群关联的子网组不支持双堆栈模式，请在修改集群时指定支持该模式的其他子网组。修改集群的子网组可能会导致停机。

如果在将集群更改为使用双堆栈模式之前修改集群的子网组，请确保该子网组在更改前后对集群有效。

我们建议您在仅将 `NetworkType` 参数设置为 `DUAL` 的情况下运行 `ModifyDBCluster` 调用，以将网络更改为双堆栈模式。在同一 API 调用中将其他参数与 `NetworkType` 一起添加可能会导致停机。要修改多个参数，请确保网络类型修改已成功完成，然后使用其他参数发送另一个 `ModifyDBCluster` 请求。

如果更改后无法连接到集群，请确保正确配置客户端和数据库安全防火墙以及路由表，以允许流向所选网络上的数据库（ IPv4 或 IPv6）。您可能还需要修改操作系统参数、库或驱动程序才能使用 IPv6 地址进行连接。

**将 IPv4仅限集群修改为使用双堆栈模式**

1. 修改子网组以支持双堆栈模式，或者创建支持双堆栈模式的子网组：

   1. 将 IPv6 CIDR 块与您的 VPC 关联。

      有关说明，请参阅《Amazon VPC 用户指南》**中的[将 CIDR 数据块添加到 VPC 或从中删除](https://docs.aws.amazon.com/vpc/latest/userguide/add-ipv4-cidr.html)。

   1. 将 IPv6 CIDR 块连接到子网组中的所有子网。

      有关说明，请参阅 *Amazon Virtual Private IPv6 Cloud 用户指南*[中的向子网添加或删除 CIDR 块](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-associate-ipv6-cidr.html)。

   1. 确认子网组支持双堆栈模式。

      如果您使用的是 AWS 管理控制台，请选择子网组，并确保 “**支持的网络类型**” 值为 **Dual**。

      如果您使用的是 AWS CLI，请运行[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-db-subnet-groups.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-db-subnet-groups.html)命令，并确保集群的`SupportedNetworkType`值为`Dual`。

1. 修改与集群关联的安全组以允许 IPv6 连接到数据库，或者创建允许 IPv6 连接的新安全组。

   有关说明，请参阅《Amazon Virtual Private Cloud 用户指南》**中的[安全组规则](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html)。

1. 修改集群以支持双堆栈模式。为此，请将 **Network type**（网络类型）设置为 **Dual-stack mode**（双堆栈模式）。

   如果您使用控制台，请确保以下设置正确：
   + **网络类型**：**双堆栈模式**  
![\[控制台中的网络类型部分，已选中双堆栈模式。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/nw-type-dual-stack.png)
   + **子网组**：在上一步中配置的子网组
   + **安全组**：在上一步中配置的安全组

   如果您使用的是 AWS CLI，请确保以下设置正确：
   + `--network-type` — `dual`
   + `--db-subnet-group-name`：在上一步中配置的子网组
   + `--vpc-security-group-ids`：在上一步中配置的 VPC 安全组

   例如：

   ```
   aws docdb modify-db-cluster --db-cluster-identifier <cluster-name> --network-type "DUAL"
   ```

1. 确认集群支持双堆栈模式。

   如果您使用控制台，针对集群选择**连接和安全**选项卡，并确保**网络类型**值为**双堆栈模式**。

   如果您使用的是 AWS CLI，请运行`describe-db-cluster`命令，并确保集群的`NetworkType`值为`dual`。

   在集群终端节点上运行`dig`命令以识别与其关联 IPv6 的地址：

   ```
   dig <db-cluster-endpoint> AAAA
   ```

   使用集群终端节点（而不是 IPv6 地址）连接到集群。

#### 双堆栈模式区域和版本可用性
<a name="dual-stack-availability"></a>

功能可用性和支持因 AWS 区域而异。

**区域支持**

以下列表列 AWS 区域 出了支持双栈模式的：
+ 美国东部（俄亥俄州）
+ 美国东部（弗吉尼亚州北部）
+ 美国西部（俄勒冈州）
+ 非洲（开普敦）
+ 南美洲（圣保罗）
+ 亚太地区（香港）
+ 亚太地区（海得拉巴）
+ 亚太地区（马来西亚）
+ 亚太地区（孟买）
+ 亚太地区（大阪）
+ 亚太地区（首尔）
+ 亚太地区（新加坡）
+ 亚太地区（悉尼）
+ 亚太地区（雅加达）
+ 亚太地区（泰国）
+ 亚太地区（东京）
+ 加拿大（中部）
+ 中国（北京）
+ 中国（宁夏）
+ 欧洲地区（法兰克福）
+ 欧洲地区（爱尔兰）
+ 欧洲地区（伦敦）
+ 欧洲地区（米兰）
+ 欧洲地区（巴黎）
+ 欧洲（西班牙）
+ 欧洲地区（斯德哥尔摩）
+ 以色列（特拉维夫）
+ 墨西哥（中部）
+ 中东（阿联酋）：
+ AWS GovCloud （美国西部）
+ AWS GovCloud （美国东部）

**版本支持**

双堆栈模式在 Amazon DocumentDB 版本 4.0 和 5.0 上受支持。如果您无法在上述任一版本中访问双堆栈模式，请确保您的集群上运行的是最新引擎补丁版本。

#### 双堆栈网络集群的限制
<a name="dual-stack-limitations"></a>

以下限制适用于双堆栈网络集群：
+ 集群不能只使用该 IPv6 协议。它们可以 IPv4 专门使用，也可以使用 IPv4 和 IPv6 协议（双栈模式）。
+ 亚马逊 DocumentDB 不支持原生 IPv6 子网。
+ 使用双堆栈模式的集群必须是私有的。它们不可公开访问。

## 在 VPC 中创建集群
<a name="vpc-creating-cluster"></a>

以下过程帮助您在 VPC 中创建集群。要使用默认 VPC，可以从步骤 2 开始，并使用已经为您创建的 VPC 和子网组。如果需要 VPCs，您还可以创建其他内容。

**注意**  
如果要让 VPC 中的集群实现公开访问，则必须通过启用 VPC 属性 `DNS hostnames` 和 `DNS resolution` 更新 VPC 的 DNS 信息。有关更新 VPC 实例的 DNS 的信息，请参阅《Amazon Virtual Private Cloud 用户指南》**中的[查看和更新 VPC 的 DNS 属性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns-updating.html)。

要在 VPC 中创建集群，请执行以下步骤：
+ [第 1 步：创建 VPC](#step1-create-vpc)
+ [第 2 步：创建一个子网组](#step2-create-subnet-group)
+ [步骤 3：创建 VPC 安全组](#step3-create-security-group)
+ [步骤 4：在 VPC 中创建集群](#step4-create-vpc-cluster)

### 第 1 步：创建 VPC
<a name="step1-create-vpc"></a>

创建一个 VPC，该 VPC 具有的子网位于至少两个可用区内。您在创建子网组时将使用这些子网。如果您拥有默认 VPC，则系统会在该 AWS 区域中的每个可用区中自动为您创建子网。

有关更多信息，请参阅 [创建 IPv4仅供文档数据库集群使用的 VPC](docdb-vpc-create-ipv4.md)，或者请参阅《Amazon Virtual Private Cloud 用户指南》**中的[创建 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)。

### 第 2 步：创建一个子网组
<a name="step2-create-subnet-group"></a>

子网组是您在 VPC 中创建并随后指定给集群的子网（通常为私有子网）的集合。子网组允许您在使用 AWS CLI 或 DocumentDB API 创建集群时指定特定 VPC。如果您使用 AWS 管理控制台，则只需选择要使用的 VPC 和子网即可。每个子网组必须至少包含 AWS 区域中至少两个可用区的一个子网。作为最佳实践，每个子网组应至少包含 AWS 区域中每个可用区的一个子网。

对于希望可公开访问的集群，子网组中的子网必须具有互联网网关。有关子网的互联网网关的更多信息，请参阅《Amazon Virtual Private Cloud 用户指南》**中的[使用互联网网关为 VPC 启用互联网访问](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)。

**注意**  
本地区域的子网组只能有一个子网。

在 VPC 中创建集群时，您可以选择子网组。Amazon DocumentDB 选择要与集群关联的子网及该子网中的 IP 地址。如果不存在子网组，Amazon DocumentDB 会在您创建集群时创建默认子网组。DocumentDB 使用该 IP 地址创建弹性网络接口并将其关联到您的集群。集群使用包含该子网的可用区。

在此步骤中，您创建一个子网组，然后添加为 VPC 创建的子网。

**创建子网组**

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

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

1. 选择**创建**。

1. 对于**名称**，键入您的子网组的名称。

1. 对于**描述**，键入您的子网组的描述。

1. 在**添加子网**部分中，对于 **VPC**，选择默认 VPC 或您创建的 VPC。然后，从**可用区**中选择包含子网的可用区，并从**子网**中选择子网。

1. 选择创建。

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

### 步骤 3：创建 VPC 安全组
<a name="step3-create-security-group"></a>

在创建集群之前，请先创建要与之关联的 VPC 安全组。如果您不创建 VPC 安全组，则可以在创建集群时使用默认安全组。有关如何为您的集群创建安全组的说明，请参阅[创建 IPv4仅供文档数据库集群使用的 VPC](docdb-vpc-create-ipv4.md)或参阅 *Amazon Virtual Private Cloud 用户指南*中的[使用安全组控制 AWS 资源流量](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)。

### 步骤 4：在 VPC 中创建集群
<a name="step4-create-vpc-cluster"></a>

在此步骤中，创建一个集群，并使用您在之前的步骤中创建的 VPC 名称、子网组和 VPC 安全组。

**注意**  
如果要让 VPC 中的集群实现公开访问，则必须启用 VPC 属性 `DNS hostnames` 和 `DNS resolution`。有关更多信息，请参阅《Amazon Virtual Private Cloud 用户指南》**中的[查看和更新 VPC 的 DNS 属性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns-updating.html)。

有关如何创建集群的详细信息，请参阅 [创建 Amazon DocumentDB 集群](db-cluster-create.md)。

在**连接**部分中出现提示时，输入 VPC 名称、子网组和 VPC 安全组。

**注意**  
文档DBDocument数据库集群目前 VPCs 不支持更新。

# 访问 VPC 中的 Amazon DocumentDB 集群
<a name="access-cluster-vpc"></a>

Amazon DocumentDB 支持以下场景来访问 VPC 中的集群：

**Topics**
+ [同一 VPC 中的亚马逊 EC2 实例](#access-inside-vpc)
+ [其他 VPC 中的亚马逊 EC2 实例](#access-different-vpc)

## VPC 中的一个集群，由同一 VPC 中的 Amazon EC2 实例访问
<a name="access-inside-vpc"></a>

VPC 中集群的常见用途是与在同一 VPC 中的 Amazon EC2 实例中运行的应用程序服务器共享数据。

管理同一 VPC 中 EC2 实例和集群之间访问权限的最简单方法是执行以下操作：
+ 为集群创建所属 VPC 安全组。此安全组可用于限制对集群的访问权限。例如，您可以为该安全组创建自定义规则。该规则可能允许使用您创建集群时分配给集群的端口以及您用来访问集群的 IP 地址（用于开发或其他目的）进行 TCP 访问。
+ 为您的 EC2 实例（Web 服务器和客户端）创建一个 VPC 安全组。如果需要，该安全组可以允许使用 VPC 的路由表从互联网访问 EC2 实例。例如，您可以在此安全组上设置规则，允许 TCP 通过端口 22 访问 EC2 实例。
+ 在安全组中为集群创建自定义规则，允许来自您为 EC2 实例创建的安全组的连接。这些规则将允许安全组的任何成员访问集群。

在单独的可用区中还有一个额外的公有和私有子网。DocumentDB 子网组需要位于至少两个可用区中的一个子网。额外的子网使将来很容易切换到多可用区集群部署。

有关如何为此场景创建包含公有子网和私有子网的 VPC 的说明，请参阅 [创建 IPv4仅供文档数据库集群使用的 VPC](docdb-vpc-create-ipv4.md)。

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

**要在 VPC 安全组中创建允许来自其他安全组的连接的规则，请执行以下操作：**

1. 登录 AWS 管理控制台 并打开亚马逊 VPC 控制台，网址为 [https://console.aws.amazon.com/](https://console.aws.amazon.com//vpc)vpc。

1. 在导航窗格中，找到并选择**安全组**。

1. 选择或创建要允许另一个安全组的成员访问的安全组。这是要用于您的集群的安全组。选择 **Inbound rules**（入站规则）选项卡，然后选择 **Edit inbound rules**（编辑入站规则）。

1. 在 **Edit inbound rules**（编辑入站规则）页面上，选择 **Add rule**（添加规则）。

1. 对于**类型**，选择与创建集群时使用的端口相对应的条目，例如**自定义 TCP**。

1. 在**源**字段中，开始键入安全组的 ID，其中列出了匹配的安全组。选择您希望其成员可以访问此安全组保护的资源的安全组。在前面的场景中，这是您用于 EC2 实例的安全组。

1. 如果需要，可通过在**源**字段中创建**类型**为**所有 TCP** 的规则以及安全组，对 TCP 协议重复这些步骤。如果您打算使用 UDP 协议，请在 **Source**（源）框中创建 **Type**（类型）为 **All UDP**（所有 UDP）的规则以及安全组。

1. 选择**保存规则**。

以下屏幕显示了包含其来源的安全组的入站规则。

![\[“入站规则”选项卡显示以安全组作为源的规则\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/inbound-rule-sg.png)


有关从您的 EC2 实例连接到集群的更多信息，请参阅[自动连接 Amazon EC2](connect-ec2-auto.md)。

## VPC 中的一个集群，由另一个 VPC 中的 Amazon EC2 实例访问
<a name="access-different-vpc"></a>

当您的集群与您用于访问集群的 EC2 实例位于不同的 VPC 中时，您可以使用 VPC 对等连接来访问集群。

VPC 对等连接是两者之间的网络连接 VPCs ，允许您使用私有 IP 地址在两者之间路由流量。这两个 VPC 中的资源可以彼此通信，就像它们在同一网络中一样。您可以在自己的账户 VPCs、另一个 AWS 账户中的 VPC 或其他账户中的 VPC 之间创建 VPC 对等连接。 AWS 区域要了解有关 VPC 对等的更多信息，请参阅 *Amazon Virtual Private Cloud 用户指南* 中的 [VPC 对等](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-peering.html)。

# 创建 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.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html](https://docs.aws.amazon.com/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.aws.amazon.com//vpc) 控制台。

1. 在的右上角 AWS 管理控制台，选择要在其中创建 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.aws.amazon.com//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.aws.amazon.com//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.aws.amazon.com//vpc) 控制台。

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

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

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/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.aws.amazon.com/vpc/latest/userguide/delete-vpc.html)。

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

1. 删除子网组：

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

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

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

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

1. 记下 VPC ID：

   1. 在 [https://console.aws.amazon.com/vpc 上打开亚马逊 VPC](https://console.aws.amazon.com//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.aws.amazon.com//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.aws.amazon.com//vpc) 控制台。

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

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

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

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

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

# 创建双堆栈 VPC 以用于 DocumentDB 集群
<a name="docdb-vpc-create-dual-stack"></a>

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

**Topics**
+ [步骤 1：创建包含私有子网和公有子网的 VPC](#ds-vpc-private-public-subnets)
+ [步骤 2：为公有 Amazon EC2 实例创建 VPC 安全组](#ds-vpc-public-security-group)
+ [步骤 3：为私有集群创建 VPC 安全组](#ds-vpc-private-security-group)
+ [步骤 4：创建子网组](#ds-vpc-subnet-group)
+ [步骤 5：在双堆栈模式下创建 Amazon EC2 实例](#ds-vpc-ec2-dual-stack)
+ [步骤 6：在双堆栈模式下创建集群](#ds-vpc-cluster-dual-stack)
+ [步骤 7：连接到您的 Amazon EC2 实例和数据库集群](#ds-vpc-connect-ec2)
+ [删除 VPC](#ds-vpc-delete)

在此过程中，您将为此场景创建 VPC，该 VPC 与在双堆栈模式下运行的数据库一起使用。双栈模式允许通过 IPv6 寻址协议进行连接。有关 IP 地址的更多信息，请参阅 [Amazon DocumentDB IP 寻址](vpc-clusters.md#vpc-docdb-ip-addressing)。

大多数区域支持双堆栈网络集群。有关更多信息，请参阅 [双堆栈模式区域和版本可用性](vpc-clusters.md#dual-stack-availability)。要查看双堆栈模式的限制，请参阅 [双堆栈网络集群的限制](vpc-clusters.md#dual-stack-limitations)。

本主题和 IPv4仅限主题在同一 VPC 中创建公有子网和私有子网。有关在一个 VPC 中创建 Amazon DocumentDB 集群并在另一个 VPC 中创建亚马逊 EC2 实例的信息，请参阅。[访问 VPC 中的 Amazon DocumentDB 集群](access-cluster-vpc.md)

您的 DocumentDB 集群只需要对您的亚马逊 EC2 实例可用，不能用于公共互联网。因此，请创建包含公有子网和私有子网的 VPC。该 EC2 实例托管在公有子网中，因此它可以访问公共互联网。集群托管在私有子网中。该 EC2 实例可以连接到集群，因为它托管在同一 VPC 中。但是，集群不可用于公共互联网，从而提高了安全性。

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

要创建使用双堆栈模式的集群，请为**网络类型**设置指定**双堆栈模式**。您也可以使用相同的设置修改集群。有关创建集群的更多信息，请参阅 [创建 Amazon DocumentDB 集群](db-cluster-create.md)。有关修改数据库集群的更多信息，请参阅 [修改 Amazon DocumentDB 集群](db-cluster-modify.md)。

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

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

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

**创建 VPC 和子网**

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

1. 在的右上角 AWS 管理控制台，选择要在其中创建 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-dual-stack**
   + **IPv4 CIDR 块 —** **10.0.0.0/16**
   + **IPv6 CIDR 块** — **亚马逊 IPv6 **提供的 CIDR 块
   + **租赁** – **默认值**
   + **可用区数量 (AZs)** — **2**
   + **自定义 AZs**-保留默认值
   + **公有子网的数量** – **2**
   + **私有子网的数量** – **2**
   + **自定义子网 CIDR 数据块** – 保留默认值
   + **NAT 网关（\$1）**– **无**
   + **仅出口互联网网关** – **否**
   + **VPC 端点** – **无**
   + **DNS 选项** – 保留默认值

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

## 步骤 2：为公有 Amazon EC2 实例创建 VPC 安全组
<a name="ds-vpc-public-security-group"></a>

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

**创建 VPC 安全组**

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

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

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

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

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

      互联网协议版本 4 (IPv4) 地址范围的一个示例是`203.0.113.25/32`。互联网协议版本 6 (IPv6) 地址范围的一个示例是`2001:db8:1234:1a00::/64`。

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

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

   1. 为您的新入站规则设置以下值，以允许 SSH 访问您的 Amazon EC2 实例。完成此操作后，您可以连接到您的 EC2 实例以安装应用程序或其他实用程序。指定 IP 地址以便您可以访问您的 EC2 实例：
      + **类型** – **SSH**
      + **来源** – 您在步骤 a 中创建的 IP 地址或范围。 IPv4 地址范围的示例是 **203.0.113.25/3** 2。 IPv6 地址范围的一个示例是**2001:DB8::/32**。

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

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

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

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

要保持您的集群为私有，请创建第二个安全组进行私有访问。要连接到 VPC 中的私有集群，请将入站规则添加到 VPC 安全组。它们仅允许来自您的 Amazon EC2 实例的流量。

**创建 VPC 安全组**

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

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

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

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

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

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

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

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

子网组是在 VPC 中创建的一组子网，随后可为集群指定这些子网。通过使用子网组，您可以在创建集群时指定特定的 VPC。要创建与 `DUAL` 兼容的子网组，所有子网都必须与 `DUAL` 兼容。为了`DUAL`兼容，子网必须具有关联的 IPv6 CIDR。

**创建子网组**

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

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

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

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

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

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

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

1. 选择**创建**。

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

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

1. 选择**创建**。

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

## 步骤 5：在双堆栈模式下创建 Amazon EC2 实例
<a name="ds-vpc-ec2-dual-stack"></a>

要创建亚马逊 EC2 实例，请按照《*亚马逊弹性计算云用户指南*[》中控制台中的使用启动实例向导](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html)启动实例中的说明进行操作。 EC2 

在 **Configure Instance Details**（配置实例详细信息）页面上，设置以下值并将其他值保留为其原定设置值：
+ **网络**-选择同时包含公有子网和私有子网的现有 VP **vpc-example-dual-stackC，例如中创建的-vpc**（vpc-*标识符*）。[步骤 1：创建包含私有子网和公有子网的 VPC](#ds-vpc-private-public-subnets)
+ **子网** — 选择现有的公有子网，例如在中创建的子网***标识符* \$1 example-dual-stack-subnet-public1-us-east-2a \$1 us-east** -2a。[步骤 2：为公有 Amazon EC2 实例创建 VPC 安全组](#ds-vpc-public-security-group)
+ **自动分配公有 IP** – 选择**启用**。
+ **自动分配 IPv6 IP**-选择**启用**。
+ **防火墙（安全组）**– 选择**选择现有安全组**。
+ **常用安全组**-选择现有的安全组，例如中**example-dual-stack-securitygroup**创建的安全组[步骤 2：为公有 Amazon EC2 实例创建 VPC 安全组](#ds-vpc-public-security-group)。确保您选择的安全组包括 Secure Shell (SSH) 和 HTTP 访问的入站规则。

## 步骤 6：在双堆栈模式下创建集群
<a name="ds-vpc-cluster-dual-stack"></a>

在此步骤中，您将创建在双堆栈模式下运行的数据库集群。**\$1\$1\$1 注意：主机 IPv6 更新后，此部分需要编辑！！！**

**在双堆栈模式下创建集群**

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

1. 在控制台的右上角，选择要 AWS 区域 在哪里创建 DocumentDB 集群。此示例使用美国东部（俄亥俄州）区域。

1. 在导航窗格中，选择**集群**。

1. 在**集群**列表页面上，选择**创建**。

1. 在**创建 Amazon DocumentDB 集群**页面上，确保选择了**基于实例的集群**选项。

1. 在**连接**部分的**网络类型**下，选择**双堆栈模式**。  
![\[控制台中的网络类型部分，已选中双堆栈模式。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/nw-type-dual-stack.png)

1. 在页面底部，打开**显示高级设置**。

1. 在**网络设置**部分中，选择以下值：
   + **虚拟私有云 (VPC)**-选择包含公有子网和私有子网的现有 VPC，例如中[步骤 1：创建包含私有子网和公有子网的 VPC](#ds-vpc-private-public-subnets)创建的 **vpc-example-dual-stack**（vpc-*标识符*）。

     VPC 的子网必须位于不同的可用区中。
   + **子网组**-为 VPC 选择一个子网组，例如中创建的 **example-dual-stack-cluster-subnet-g** roup。[步骤 4：创建子网组](#ds-vpc-subnet-group)
   + **公有访问权限** – 选择**否**。
   + **VPC 安全组（防火墙）**– 选择**选择现有**。
   + **现有 VPC 安全组**-选择配置为私有访问的现有 VPC 安全组，例如中创建的 **example-dual-stack-cluster-securitygro** up。[步骤 3：为私有集群创建 VPC 安全组](#ds-vpc-private-security-group)

     通过选择与其他每个安全组关联的 **X** 来删除该安全组，如默认安全组。
   + **可用区** – 选择您在步骤 1 中创建的可用区。示例：**us-west-2a**。

     为避免跨可用区流量，请确保集群和 EC2 实例位于同一个可用区内。

1. 对于其余部分，请指定集群设置。有关每项设置的信息，请参阅 [创建 Amazon DocumentDB 集群](db-cluster-create.md)。

## 步骤 7：连接到您的 Amazon EC2 实例和数据库集群
<a name="ds-vpc-connect-ec2"></a>

在双堆栈模式下创建 Amazon EC2 实例和 DocumentDB 集群后，您可以使用协议连接到每个集群。 IPv6 要使用 IPv6 协议连接 EC2 实例，请按照 *Amazon Elastic Compute Cloud 用户指南*中[连接您的 EC2 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)中的说明进行操作。

要从 EC2 实例连接到您的 DocumentDB 集群，请按照 “ EC2 手动连接 Amazon” 主题中的[步骤 5：安装 MongoDB Shell](connect-ec2-manual.md#manual-connect-ec2.install-mongo-shell)说明进行操作（并继续执行后续步骤 6 和步骤 7 的相同过程）。

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

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

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

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

1. 删除子网组：

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

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

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

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

1. 记下 VPC ID：

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

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

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

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

1. 删除安全组：

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

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

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

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

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

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

1. 删除 NAT 网关：

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

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

   1. 选择您创建的 VPC 的 NAT 网关。使用 VPC ID 标识正确的 NAT 网关。

   1. 对于 **Actions**（操作），请选择 **Delete NAT gateway**（删除 NAT 网关）。

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

1. 删除 VPC：

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

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

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

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

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

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

1. 释放弹性 IP 地址：

   1. 在 [https://console.aws.amazon.com/ec2](https://console.aws.amazon.com//ec2) 上打开 EC2 控制台。

   1. 选择**EC2 控制面板**，然后选择**弹性 IPs**。

   1. 选择要释放的弹性 IP 地址。

   1. 对于 **Actions**（操作），请选择 **Release Elastic IP addresses**（释放弹性 IP 地址）。

   1. 在确认对话框中，选择**释放**。