本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
VPC 中的 DocumentDB 叢集
您的 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 叢集。
在 VPC 中使用叢集
以下是在 VPC 中使用叢集的一些秘訣:
您的 VPC 必須至少要有兩個子網路。這些子網路必須位於 AWS 區域 您要部署叢集的 中的兩個不同可用區域。子網路是 VPC IP 地址範圍的區段,您可以指定該區段,而且您可以用來根據您的安全和操作需求將叢集分組。
如果您希望 VPC 中的叢集可公開存取,請務必開啟 VPC 屬性
DNS hostnames和DNS resolution。您的 VPC 必須擁有您建立的子網路群組。您可以透過指定您建立的子網路來建立子網路群組。Amazon DocumentDB 會在該子網路群組內選擇要與叢集中主要執行個體建立關聯的子網路和 IP 地址。主要執行個體使用包含子網路的可用區域。
您的 VPC 必須擁有允許存取叢集的 VPC 安全群組。
如需詳細資訊,請參閱在 VPC 中存取 Amazon DocumentDB 叢集。
每個子網路中的 CIDR 區塊必須大到足以容納 Amazon DocumentDB 在維護活動期間使用的備用 IP 地址,包括容錯移轉和運算擴展。例如,10.0.0.0/24 和 10.0.1.0/24 等範圍通常就夠大了。
VPC 可以具有
instance tenancydefault或 的屬性dedicated。所有預設 VPCs都會將instance tenancy屬性設定為預設,而預設 VPC 可以支援任何執行個體類別。如果您選擇在
instance tenancy屬性設為 的專用 VPC 中擁有叢集dedicated,則叢集的執行個體類別必須是已核准的 Amazon EC2 專用執行個體類型之一。例如,r5.largeEC2 專用執行個體對應至db.r5.large執行個體類別。如需 VPC 中執行個體租用的相關資訊,請參閱《Amazon Elastic Compute Cloud 使用者指南》中的 Amazon EC2 執行個體。如需可在專用執行個體中執行個體類型的詳細資訊,請參閱 Amazon EC2 定價頁面上的 Amazon EC2 專用執行個體
。 Amazon EC2 注意
當您將叢集
dedicated的 屬性設定為instance tenancy時,不保證叢集會在專用主機上執行。
使用子網路群組
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 的 IPv6 支援。
當 Amazon DocumentDB 在 VPC 中建立叢集時,它會使用子網路群組的 IP 地址,將網路介面指派給叢集。不過,我們強烈建議您使用網域名稱系統 (DNS) 名稱來連線至您的叢集。我們如此建議,是因為基本的 IP 地址在容錯移轉期間會有所變動。
注意
對於您在 VPC 中執行的每個叢集,請務必在子網路群組中的每個子網路中保留至少一個地址,以供 Amazon DocumentDB 用於復原動作。
共用子網路
您可以在共用 VPC 中建立叢集。
使用共用 VPC 時要記住的一些考量:
您可以將叢集從共用 VPC 子網路移至非共用 VPC 子網路,反之亦然。
共用 VPC 中的參與者必須在 VPC 中建立安全群組,以允許他們建立叢集。
共用 VPC 中的擁有者和參與者可以使用 DocumentDB 查詢來存取資料庫。不過,只有資源的建立者才能對資源進行任何 API 呼叫。
Amazon DocumentDB IP 定址
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 通訊協定,以簡化網路組態。
IPv4 地址
在您建立 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 叢集搭配使用。
IPv6 地址
您可以選擇性的將 IPv6 CIDR 區塊與您的 VPC 和子網路建立關聯,並指派該區塊的 IPv6 地址給您 VPC 中的資源。每個 IPv6 地址都是全域唯一的。
您的 VPC 的 IPv6 CIDR 區塊會自動從 Amazon 的 IPv6 地址集區自動指派。您無法自行選擇範圍。
連線至 IPv6 地址時,請確保符合下列條件:
用戶端已設定為允許透過 IPv6 進行用戶端至資料庫的流量。
叢集使用的 DocumentDB 安全群組已正確設定,以便允許用戶端透過 IPv6 進行資料庫流量。
用戶端作業系統堆疊允許 IPv6 地址上的流量,且作業系統驅動程式和程式庫已設定為選擇正確的預設叢集端點 (IPv4 或 IPv6)。
如需 IPv6 的詳細資訊,請參閱《Amazon Virtual Private Cloud 使用者指南》中的 IP 定址。
雙堆疊模式
當叢集可以透過 IPv4 和 IPv6 定址通訊協定進行通訊時,它會以雙堆疊模式執行。因此,資源可以透過 IPv4, IPv6 或兩者與叢集通訊。DocumentDB 會停用私有雙堆疊模式叢集 IPv6 端點的網際網路閘道存取。DocumentDB 會這麼做,以確保您的 IPv6 端點為私有,且只能在 VPC 內存取。
雙堆疊模式和子網路群組
若要使用雙堆疊模式,請確定與叢集建立關聯的子網路群組中的每個子網路都有與其相關聯的 IPv6 CIDR 區塊。您可以建立新的子網路群組或修改現有的子網路群組以符合此需求。叢集處於雙堆疊模式後,用戶端可以正常連接到叢集。請確定已正確設定用戶端安全防火牆和 DocumentDB 叢集安全群組,以允許透過 IPv6 的流量。若要連線,用戶端會使用叢集的端點。用戶端應用程式可指定連線至資料庫時所偏好的通訊協定。在雙堆疊模式中,叢集會偵測用戶端偏好的網路通訊協定,即 IPv4 或 IPv6,並使用該通訊協定進行連線。
如果子網路群組因為子網路刪除或 CIDR 取消關聯而停止支援雙堆疊模式,則與子網路群組相關聯的叢集會有網路狀態不相容的風險。此外,您無法在建立新的雙堆疊模式叢集時使用子網路群組。
若要使用 判斷子網路群組是否支援雙堆疊模式 AWS 管理主控台,請在子網路群組的詳細資訊頁面上檢視網路類型。若要使用 判斷子網路群組是否支援雙堆疊模式 AWS CLI,請執行 describe-db-subnet-groupsSupportedNetworkTypes中檢視 。
僅供讀取複本視為獨立叢集,並且可以具有與主要叢集不同的網路類型。如果您變更僅供讀取複本主要叢集的網路類型,則僅供讀取複本不會受到影響。還原叢集時,您可以將叢集還原至支援的任何網路類型。
使用雙堆疊模式叢集
當您建立或修改叢集時,您可以指定雙堆疊模式,以允許資源透過 IPv4, IPv6 或兩者與叢集通訊。
當您使用 AWS 管理主控台 建立或修改叢集時,您可以在網路類型區段中指定雙堆疊模式。下圖顯示 主控台中的網路類型區段:
當您使用 AWS CLI 建立或修改叢集時,請將 --network-type選項設定為DUAL使用雙堆疊模式。當您使用 DocumentDB API 建立或修改叢集時,請將 NetworkType 參數設定為 DUAL 以使用雙堆疊模式。如果指定的 DocumentDB 引擎版本或子網路群組不支援雙堆疊模式,則會傳回NetworkTypeNotSupported錯誤。
如需建立叢集的詳細資訊,請參閱 建立 Amazon DocumentDB 叢集。如需修改叢集的詳細資訊,請參閱 修改 Amazon DocumentDB 叢集。
若要使用主控台判斷叢集是否處於雙堆疊模式,請在叢集的連線與安全索引標籤上檢視網路類型。
修改IPv4-only的叢集以使用雙堆疊模式
您可以修改IPv4-only的叢集,以使用雙堆疊模式。若要這樣做,請變更叢集的網路類型。
建議您在維護時段期間變更 Amazon DocumentDB 叢集的網路類型。您可以使用 modify-db-cluster
將叢集修改為使用雙堆疊模式之前,請確定其子網路群組支援雙堆疊模式。如果與叢集相關聯的子網路群組不支援雙堆疊模式,請在修改叢集時指定支援它的不同子網路群組。修改叢集的子網路群組可能會導致停機時間。
如果您在將叢集變更為使用雙堆疊模式之前修改叢集的子網路群組,請確定子網路群組在變更前後對叢集有效。
我們建議您只執行 NetworkType 參數設定為 的ModifyDBCluster呼叫DUAL,將網路變更為雙堆疊模式。在相同的 API 呼叫NetworkType中新增其他參數以及 可能會導致停機時間。若要修改多個參數,請確定已成功完成網路類型修改,然後再傳送另一個具有其他參數的 ModifyDBCluster 請求。
如果您在變更後無法連線至叢集,請確定已正確設定用戶端和資料庫安全防火牆和路由表,以允許流量流向所選網路上的資料庫 (IPv4 或 IPv6)。您可能還需要修改作業系統參數、程式庫或驅動程式才可使用 IPv6 地址進行連線。
修改IPv4-only的叢集以使用雙堆疊模式
修改子網路群組以支援雙堆疊模式,或建立支援雙堆疊模式的子網路群組:
建立 IPv6 CIDR 區塊與 VPC 的關聯。
如需說明,請參閱《Amazon VPC 使用者指南》中的新增或移除 CIDR 區塊至您的 VPC。
將 IPv6 CIDR 區塊連接至子網路群組中的所有子網路。
如需說明,請參閱《Amazon Virtual Private Cloud 使用者指南》中的新增或移除 IPv6 CIDR 區塊至子網路。
確認子網路群組支援雙堆疊模式。
如果您使用的是 AWS 管理主控台,請選取子網路群組,並確認支援的網路類型值為雙。
如果您使用的是 AWS CLI,請執行
describe-db-subnet-groups命令,並確認叢集 SupportedNetworkType的值為Dual。
修改與叢集相關聯的安全群組,以允許與資料庫的 IPv6 連線,或建立新的安全群組以允許 IPv6 連線。
如需說明,請參閱《Amazon Virtual Private Cloud 使用者指南》中的安全群組規則。
修改叢集以支援雙堆疊模式。若要這麼做,請將 Network type (網路類型) 設為 Dual-stack mode (雙堆疊模式)。
若您使用主控台,請確保下列設定正確:
網路類型 — 雙堆疊模式
子網路群組 — 您在上一個步驟中設定的子網路群組
安全群組 — 您在上一個步驟中設定的安全性
如果您使用的是 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"確認叢集支援雙堆疊模式。
如果您使用的是 主控台,請選擇叢集的連線與安全索引標籤,並確認網路類型值為雙堆疊模式。
如果您使用的是 AWS CLI,請執行
describe-db-cluster命令,並確認叢集NetworkType的值為dual。在叢集端點上執行
dig命令,以識別與其相關聯的 IPv6 地址:dig<db-cluster-endpoint>AAAA使用叢集端點,而不是 IPv6 地址來連線至叢集。
雙堆疊模式區域和版本可用性
功能的可用性和支援會有所不同 AWS 區域。
區域支援
下列清單識別支援雙堆疊模式 AWS 區域 的 :
美國東部 (俄亥俄)
美國東部 (維吉尼亞北部)
美國西部 (奧勒岡)
非洲 (開普敦)
南美洲 (聖保羅)
亞太區域 (香港)
亞太區域 (海德拉巴)
亞太區域 (馬來西亞)
亞太地區 (孟買)
亞太區域 (大阪)
亞太區域 (首爾)
亞太區域 (新加坡)
亞太地區 (雪梨)
亞太區域 (泰國)
亞太地區 (東京)
加拿大 (中部)
中國 (北京)
中國 (寧夏)
歐洲 (法蘭克福)
歐洲 (愛爾蘭)
歐洲 (倫敦)
歐洲 (米蘭)
Europe (Paris)
歐洲 (西班牙)
歐洲 (斯德哥爾摩)
以色列 (特拉維夫)
墨西哥 (中部)
中東 (阿拉伯聯合大公國)
AWS GovCloud (美國西部)
AWS GovCloud (美國東部)
版本支援
Amazon DocumentDB 4.0 版和 5.0 版支援雙堆疊模式。如果您無法在其中一個版本上存取雙堆疊模式,請確定您在叢集上執行最新的引擎修補程式版本。
雙堆疊網路叢集的限制
下列限制適用於雙堆疊網路叢集:
叢集無法只使用 IPv6 通訊協定。其可專門使用 IPv4,也可使用 IPv4 和 IPv6 通訊協定 (雙堆疊模式)。
Amazon DocumentDB 不支援原生 IPv6 子網路。
使用雙堆疊模式的叢集必須是私有的。其無法公開存取。
在 VPC 中建立叢集
下列程序可協助您在 VPC 中建立叢集。若要使用預設 VPC,您可以從步驟 2 開始,並使用已為您建立的 VPC 和子網路群組。您也可以視需要建立其他 VPCs。
注意
如果您希望 VPC 中的叢集可公開存取,則必須啟用 VPC 屬性 DNS hostnames和 來更新 VPC 的 DNS 資訊DNS resolution。如需有關更新 VPC 執行個體 DNS 的資訊,請參閱《Amazon Virtual Private Cloud 使用者指南》中的檢視和更新 VPC 的 DNS 屬性。
請依照下列步驟在 VPC 中建立叢集:
步驟 1:建立 VPC
建立在至少兩個可用區域內有子網路的 VPC。您在建立子網路群組時使用這些子網路。如有預設的 VPC,則系統會自動為您於所在 AWS 區域的每個可用區域中建立子網路。
如需詳細資訊,請參閱 建立IPv4-only的 VPC 以與 DocumentDB 叢集搭配使用,或參閱《Amazon Virtual Private Cloud 使用者指南》中的建立 VPC。
步驟 2:建立子網路群組
子網路群組是您為 VPC 建立,然後為叢集指定的子網路集合 (通常是私有)。當您使用 AWS CLI 或 DocumentDB API 建立叢集時,子網路群組可讓您指定特定的 VPC。如果您使用 AWS 管理主控台,則只需選擇要使用的 VPC 和子網路。每個子網路群組在 中至少有兩個可用區域中必須至少有一個子網路 AWS 區域。最佳實務是,每個子網路群組在 中的每個可用區域應至少有一個子網路 AWS 區域。
若要公開存取叢集,子網路群組中的子網路必須具有網際網路閘道。如需子網路網際網路閘道的詳細資訊,請參閱《Amazon Virtual Private Cloud 使用者指南》中的使用網際網路閘道啟用 VPC 的網際網路存取。
注意
本機區域的子網路群組只能有一個子網路。
在 VPC 中建立叢集時,您可以選擇子網路群組。Amazon DocumentDB 會選擇要與叢集建立關聯的子網路和 IP 地址 (在該子網路內)。如果不存在子網路群組,Amazon DocumentDB 會在您建立叢集時建立預設子網路群組。DocumentDB 會建立彈性網路界面,並將其與叢集與該 IP 地址建立關聯。叢集使用包含子網路的可用區域。
在此步驟中,您會建立子網路群組,並新增您為 VPC 建立的子網路。
建立子網路群組
登入 AWS 管理主控台,並在 https://https://console.aws.amazon.com/docdb
開啟 Amazon DocumentDB 主控台。 在導覽窗格中選擇 Subnet groups (子網路群組)。
選擇建立。
在名稱中,輸入子網路群組的名稱。
針對描述,輸入子網路群組的描述。
在新增子網路區段中,針對 VPC,選擇您建立的預設 VPC 或 VPC。然後選擇可用區域中包含子網路的可用區域,然後從子網路中選擇子網路。
選擇建立。
您的新子網路群組會出現在 DocumentDB 主控台的子網路群組清單中。您可以在視窗底部的詳細資訊窗格中,選擇子網路群組以查看詳細資訊,包括與群組相關聯的所有子網路。
步驟 3:建立 VPC 安全群組
建立叢集之前,請先建立要與其建立關聯的 VPC 安全群組。如果您未建立 VPC 安全群組,您可以在建立叢集時使用預設安全群組。如需如何為叢集建立安全群組的指示,請參閱 建立IPv4-only的 VPC 以與 DocumentDB 叢集搭配使用,或參閱《Amazon Virtual Private Cloud 使用者指南》中的使用安全群組控制 AWS 資源的流量。
步驟 4:在 VPC 中建立叢集
在此步驟中,您會使用先前步驟中建立的 VPC 名稱、子網路群組和 VPC 安全群組來建立叢集。
注意
如果您希望 VPC 中的叢集可公開存取,則必須啟用 VPC 屬性 DNS hostnames和 DNS resolution。如需詳細資訊,請參閱《Amazon Virtual Private Cloud 使用者指南》中的檢視和更新 VPC 的 DNS 屬性。
如需如何建立叢集的詳細資訊,請參閱 建立 Amazon DocumentDB 叢集。
在連線區段中出現提示時,輸入 VPC 名稱、子網路群組和 VPC 安全群組。
注意
DocumentDBDocumentDB 叢集目前不支援更新 VPCs。