本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 RDS Proxy 的網路先決條件
使用 RDS Proxy 需要您在 Aurora 資料庫叢集與 RDS Proxy 之間擁有通用的虛擬私有雲端 (VPC)。此 VPC 應至少有兩個位於不同可用區域的子網路。您的帳戶可以擁有這些子網路,或與其他帳戶共用。如需 VPC 共用的詳細資訊,請參閱使用共用 VPC。
對於 IPv6 支援,需要額外的網路組態:
-
IPv6 端點網路類型 – 您的 VPC 和子網路必須設定為支援 IPv6。這包括將 IPv6 CIDR 區塊指派給您的 VPC 和子網路。
-
雙堆疊端點網路類型 – 您的 VPC 和子網路必須同時支援 IPv4 和 IPv6 定址。
-
IPv6 目標連線網路類型 – 資料庫必須設定為雙堆疊模式,以支援來自代理的 IPv6 連線。
您的用戶端應用程式資源 (例如 Amazon EC2、Lambda 或 Amazon ECS) 可以位於與代理相同的 VPC 中。或者,它們可以位於與代理不同的 VPC 中。如果您已成功連線到任何 Aurora 資料庫叢集,表示您已擁有所需的網路資源。
取得子網路的相關資訊
如果您剛開始使用 Aurora,您可以依照 設定您的 Amazon Aurora 環境 中的程序了解連線至資料庫的基本知識。您也可以按照 Amazon Aurora 入門 中的教學課程進行操作。
若要建立代理,您必須提供代理操作所在的子網路和 VPC。下列 Linux 範例顯示的 AWS CLI 命令會檢查 擁有VPCs 和子網路 AWS 帳戶。特別是,當您使用 CLI 建立代理時,您會傳遞子網路 ID 做為參數。
aws ec2 describe-vpcs aws ec2 describe-internet-gateways aws ec2 describe-subnets --query '*[].[VpcId,SubnetId]' --output text | sort
下列 Linux 範例顯示 AWS CLI 命令,以判斷與特定 Aurora 資料庫叢集對應的子網路 IDs。
對於 Aurora 叢集,首先您會找到其中一個相關資料庫執行個體的 ID。您可以擷取該資料庫執行個體使用的子網路 ID。若要這樣做,請在資料庫執行個體描述輸出中檢查 DBSubnetGroup 和 Subnets 屬性內的巢狀欄位。設定該資料庫伺服器的代理時,您可以指定部分或全部的子網路 ID。
$# Find the ID of any DB instance in the cluster.$aws rds describe-db-clusters --db-cluster-identifiermy_cluster_id--query '*[].[DBClusterMembers]|[0]|[0][*].DBInstanceIdentifier' --output text
my_instance_idinstance_id_2instance_id_3
在找到資料庫執行個體識別碼之後,請檢查相關聯的 VPC 來尋找其子網路。下列 Linux 範例會顯示做法。
$#From the DB instance, trace through the DBSubnetGroup and Subnets to find the subnet IDs. $ aws rds describe-db-instances --db-instance-identifiermy_instance_id--query '*[].[DBSubnetGroup]|[0]|[0]|[Subnets]|[0]|[*].SubnetIdentifier' --output text
subnet_id_1subnet_id_2subnet_id_3...
$#From the DB instance, find the VPC.$aws rds describe-db-instances --db-instance-identifiermy_instance_id--query '*[].[DBSubnetGroup]|[0]|[0].VpcId' --output text
my_vpc_id
$aws ec2 describe-subnets --filters Name=vpc-id,Values=my_vpc_id--query '*[].[SubnetId]' --output text
subnet_id_1subnet_id_2subnet_id_3subnet_id_4subnet_id_5subnet_id_6
規劃 IP 地址容量
RDS Proxy 會根據向 RDS Proxy 註冊的資料庫執行個體組態,自動調整其容量。對於佈建的執行個體,這取決於執行個體大小,而對於Aurora Serverless v2執行個體,這取決於最大 ACU 容量。某些操作可能還需要額外的容量,例如增加已註冊資料庫的大小或內部 RDS Proxy 維護操作。在這些操作期間,您的代理可能需要更多的 IP 地址來佈建額外的容量。這些額外的位址可讓您的代理擴展,而不會影響您的工作負載。子網路中若少了可用的 IP 地址會阻止代理縱向擴展。這可能會導致更高的查詢延遲或用戶端連線失敗。當您的子網路中沒有足夠的可用 IP 地址時,RDS 會透過事件 RDS-EVENT-0243 通知您。如需此金鑰的相關資訊,請參閱 使用 RDS Proxy 事件。
以下是根據資料庫執行個體類別大小,建議在子網路中為您的代理保留可用的 IP 位址數目下限。
| DB instance class (資料庫執行個體類別) | 可用 IP 地址數目下限 |
|---|---|
|
db.*.xlarge 或更小 |
10 |
|
db.*.24xlarge |
15 |
|
db.*.24xlarge |
25 |
|
db.*.24xlarge |
45 |
|
db.*.24xlarge |
60 |
|
db.*.24xlarge |
75 |
|
db.*.24xlarge |
110 |
對於 Aurora Serverless v2,請根據最大 ACU 容量,在子網路中為代理保留下列最小數量的可用 IP 地址。
Maximum ACU Capacity |
可用 IP 地址數目下限 |
|---|---|
|
16 或更小 |
10 |
|
32 |
15 |
|
64 |
25 |
|
96 |
30 |
|
128 |
40 |
|
160 |
50 |
|
192 |
55 |
|
224 |
65 |
|
256 |
75 |
注意
RDS Proxy 不會為 VPC 中的每個代理耗用超過 215 個 IP 地址。
RDS Proxy 需要您 Aurora 資料庫至少 10 個 IP 地址。這些建議 IP 地址數量是僅具有預設端點的代理預估值。對於每個額外的自訂端點,我們建議再保留三個 IP 地址。對於每個 Aurora 讀取器執行個體,我們建議您根據該讀取器的目標ACUs 或佈建Aurora Serverless v2目標的資料庫執行個體大小,保留資料表中指定的其他 IP 地址。
若要估計與 Aurora 資料庫叢集相關聯的代理所需的 IP 地址:
-
1 個大小為 的佈建寫入器執行個體
db.r5.8xlarge和 1 個大小為 的佈建讀取器執行個體db.r5.2xlarge。 -
連接到此叢集的代理具有預設端點和具有唯讀角色的自訂端點。
在此情況下,代理大約需要 63 個可用 IP 地址 (45 個用於寫入器執行個體,15 個用於讀取器執行個體,3 個用於額外的自訂端點)。
若要估計與具有下列項目的 Aurora 資料庫叢集相關聯的代理所需的 IP 地址:
-
1 個Aurora Serverless v2寫入器執行個體的最大容量為 256 個 ACUs1 個 Serverless v2 讀取器執行個體的最大容量為 192 ACUs。
-
連接到此叢集的代理具有預設端點和 1 個具有唯讀角色的自訂端點。
在此情況下,代理需要大約 133 個可用的 IP 地址 (寫入器執行個體 75 個,讀取器執行個體 55 個,其他自訂端點 3 個)。
若要估計與具有下列項目之 Aurora 叢集相關聯的代理所需的 IP 地址:
-
資料庫執行個體大小為 db.r5.4xlarge 的 1 個佈建寫入器執行個體,以及容量上限為 64 個 ACUs 的 1 個 Serverless v2 讀取器執行個體。
-
連接到此叢集的代理具有預設端點和 1 個具有唯讀角色的自訂端點。
在此情況下,代理需要大約 53 個可用的 IP 地址 (寫入器執行個體 25 個,讀取器執行個體 25 個,其他自訂端點 3 個)。
若要估計與具有下列項目的 Aurora 資料庫叢集相關聯的代理所需的 IP 地址:
-
1 個大小為 db.r5.24xlarge 的佈建寫入器執行個體,以及 3 個大小為 db.r5.8xlarge 的佈建讀取器執行個體。
-
附加到此資料庫叢集的代理具有預設端點和 1 個具有唯讀角色的自訂端點。
在此情況下,代理需要 215 個可用的 IP 地址。雖然計算顯示 248 IPs (110 + (3*45) + 3),但 RDS Proxy 對於 VPC 中的每個代理不會耗用超過 215 個 IP 地址。