我有一個位於公有子網路中的 Amazon Relational Database Service (Amazon RDS) 資料庫執行個體。我想將我的資料庫執行個體移動到同一個虛擬價格雲端 (VPC) 內的私有子網路,並將資料庫執行個體設為私有。
簡短說明
Amazon RDS 未提供選項來變更同一個 VPC 內的資料庫執行個體的子網路群組。不過,您可以使用下列因應措施,將資料庫執行個體從公有子網路移動到私有子網路。在使用此因應措施時,無需建立新的資料庫執行個體或使用快照還原程序。此因應措施還可以將建立新執行個體和轉移流量時的停機時間降到最低。只有容錯移轉時間才會導致明顯的停機。
**注意:**此因應措施僅適用於 RDS 資料庫執行個體。如果您的資料庫執行個體是 Aurora 叢集的一部分,請使用複製選項。或者,遵循此解決方法,但不要關閉多可用區域。而是刪除並重新建立讀取器。
解決方法
關閉資料庫執行個體上的多可用區域部署和公共存取
如果您已將資料庫執行個體設定為單一可用區域,且公共存取參數設定為否,則跳過此步驟。
若要關閉資料庫執行個體的多可用區域部署,請完成下列步驟:
- 開啟 Amazon RDS 主控台。
- 在導覽窗格中,選擇資料庫。然後,選擇資料庫執行個體。
- 選擇修改。
- 在修改資料庫執行個體頁面中,對於多可用區域部署和公共存取,選擇否。
- 選擇繼續,然後檢閱修改的摘要。
- 選擇立即套用或在下一個排程維護時段套用。
**注意:**由於修改會導致資料庫重新啟動,因此會發生停機。如需詳細資訊,請參閱使用立即套用設定。
- 檢閱您的變更,如果正確,請選擇修改資料庫執行個體以儲存。
探索資料庫執行個體的 IP 位址
資料庫執行個體返回到可用狀態後,請在資料庫執行個體的端點上執行 dig 以尋找其 IP 位址:
dig rds_endpoint
**注意:**使用資料庫執行個體的端點取代 rds_endpoint。
範例輸出:
db-RDS-instance.xxxxxxxx.us-east-1.rds.amazonaws.com. 5 IN A 172.39.5.213
從私有 IP 位址,您可以找到主要執行個體使用的子網路。
此範例中可以找到下列子網路:
- 子網路 1: 172.39.5.0/24
- 子網路 2: 172.39.4.0/24
由於 IP 位址低於 172.39.5.0/24,因此執行個體位於子網路 1 中。
移除資料庫執行個體上的公有子網路,並新增私有子網路
新增子網路群組中的所有私有子網路。此外,請從子網路群組中刪除所有公有子網路,但主要執行個體使用的子網路除外。在上一個範例中,刪除子網路 1 以外的所有子網路,因為資料庫執行個體使用此子網路。
完成下列步驟:
- 開啟 Amazon RDS 主控台。
- 在導覽窗格中,選擇子網路群組。然後,選擇與資料庫執行個體相關聯的子網路群組。
- 選擇編輯。
- 從新增子網路區段中,選取可用區域和私有子網路。
- 選取要刪除的公有子網路,然後選擇移除。
- 選擇儲存。
在資料庫執行個體上開啟多可用區域
為資料庫執行個體開啟多可用區域部署。新的次要執行個體會在其餘的其中一個私有子網路中啟動。
使用容錯移轉重新啟動資料庫執行個體,並關閉多可用區域部署
當資料庫執行個體進行容錯移轉時,次要執行個體會變成主要執行個體。因此,您的新主要執行個體會使用私有 IP 位址。使用容錯移轉重新啟動資料庫執行個體後,移除現在公有子網路中的新次要執行個體。若要移除次要執行個體,請將多可用區域部署設定為否以關閉多可用區域。
移除公有子網路
完成下列步驟:
- 從子網路群組中移除剩餘的公有子網路。
**注意:**從 RDS 端的子網路群組中移除子網路。無需從 VPC 刪除任何子網路。
- 檢查子網路群組中是否只有私有子網路。
- 如果資料庫執行個體先前位於多可用區域部署中,請再次開啟多可用區域部署。
相關資訊
多可用區域資料庫叢集部署