跳至內容

如何疑難排解連線至 Aurora PostgreSQL 相容版資料庫叢集時,發生的連線逾時錯誤?

3 分的閱讀內容
0

我想對連線至 Amazon Aurora PostgreSQL 相容版本資料庫叢集時,發生的連線逾時錯誤進行疑難排解。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

當您連線至 Aurora PostgreSQL 相容版資料庫叢集時,網路組態問題通常會導致連線逾時錯誤。若要識別並解決連線逾時問題,請採取以下動作。

檢查資料庫執行個體狀態

請完成以下步驟:

  1. 開啟 Amazon Relational Database Service (Amazon RDS) console (Amazon Relational Database Service (Amazon RDS) 主控台)。
  2. 在導覽窗格中,選擇 Databases (資料庫)。
  3. Status (狀態) 欄中,確認您的 Aurora PostgreSQL 相容版資料庫執行個體處於可用狀態。<br id=hardline_break/> 重要: 如果執行個體未處於可用狀態,請先等待其變為可用,再繼續後續疑難排解。

檢查安全群組組態

若要同時檢查傳入和傳出規則,請完成以下步驟:

  1. 開啟 Amazon Elastic Compute Cloud (Amazon EC2) console (Amazon Elastic Compute Cloud (Amazon EC2) 主控台)。
  2. 在導覽窗格中,選擇 Security Groups (安全群組)。
  3. 選取與您的 Aurora PostgreSQL 相容版資料庫叢集相關聯的安全群組。
  4. 選擇 Inbound rules (傳入規則)。
  5. 確認存在一條規則,允許來自您用戶端 IP 位址或安全群組的流量,連接埠為 5432 或您的自訂連接埠。<br id=hardline_break/> 注意: 選擇 Edit inbound rules (編輯傳入規則),新增或修改接受所需流量的規則。
  6. 如果您從 Amazon EC2 執行個體連線,請選擇 Outbound rules (傳出規則)。
  7. 確認 Amazon EC2 執行個體的安全群組允許透過連接埠 5432,將傳出流量至 Aurora PostgreSQL 相容版叢集的安全群組。<br id=hardline_break/> 注意: 選擇 Edit outbound rules (編輯傳出規則),新增或修改接受所需流量的規則。

檢查網路 ACL 組態

若要檢查網路存取控制清單 (網路 ACL) 組態,請完成以下步驟:

  1. 開啟 Amazon Virtual Private Cloud (Amazon VPC) console (Amazon Virtual Private Cloud (Amazon VPC) 主控台)。
  2. 在導覽窗格中,選擇 Network ACLs (網路 ACL)。
  3. 選取與您的 Aurora PostgreSQL 相容版資料庫叢集子網路相關聯的網路 ACL。
  4. 同時選擇 Inbound rules (傳入規則) 和 Outbound rules (傳出規則),然後確認規則允許您的用戶端與資料庫之間透過連接埠 5432 傳送流量。

檢查路由表組態

若要檢查路由表組態,請完成以下步驟:

  1. 開啟 Amazon VPC console (Amazon VPC 主控台)。
  2. 在導覽窗格中,選擇 Route Tables (路由表)。
  3. 選取與您的 Aurora PostgreSQL 相容版資料庫叢集子網路相關聯的路由表。
  4. 確認無類別網域間路由是否存在一條指向正確目標的路由。

例如,目標可以是網際網路閘道、NAT 閘道或對等互連。如果您從不同的 VPC 或內部部署網路連線,請確認已設定必要的路由。

檢查 VPC 對等互連或傳輸閘道組態

如果您透過 VPC 對等互連從不同的 VPC 連線,請完成以下步驟:

  1. 依照 VPC 對等互連程序確認 VPC 之間已正確設定對等互連。
  2. 確認兩個 VPC 中的路由表具有必要的路由,以在其間導向流量。
  3. 確認兩個 VPC 中的安全群組接受所需流量。

如果您透過傳輸閘道從不同的 VPC 連線,請完成以下步驟:

  1. 依照設計最佳實務,確認已在 VPC 之間正確設定傳輸閘道。
  2. 確認所有 VPC 附加項目的路由表具有必要的路由,以在其間導向流量。
  3. 確認兩個 VPC 中的安全群組接受所需流量。

檢查 DNS 解析

如果您跨 VPC 連線,請確認已為 VPC 對等互連連線啟用 DNS 解析。

請完成以下步驟:

  1. 開啟 Amazon VPC console (Amazon VPC 主控台)。
  2. 在導覽窗格中,選擇 Peering connections (對等互連)。
  3. 選取您的對等互連。
  4. 選擇 Actions (動作),然後選擇 Edit DNS settings (編輯 DNS 設定)。
  5. Edit DNS settings (編輯 DNS 設定) 區段中,允許請求者與接受者 VPC 的 DNS 解析。

檢查網際網路閘道 IP 位址

如果您嘗試從 VPC 外部連線,且叢集為公開存取,請完成以下步驟:

  1. 開啟 Amazon VPC console (Amazon VPC 主控台)。
  2. 在導覽窗格中,選擇 Internet gateways (網際網路閘道)。
  3. 找出您 VPC 的網際網路閘道,然後確認網際網路閘道處於已附加狀態。
  4. 選取您的網際網路閘道的 VPC ID。
  5. Details (詳細資訊) 中,選取 Main route table (主要路由表)。
  6. 選擇 Routes (路由),然後確認存在一條目的地為 0.0.0.0/0 IP 位址,且指向目標網際網路閘道的路由。

測試與資料庫執行個體的連線

測試您的連線,以確認是否為網路相關或驗證相關問題。如果連線測試成功,那問題可能與您的資料庫憑證有關。

若要使用 telnet 測試網路連線,請執行以下命令:

telnet CLUSTER-ENDPOINT 5432

注意: 將 CLUSTER-ENDPOINT 替換為您的 Aurora PostgreSQL 相容版叢集端點,並將 5432 替換為您的資料庫連接埠。PostgreSQL 的預設資料庫連接埠為 5432。

當無法使用 telnet 測試網路連線時,請執行以下命令:

nc -zv CLUSTER-ENDPOINT 5432

注意: 將 CLUSTER-ENDPOINT 替換為您的 Aurora PostgreSQL 相容版叢集端點,並將 5432 替換為您的資料庫連接埠。

如果連線成功,表示您的安全群組設定正確。

注意: Amazon RDS 不接受 Internet Control Message Protocol (ICMP) 流量,包括 ping。

檢查「公開存取」組態

如果您從 VPC 外部連線至叢集,則叢集必須設定為公開存取。或者,您可以使用其他連線方法,例如堡壘主機或 AWS Direct Connect。

若要檢查叢集是否為公開存取,請完成以下步驟:

  1. 開啟 Amazon RDS console (Amazon RDS 主控台)。
  2. 在導覽窗格中,選擇 Databases (資料庫)。
  3. 選取您的 Aurora PostgreSQL 相容版叢集,然後選擇 Modify (修改)。
  4. Connectivity (連線) 區段中,選擇 Additional configuration (其他組態)。
  5. 確認您將叢集設定為 Publicly accessible (公開存取)。

檢查 IP 位址衝突

確認您的本機網路與 VPC CIDR 範圍之間沒有 IP 位址衝突。如果存在衝突,您可能需要使用 NAT 或調整網路組態。

若要檢查 VPC 的 CIDR,請完成以下步驟:

  1. 開啟 Amazon VPC console (Amazon VPC 主控台)。
  2. 在導覽窗格中,選擇 Your VPCs (您的 VPC),然後選取您用於本機網路連線的 VPC。
  3. 選擇 CIDR 索引標籤,然後確認 CIDR 區塊未與您本機網路上的任何 IP 位址重疊。

使用 AWS CLI 檢查 VPC CIDR

若要使用 AWS CLI 描述 VPC CIDR 區塊,請執行以下 describe-vpcs AWS CLI 命令:

aws ec2 describe-vpcs \
    --vpc-ids VPC-ID \
    --region REGION

注意: 將 VPC-ID 替換為您的 VPC ID,並將 REGION 替換為您的 AWS 區域。

相關資訊

連線至 Amazon Aurora 資料庫叢集

使用安全群組控制 AWS 資源的流量

使用網路存取控制清單控制子網路流量

管理子網路的路由表

什麼是 VPC 對等互連?

AWS 官方已更新 6 個月前