如何對使用 VPC 公有或私有子網路之 Amazon RDS 資料庫執行個體的連線問題進行疑難排解?

2 分的閱讀內容
0

我無法連線到 Amazon Relational Database Service (Amazon RDS) 資料庫執行個體。如何對 Amazon Virtual Private Cloud (Amazon VPC) 的公有或私有子網路中的連線問題進行疑難排解?

簡短描述

您可以在 VPC 的公有或私有子網路中啟動 Amazon RDS 資料庫。不過,RDS 執行個體端不正確的 VPC 組態可能會造成連線問題。或者,您要連線的用戶端上的組態或連線問題也可能導致連線問題。

若要解決這些問題,請參閱下列解決方案,視您的環境而定。

解決方法

**注意:**如果在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確定您使用的是最新版本的 AWS CLI

我的資料庫執行個體位於公共子網中,我無法透過本地計算機通過 Internet 連接

當資料庫執行個體的可公開存取屬性設為否時,就可能會發生此問題。若要檢查資料庫執行個體是否可公開存取:

開啟 Amazon RDS 主控台,從導覽窗格中選取資料庫,然後選取您的資料庫執行個體。然後,檢閱執行個體的連線與安全部分。

-或-

在 AWS CLI 中使用 describe-db-instances 命令。

若要將 Amazon RDS 執行個體的 Publicly Accessible 屬性變更為

1.    開啟 Amazon RDS 主控台

  1. 從導覽窗格中選擇資料庫,然後選取資料庫執行個體。

  2. 選擇修改

  3. 連線下,延伸其他設定部分,然後選擇公開存取

  4. 選擇繼續

  5. 選擇修改資料庫執行個體

注意:即使您未選取立即套用選項,此變更也會立即套用。停機只有在您透過此修改設定擱置維護動作 (需要停機) 且您選擇立即套用時,才會發生停機。

如果您將 Publicly Accessible 屬性設定為,但仍無法連線至 RDS 執行個體,請檢查以下詳細資料:

我的資料庫執行個體位於私有子網路中,我無法從本地電腦連線

您可以使用公用子網路來解決此問題。當您使用公用子網路時,子網路上的所有資源都可以從網際網路存取。如果此解決方法不符合您的安全要求,請使用 AWS Site-to-Site VPN。使用站對站 VPN,您可以設定客戶閘道,以允許您將 VPC 連線到遠端網路。

解決此問題的另一種方法是使用 Amazon EC2 執行個體作為堡壘 (跳躍) 主機。如需詳細資訊,請參閱如何使用 Amazon EC2 執行個體作為堡壘主機,從本機電腦連線至私有 Amazon RDS 資料庫執行個體?

若要切換至公用子網路:

1.    開啟 Amazon RDS 主控台

  1. 從導覽窗格中選擇資料庫,然後選擇資料庫執行個體。

  2. 連線與安全部分中,複製資料庫執行個體的端點。

  3. 從 VPC 內的 EC2 執行個體對資料庫執行個體端點執行 nslookup。請參閱以下範例輸出:

nslookup myexampledb.xxxx.us-east-1.rds.amazonaws.com
Server: xx.xx.xx.xx
Address: xx.xx.xx.xx#53

Non-authoritative answer:
Name: myexampledb.xxxx.us-east-1.rds.amazonaws.com
Address: 172.31.xx.x
  1. 取得 RDS 資料庫執行個體的私有 IP 地址後,您可以將私有 IP 地址與 VPC 中的特定子網路建立關聯。VPC 子網路是以子網路 CIDR 範圍和私有 IP 地址為基礎。

6.    開啟 Amazon VPC 主控台,然後從導覽窗格中選擇子網路

  1. 選擇與步驟 5 中找到的資料庫執行個體相關聯的子網路。

  2. 描述窗格中,選擇路由表

  3. 選擇動作,然後選擇編輯路由

  4. 選擇新增路由。對於 IPv4 和 IPv6 流量,請在目標方塊中,輸入外部或內部部署網路的路由。然後,在目標清單中選取網際網路閘道 ID。

注意: 請確定執行個體的輸入安全群組規則會將流量限制在外部或內部部署網路的地址上。

11.    選擇儲存

**重要:**如果將子網路變更為公用,則子網路中的其他資料庫執行個體也可以從網際網路存取。如果資料庫執行個體具有關聯的公用位址,則可從網際網路存取。

如果執行這些步驟後仍無法存取資料庫執行個體,請檢查資料庫執行個體是否可公開存取。為此,請執行我的資料庫執行個體位於私有子網路中,我無法從本地電腦連線中的步驟。

Amazon EC2 執行個體無法從其他 VPC 存取我的資料庫執行個體

在 VPC 之間建立 VPC 對等互連。VPC 對等互連允許兩個 VPC 使用私有 IP 地址彼此通訊。

1.    建立並接受 VPC 對等互連

**重要:**如果 VPC 位於相同的 AWS 帳戶中,請確定 IPv4 CIDR 區塊不會重疊。如需詳細資訊,請參閱 VPC 對等互連限制

  1. 更新兩個路由表

  2. 更新您的安全群組以參考對等 VPC 群組

  3. 啟用 VPC 對等互連的 DNS 解析支援

  4. 在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上,使用聯網公用程式測試 VPC 對等互連。請參閱以下範例:

nc -zv <hostname> <port>

如果連線正常,則輸出看起來類似於以下內容:

$ nc -zv myexampledb.xxxx.us-east-1.rds.amazonaws.com 5439
found 0 associations
found 1 connections:
     1:    flags=82<CONNECTED,PREFERRED>
    outif en0
    src xx.xxx.xxx.xx port 53396
    dst xx.xxx.xxx.xxx port 5439
    rank info not available
    TCP aux info available

Connection to myexampledb.xxxx.us-east-1.rds.amazonaws.com port 5439 [tcp/*] succeeded!

相關資訊

在 VPC 中存取資料庫執行個體的案例

在 VPC 中使用資料庫執行個體