

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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-only的 VPC 以與 DocumentDB 叢集搭配使用](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](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 資源，例如 Amazon DocumentDB 叢集或 Amazon EC2 執行個體。VPC 可以是您帳戶隨附的預設 VPC，或是您自行建立的 VPC。所有 VPCs都與 AWS 您的帳戶相關聯。

您的預設 VPC 有三個子網路，可供您在 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.0/24 和 10.0.1.0/24 等範圍通常就夠大了。
+ VPC 可以具有 `instance tenancy` `default`或 的屬性`dedicated`。所有預設 VPCs都會將 `instance tenancy` 屬性設定為預設，且預設 VPC 可以支援任何執行個體類別。

  如果您選擇在`instance tenancy`屬性設定為 的專用 VPC 中擁有叢集`dedicated`，則叢集的執行個體類別必須是已核准的 Amazon EC2 專用執行個體類型之一。例如，`r5.large`EC2 專用執行個體會對應至`db.r5.large`執行個體類別。如需 VPC 中執行個體租用的相關資訊，請參閱[《Amazon Elastic Compute Cloud 使用者指南》中的 Amazon EC2 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Instances.html)。 **

  如需進一步了解專用執行個體中可能出現的執行個體類型，請參閱 Amazon EC2 定價頁面上的 [Amazon EC2 專用執行個體](https://aws.amazon.com/ec2/pricing/dedicated-instances/)。
**注意**  
當您將叢集`dedicated`的 屬性設定為 `instance tenancy` 時，不保證叢集會在專用主機上執行。

## 使用子網路群組
<a name="vpc-working-subnet-groups"></a>

Subnets (子網路) 是可供您指定之 VPC 的 IP 地址範圍區段，您可根據安全與運作需求將資源分組。子網路群組是您在 VPC 中建立，然後為叢集指定的子網路集合 （通常是私有）。透過使用子網路群組，您可以在使用 AWS CLI 或 Amazon DocumentDB API 建立叢集時指定特定 VPC。如果使用主控台，您可以選擇要使用的 VPC 和子網路群組。

每個子網路群組在指定的可用區域中應至少有兩個子網路 AWS 區域。在 VPC 中建立叢集時，您可以選擇其子網路群組。從子網路群組中，Amazon DocumentDB 會選擇子網路和該子網路內的 IP 地址，以與叢集中的主要執行個體建立關聯。資料庫使用包含子網路的可用區域。DocumentDB 一律會從具有可用 IP 地址空間的子網路指派 IP 地址。

子網路群組中的子網路為公有或私有，取決於您為其網路存取控制清單 （網路 ACLs) 和路由表設定的組態。若要讓叢集可公開存取，其子網路群組中的所有子網路都必須是公開的。如果與可公開存取叢集相關聯的子網路從公有變更為私有，可能會影響叢集可用性。

若要建立支援雙堆疊模式的子網路群組，請確定您新增至子網路群組的每個子網路都有與其相關聯的網際網路通訊協定第 6 版 (IPv6) CIDR 區塊。如需詳細資訊，請參閱《*Amazon Virtual Private Cloud 使用者指南*》中的 [Amazon DocumentDB IP 定址](#vpc-docdb-ip-addressing)和 [VPC 的 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 中建立叢集。

使用共用 VPC 時要記住的一些考量：
+ 您可以將叢集從共用 VPC 子網路移至非共用 VPC 子網路，反之亦然。
+ 共用 VPC 中的參與者必須在 VPC 中建立安全群組，以允許他們建立叢集。
+ 共用 VPC 中的擁有者和參與者可以使用 DocumentDB 查詢來存取資料庫。不過，只有資源的建立者才能對資源進行任何 API 呼叫。

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

IP 地址可讓您 VPC 中的資源彼此互相通訊，也能和網際網路上的資源通訊。Amazon DocumentDB 同時支援 IPv4 和 IPv6 定址通訊協定。根據預設，Amazon DocumentDB 和 Amazon VPC 會使用 IPv4 定址通訊協定。您無法關閉此行為。當您建立 VPC 時，請務必指定 IPv4 CIDR 區塊 (私有 IPv4 地址的範圍)。您可以選擇性地將 IPv6 CIDR 區塊指派給 VPC 和子網路，並將該區塊的 IPv6 地址指派給子網路中的叢集。

**注意**  
僅 Amazon 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 地址。您可以在相同的 VPC 中使用私有 IPv4 地址在叢集和其他資源之間進行通訊，例如 Amazon EC2 執行個體。每個叢集都有用於在 VPC 中通訊的私有 IP 地址。

公有 IP 地址是可從網際網路存取的 IPv4 地址。DocumentDB 叢集不允許公有 IP 定址。任何公有 IP 地址都應由網際網路閘道和公有子網路中的 EC2 解析。

若要了解如何建立僅具有私有 IPv4 地址的 VPC，可用於常見的 Amazon DocumentDB 案例，請參閱 [建立IPv4-only的 VPC 以與 DocumentDB 叢集搭配使用](docdb-vpc-create-ipv4.md)。

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

您可以選擇性的將 IPv6 CIDR 區塊與您的 VPC 和子網路建立關聯，並指派該區塊的 IPv6 地址給您 VPC 中的資源。每個 IPv6 地址都是全域唯一的。

您的 VPC 的 IPv6 CIDR 區塊會自動從 Amazon 的 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 端點的網際網路閘道存取。DocumentDB 這樣做是為了確保您的 IPv6 端點是私有的，並且只能在 VPC 內存取。

**Topics**
+ [雙堆疊模式和子網路群組](#dual-stack-subnet)
+ [使用雙堆疊模式叢集](#dual-stack-clusters)
+ [修改IPv4-only的叢集以使用雙堆疊模式](#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，請在輸出`SupportedNetworkTypes`中執行 [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)命令並檢視 。

僅供讀取複本視為獨立叢集，並且可以具有與主要叢集不同的網路類型。如果您變更僅供讀取複本主要叢集的網路類型，則僅供讀取複本不會受到影響。還原叢集時，您可以將叢集還原至支援的任何網路類型。

#### 使用雙堆疊模式叢集
<a name="dual-stack-clusters"></a>

當您建立或修改叢集時，您可以指定雙堆疊模式，以允許資源透過 IPv4, IPv6 或兩者與叢集通訊。

當您使用 AWS 管理主控台 建立或修改叢集時，您可以在**網路類型**區段中指定雙堆疊模式。下圖顯示 主控台中的**網路類型**區段：

![\[主控台中的網路類型區段，選取了雙堆疊模式。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/nw-type-dual-stack.png)


當您使用 AWS CLI 建立或修改叢集時，請將 `--network-type`選項設定為`DUAL`使用雙堆疊模式。當您使用 DocumentDB API 建立或修改叢集時，請將 `NetworkType` 參數設定為 `DUAL` 以使用雙堆疊模式。如果指定的 DocumentDB 引擎版本或子網路群組不支援雙堆疊模式，則會傳回`NetworkTypeNotSupported`錯誤。

如需建立叢集的詳細資訊，請參閱 [建立 Amazon DocumentDB 叢集](db-cluster-create.md)。如需修改叢集的詳細資訊，請參閱 [修改 Amazon DocumentDB 叢集](db-cluster-modify.md)。

若要使用主控台判斷叢集是否處於雙堆疊模式，請在叢集的**連線與安全**索引標籤上檢視**網路類型**。

#### 修改IPv4-only的叢集以使用雙堆疊模式
<a name="modify-ipv4-clusters"></a>

您可以修改IPv4-only的叢集，以使用雙堆疊模式。若要這麼做，請變更叢集的網路類型。

建議您在維護時段期間變更 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` 參數設定為 的`ModifyDBCluster`呼叫`DUAL`，將網路變更為雙堆疊模式。在相同的 API 呼叫`NetworkType`中新增其他參數以及 可能會導致停機時間。若要修改多個參數，請確定已成功完成網路類型修改，然後再傳送另一個具有其他參數的 `ModifyDBCluster` 請求。

如果您在變更後無法連線至叢集，請確定已正確設定用戶端和資料庫安全防火牆和路由表，以允許流量流向所選網路上的資料庫 (IPv4 或 IPv6)。您可能還需要修改作業系統參數、程式庫或驅動程式才可使用 IPv6 地址進行連線。

**修改IPv4-only的叢集以使用雙堆疊模式**

1. 修改子網路群組以支援雙堆疊模式，或建立支援雙堆疊模式的子網路群組：

   1. 建立 IPv6 CIDR 區塊與 VPC 的關聯。

      如需說明，請參閱《Amazon [VPC 使用者指南》中的新增或移除 CIDR 區塊至您的](https://docs.aws.amazon.com/vpc/latest/userguide/add-ipv4-cidr.html) VPC。 **

   1. 將 IPv6 CIDR 區塊連接至子網路群組中的所有子網路。

      如需說明，請參閱《*Amazon Virtual Private Cloud 使用者指南*》中的[新增或移除 IPv6 CIDR 區塊至子網路](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-associate-ipv6-cidr.html)。

   1. 確認子網路群組支援雙堆疊模式。

      如果您使用的是 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)命令，並確認叢集`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_tw/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 區域 的 ：
+ 美國東部 (俄亥俄)
+ 美國東部 (維吉尼亞北部)
+ 美國西部 (奧勒岡)
+ 非洲 (開普敦)
+ 南美洲 (聖保羅)
+ 亞太區域 (香港)
+ 亞太區域 (海德拉巴)
+ 亞太區域 (馬來西亞)
+ 亞太地區 (孟買)
+ 亞太區域 (大阪)
+ 亞太區域 (首爾)
+ 亞太區域 (新加坡)
+ 亞太地區 (悉尼)
+ 亞太地區 (雅加達)
+ 亞太區域 (泰國)
+ 亞太地區 (東京)
+ 加拿大 (中部)
+ 中國 (北京)
+ 中國 (寧夏)
+ 歐洲 (法蘭克福)
+ 歐洲 (愛爾蘭)
+ 歐洲 (倫敦)
+ 歐洲 (米蘭)
+ Europe (Paris)
+ 歐洲 (西班牙)
+ 歐洲 (斯德哥爾摩)
+ 以色列 (特拉維夫)
+ 墨西哥 (中部)
+ 中東 (阿拉伯聯合大公國)
+ AWS GovCloud （美國西部）
+ AWS GovCloud （美國東部）

**版本支援**

Amazon DocumentDB 4.0 版和 5.0 版支援雙堆疊模式。如果您無法在其中一個版本上存取雙堆疊模式，請確定您在叢集上執行最新的引擎修補程式版本。

#### 雙堆疊網路叢集的限制
<a name="dual-stack-limitations"></a>

下列限制適用於雙堆疊網路叢集：
+ 叢集無法只使用 IPv6 通訊協定。其可專門使用 IPv4，也可使用 IPv4 和 IPv6 通訊協定 (雙堆疊模式)。
+ Amazon DocumentDB 不支援原生 IPv6 子網路。
+ 使用雙堆疊模式的叢集必須是私有的。其無法公開存取。

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

下列程序可協助您在 VPC 中建立叢集。若要使用預設 VPC，您可以從步驟 2 開始，並使用已為您建立的 VPC 和子網路群組。您也可以視需要建立其他 VPCs。

**注意**  
如果您希望 VPC 中的叢集可公開存取，則必須啟用 VPC 屬性 `DNS hostnames`和 來更新 VPC 的 DNS 資訊`DNS resolution`。如需有關更新 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，則系統會自動為您於所在 AWS 區域的每個可用區域中建立子網路。

如需詳細資訊，請參閱 [建立IPv4-only的 VPC 以與 DocumentDB 叢集搭配使用](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 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中選擇 **Subnet groups (子網路群組)**。

1. 選擇**建立**。

1. 在**名稱**中，輸入子網路群組的名稱。

1. 針對**描述**，輸入子網路群組的描述。

1. 在**新增子網路**區段中，針對 **VPC**，選擇您建立的預設 VPC 或 VPC。然後從可用區域選擇包含子網路**的可用區域**，然後從**子網路**選擇子網路。

1. 選擇建立。

   您的新子網路群組會出現在 DocumentDB 主控台的**子網路群組**清單中。您可以在視窗底部的詳細資訊窗格中，選擇子網路群組以查看詳細資訊，包括與群組相關聯的所有子網路。

### 步驟 3：建立 VPC 安全群組
<a name="step3-create-security-group"></a>

建立叢集之前，請先建立要與其建立關聯的 VPC 安全群組。如果您未建立 VPC 安全群組，您可以在建立叢集時使用預設安全群組。如需如何為叢集建立安全群組的指示，請參閱 [建立IPv4-only的 VPC 以與 DocumentDB 叢集搭配使用](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 安全群組。

**注意**  
DocumentDBDocumentDB 叢集目前不支援更新 VPCs。

# 在 VPC 中存取 Amazon DocumentDB 叢集
<a name="access-cluster-vpc"></a>

Amazon DocumentDB 支援下列在 VPC 中存取叢集的案例：

**Topics**
+ [相同 VPC 中的 Amazon EC2 執行個體](#access-inside-vpc)
+ [不同 VPC 中的 Amazon EC2 執行個體](#access-different-vpc)

## 由相同 VPC 中的 Amazon EC2 執行個體存取之 VPC 中的叢集
<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-only的 VPC 以與 DocumentDB 叢集搭配使用](docdb-vpc-create-ipv4.md)。

**提示**  
您可以在建立叢集時，自動設定 Amazon EC2 執行個體與 DocumentDB 叢集之間的網路連線。如需詳細資訊，請參閱[自動連接 Amazon EC2](connect-ec2-auto.md)。

**若要在允許來自另一個安全群組連線的 VPC 安全群組中建立規則，請執行下列動作：**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc)：// 開啟 Amazon VPC 主控台。

1. 在導覽窗格中，尋找並選擇**安全群組**。

1. 選擇或建立要允許其他安全群組成員存取的安全群組。這是您用於叢集的安全群組。選擇 **Inbound rules** (傳入規則) 索引標籤，然後選擇 **Edit inbound rules** (編輯對內規則)。

1. 在 **Edit inbound rules** (編輯對內規則) 頁面上，選擇 **Add rule** (新增規則)。

1. 針對**類型**，選擇與您建立叢集時所使用的連接埠對應的項目，例如**自訂 TCP**。

1. 在**來源**欄位中，開始輸入安全群組的 ID，其中列出相符的安全群組。選擇安全群組，允許其成員存取由此安全群組所保護的資源。在前一個藍本中，這是您用於 EC2 執行個體的安全群組。

1. 如有必要，請在**來源**欄位中建立具有**所有 TCP** 做為**類型**和安全群組的規則，以重複 TCP 通訊協定的步驟。若您打算使用 UDP 通訊協定，請使用 **All UDP** (所有 UDP) 作為 **Type** (類型)，並在 **Source ** (來源) 中輸入安全群組，以建立規則。

1. 選擇**儲存規則**。

下列畫面顯示安全群組針對其來源的對內規則。

![\[傳入規則索引標籤顯示以安全群組做為來源的規則\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/inbound-rule-sg.png)


如需從 EC2 執行個體連線至叢集的詳細資訊，請參閱 [自動連接 Amazon EC2](connect-ec2-auto.md)。

## 由不同 VPC 中的 Amazon EC2 執行個體存取之 VPC 中的叢集
<a name="access-different-vpc"></a>

當您的叢集與您用來存取叢集的 EC2 執行個體位於不同的 VPC 中時，您可以使用 VPC 對等互連來存取叢集。

VPC 對等連線是指兩個 VPC 之間的網路連線，透過此機制，您就可以使用私有 IP 地址在兩者之間路由流量。這兩個 VPC 中的資源能彼此通訊，有如位於相同網路中一樣。您可以在自己的 VPCs 之間建立 VPC 對等互連、在另一個 AWS 帳戶中建立 VPC，或在不同的 VPC 之間建立 VPC 對等互連 AWS 區域。若要進一步了解 VPC 互連，請參閱《Amazon Virtual Private Cloud 使用者指南》**中的 [VPC 互連](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-peering.html)。

# 建立IPv4-only的 VPC 以與 DocumentDB 叢集搭配使用
<a name="docdb-vpc-create-ipv4"></a>

常見案例包括以 Amazon VPC 服務為基礎的虛擬私有雲端 (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 的詳細資訊，請參閱《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：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 的 Amazon 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 CIDR 區塊**
   + **租用** — **預設**
   + **可用區域 (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：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 的 Amazon VPC 主控台。

1. 選擇 **VPC Dashboard (VPC 儀表板)**，再選擇 **Security Groups (安全群組)**，然後選擇 **Create security group (建立安全群組)**。

1. 在 **Create security group (建立安全群組)** 頁面上，設定下列值：
   + **安全群組名稱** — **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. 在 **Inbound rules (傳入規則)** 區段中，選擇 **Add rule (新增規則)**。

   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，因為您稍後在另一個程序中需要它。

## 步驟 3：建立私有叢集的 VPC 安全群組
<a name="create-vpc-sg-private"></a>

若要保持叢集的私密性，請建立第二個安全群組以進行私有存取。若要連線至 VPC 中的私有叢集，請將傳入規則新增至 VPC 安全群組，僅允許來自應用程式的流量。

**建立 VPC 安全群組**

1. 開啟位於 https：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 的 Amazon VPC 主控台。

1. 選擇 **VPC Dashboard (VPC 儀表板)**，再選擇 **Security Groups (安全群組)**，然後選擇 **Create security group (建立安全群組)**。

1. 在 **Create security group (建立安全群組)** 頁面上，設定下列值：
   + **安全群組名稱** — **example-securitygroup**
   + **描述** — **Instance security group**
   + **VPC** — 選擇您先前建立的 VPC，例如：**vpc-example**

1. 將傳入規則新增至安全群組

   1. 在 **Inbound rules (傳入規則)** 區段中，選擇 **Add rule (新增規則)**。

   1. 為您的新傳入規則設定下列值，以允許來自 Amazon EC2 執行個體的連接埠 27017 上的 DocumentDB 流量。執行此操作後，您可以從應用程式連線到叢集。如此一來，您就可以將資料從應用程式存放和擷取到資料庫。
      + **類型** — **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：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 的 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **Subnets** (子網路)。

   1. 請注意您在名為 的步驟 1 中建立之子網路IDs，例如：**example-subnet-private1-us-west-2a** 和 **example-subnet-private2-us-west-2b**。建立子網路群組時，您需要子網路 IDs。

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

   請確定您連線到 Amazon DocumentDB 主控台，而不是 Amazon VPC 主控台。

1. 在導覽窗格中選擇 **Subnet groups (子網路群組)**。

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。例如，這些資源可能包含 Amazon EC2 執行個體或 DocumentDB 叢集。如需詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的[刪除 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/delete-vpc.html)。

**刪除 VPC 和相關資源**

1. 刪除子網路群組：

   1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

   1. 在導覽窗格中選擇 **Subnet groups (子網路群組)**。

   1. 選取您要刪除的子網路群組，例如 **example-db-subnet-group**。

   1. 選擇 **Delete** (刪除)，然後在確認視窗中選擇 **Delete** (刪除)。

1. 請記下 VPC ID：

   1. 在 https：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 開啟 Amazon VPC 主控台。

   1. 選擇 **VPC 儀表板**，然後選擇**您的 VPCs**。

   1. 在清單中，識別您建立的 VPC，例如 **vpc-example**。

   1. 請記下您所建立的 VPC 的 **VPC ID**。在稍後的步驟中，您需要 VPC ID。

1. 刪除安全群組：

   1. 開啟位於 https：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 的 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **Security Groups** (安全群組)。

   1. 選取 Amazon DocumentDB 叢集的安全群組，例如 **example-securitygroup**。

   1. 針對**動作**，選擇**刪除安全群組**，然後在確認對話方塊中選擇**刪除**。

   1. 返回**安全群組**頁面，選取 Amazon EC2 執行個體的安全群組，例如 **example-securitygroup**。

   1. 針對**動作**，選擇**刪除安全群組**，然後在確認對話方塊中選擇**刪除**。

1. 刪除 VPC

   1. 開啟位於 https：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 的 Amazon VPC 主控台。

   1. 選擇 **VPC 儀表板**，然後選擇**您的 VPCs**。

   1. 選取您要刪除的 VPC，例如 **vpc-example**。

   1. 針對**動作**，選擇刪除 VPC。

      確認頁面會顯示與 VPC 相關聯的其他資源，這些資源也將遭到刪除，包括與其相關聯的子網路。

   1. 在確認對話方塊中，輸入 **delete**，然後選擇**刪除**。

# 建立雙堆疊 VPC 以與 DocumentDB 叢集搭配使用
<a name="docdb-vpc-create-dual-stack"></a>

常見案例包括以 Amazon VPC 服務為基礎的虛擬私有雲端 (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-only主題會在相同的 VPC 中建立公有和私有子網路。如需有關在一個 VPC 中建立 Amazon DocumentDB 叢集和在不同 VPC 中建立 Amazon EC2 執行個體的資訊，請參閱 [在 VPC 中存取 Amazon DocumentDB 叢集](access-cluster-vpc.md)。

您的 DocumentDB 叢集必須僅適用於您的 Amazon EC2 執行個體，而非公有網際網路。因此，您建立同時包含公有和私有子網路的 VPC。EC2 執行個體託管在公有子網路中，因此可以連線到公有網際網路。叢集託管在私有子網路中。EC2 執行個體可以連接到叢集，因為它託管在相同的 VPC 中。不過， 叢集不適用於公有網際網路，可提供更高的安全性。

本主題中的程序會在個別可用區域中設定額外的公有和私有子網路。程序不會使用這些子網路。DocumentDB 子網路群組至少需要兩個可用區域中的子網路。額外的子網路可讓您輕鬆設定多個 DocumentDB 執行個體。

若要建立使用雙堆疊模式的叢集，請為**網路類型**設定指定**雙堆疊模式** e。您也可以使用相同的設定來修改叢集。如需建立叢集的詳細資訊，請參閱 [建立 Amazon DocumentDB 叢集](db-cluster-create.md)。如需修改資料庫叢集的詳細資訊，請參閱[修改 Amazon DocumentDB 叢集](db-cluster-modify.md)。

本主題說明為 Amazon DocumentDB 叢集設定 VPC。如需 Amazon 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：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 的 Amazon 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 區塊** — **Amazon 提供的 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 安全群組。若要連接至 VPC 中的公有 EC2 執行個體，請將傳入規則新增至 VPC 安全群組，以允許流量從網際網路連接。

**建立 VPC 安全群組**

1. 開啟位於 https：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 的 Amazon VPC 主控台。

1. 選擇 **VPC Dashboard (VPC 儀表板)**，再選擇 **Security Groups (安全群組)**，然後選擇 **Create security group (建立安全群組)**。

1. 在 **Create security group (建立安全群組)** 頁面上，設定下列值：
   + **安全群組名稱** — **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 地址範圍。
**警告**  
若您將 `0.0.0.0/0` 用於 IPv4 或 `::0` 用於 IPv6，則可讓所有 IP 地址使用 SSH 存取您的公有執行個體。通常在測試環境中短暫使用此方法是沒有問題的，但在生產環境則不安全。在生產環境中，建議您只授權特定 IP 地址或特定範圍的地址存取您的執行個體。

   1. 在 **Inbound rules (傳入規則)** 區段中，選擇 **Add rule (新增規則)**。

   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，因為您稍後在另一個程序中需要它。

## 步驟 3：建立私有叢集的 VPC 安全群組
<a name="ds-vpc-private-security-group"></a>

若要保持叢集的私密性，請建立第二個安全群組以進行私有存取。若要連線至 VPC 中的私有叢集，請將傳入規則新增至 VPC 安全群組。這些規則僅允許來自 Amazon EC2 執行個體的流量。

**建立 VPC 安全群組**

1. 開啟位於 https：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 的 Amazon VPC 主控台。

1. 選擇 **VPC Dashboard (VPC 儀表板)**，再選擇 **Security Groups (安全群組)**，然後選擇 **Create security group (建立安全群組)**。

1. 在 **Create security group (建立安全群組)** 頁面上，設定下列值：
   + **安全群組名稱** — **example-dual-stack-cluster-securitygroup**
   + **描述** — **Dual-stack cluster security group**
   + **VPC** — 選擇您先前建立的 VPC，例如：**vpc-example-dual-stack**

1. 將傳入規則新增至安全群組

   1. 在 **Inbound rules (傳入規則)** 區段中，選擇 **Add rule (新增規則)**。

   1. 為您的新傳入規則設定下列值，以允許來自 Amazon EC2 執行個體的連接埠 27017 上的 DocumentDB 流量。執行此操作後，您可以從 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：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 開啟 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **Subnets** (子網路)。

   1. 請注意您在名為 的步驟 1 中建立之子網路IDs，例如：**example-dual-stack-subnet-private1-us-west-2a** 和 **example-dual-stack-subnet-private2-us-west-2b**。建立子網路群組時，您需要子網路 IDs。

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

   請確定您連線到 Amazon DocumentDB 主控台，而不是 Amazon VPC 主控台。

1. 在導覽窗格中選擇 **Subnet groups (子網路群組)**。

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>

若要建立 Amazon EC2 執行個體，請遵循《*Amazon Elastic Compute Cloud 使用者指南*》中的[使用主控台中的啟動執行個體精靈啟動 EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html) 執行個體中的指示。

在 **Configure Instance Details** (設定執行個體詳細資訊) 頁面上設定這些值，而其他值都維持預設值：
+ **網路** — 選擇同時具有公有和私有子網路的現有 VPC，例如在 中建立的 **vpc-example-dual-stack-vpc** (vpc-*identifier*)[步驟 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)。請確定您選擇的安全性群組包含安全殼層 (SSH) 和 HTTP 存取的輸入規則。

## 步驟 6：以雙堆疊模式建立叢集
<a name="ds-vpc-cluster-dual-stack"></a>

在此步驟中，您會建立在雙堆疊模式下執行的資料庫叢集。**！！！ 注意：在對主控台進行 IPv6 更新後，本節需要編輯 ！！！**

**在雙堆疊模式中建立叢集**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

1. 在主控台的右上角，選擇您要建立 DocumentDB 叢集的 AWS 區域 。此範例使用 美國東部 (俄亥俄) 區域。

1. 在導覽窗格中，選擇**叢集**。

1. 在**叢集**清單頁面上，選擇**建立**。

1. 在**建立 Amazon DocumentDB 叢集**頁面上，確定已選擇**執行個體型叢集**選項。

1. 在**連線**區段**的網路類型**下，選擇**雙堆疊模式**。  
![\[主控台中的網路類型區段，選取了雙堆疊模式。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/nw-type-dual-stack.png)

1. 在頁面底部，開啟**顯示進階設定**。

1. 在**網路設定**區段中，設定這些值：
   + **虛擬私有雲端 (VPC)** — 選擇同時具有公有和私有子網路的現有 VPC，例如在 中建立的 **vpc-example-dual-stack** (vpc-*identifier*)[步驟 1：建立具有私有和公有子網路的 VPC](#ds-vpc-private-public-subnets)。

     VPC 必須具有位於不同可用區域的子網路。
   + **子網路群組** — 選擇 VPC 的子網路群組，例如在 中建立的 **example-dual-stack-cluster-subnet-group**[步驟 4：建立子網路群組](#ds-vpc-subnet-group)。
   + **公開存取** — 選擇**否**。
   + **VPC 安全群組 （防火牆）** — 選取**選擇現有**。
   + **現有 VPC 安全群組** — 選擇為私有存取設定的現有 VPC 安全群組，例如在 中建立的 **example-dual-stack-cluster-securitygroup**[步驟 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 叢集，請遵循 中的說明[步驟 5：安裝 MongoDB Shell](connect-ec2-manual.md#manual-connect-ec2.install-mongo-shell)，在 Connect Amazon EC2 手動主題中 （並在相同的程序中繼續後續步驟 6 和步驟 7)。

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

您可以刪除不再需要的 VPC 和其中使用的其他資源。

**注意**  
如果您在本主題中建立的 VPC 中新增資源，您可能需要先刪除這些資源，才能刪除 VPC。例如，這些資源可能包含 Amazon EC2 執行個體或 DocumentDB 叢集。如需詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的[刪除 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/delete-vpc.html)。

**刪除 VPC 和相關資源**

1. 刪除子網路群組：

   1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

   1. 在導覽窗格中選擇 **Subnet groups (子網路群組)**。

   1. 選取您要刪除的子網路群組，例如 **example-dual-stack-cluster-subnet-group**。

   1. 選擇 **Delete** (刪除)，然後在確認視窗中選擇 **Delete** (刪除)。

1. 請記下 VPC ID：

   1. 開啟位於 https：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 的 Amazon VPC 主控台。

   1. 選擇 **VPC 儀表板**，然後選擇**您的 VPCs**。

   1. 在清單中，識別您建立的 VPC，例如 **vpc-example-dual-stack**。

   1. 請記下您所建立的 VPC 的 **VPC ID**。在稍後的步驟中，您需要 VPC ID。

1. 刪除安全群組：

   1. 開啟位於 https：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 的 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **Security Groups** (安全群組)。

   1. 選取 Amazon DocumentDB 叢集的安全群組，例如 **example-dual-stack-securitygroup**。

   1. 針對**動作**，選擇**刪除安全群組**，然後在確認對話方塊中選擇**刪除**。

   1. 返回**安全群組**頁面，選取 Amazon EC2 執行個體的安全群組，例如 **example-securitygroup**。

   1. 針對**動作**，選擇**刪除安全群組**，然後在確認對話方塊中選擇**刪除**。

1. 刪除 NAT 閘道：

   1. 開啟位於 https：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 的 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **Security Groups** (安全群組)。

   1. 選取您建立之 VPC 的 NAT 閘道。使用 VPC ID 識別正確的 NAT 閘道。

   1. 若為 **Actions (動作)**，選擇 **Delete NAT gateway (刪除 NAT 閘道)**。

   1. 在確認對話方塊中，輸入 **delete**，然後選擇**刪除**。

1. 刪除 VPC

   1. 開啟位於 https：//[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com//vpc) 的 Amazon VPC 主控台。

   1. 選擇 **VPC 儀表板**，然後選擇**您的 VPCs**。

   1. 選取您要刪除的 VPC，例如 **vpc-example-dual-stack**。

   1. 針對**動作**，選擇刪除 VPC。

      確認頁面會顯示與 VPC 相關聯的其他資源，這些資源也將遭到刪除，包括與其相關聯的子網路。

   1. 在確認對話方塊中，輸入 **delete**，然後選擇**刪除**。

1. 釋出彈性 IP 地址：

   1. 在 https：//[https://console.aws.amazon.com/ec2](https://console.aws.amazon.com//ec2) 開啟 EC2 主控台。

   1. 選擇 **EC2 Dashboard** (EC2 儀表板)，然後選擇 **Elastic IPs** (彈性 IP)。

   1. 選取您要釋放的彈性 IP 地址。

   1. 若為 **Actions (動作)**，選擇 **Release Elastic IP addresses (釋放彈性 IP 地址)**。

   1. 在確認對話方塊中，選擇**釋出**。