跳至內容

如何連線到使用 Amazon VPC 的公有或私有子網路的 Amazon RDS 資料庫執行個體?

3 分的閱讀內容
0

我想要連線到位於 Amazon Virtual Private Cloud (Amazon VPC) 的公有或私有子網路中的 Amazon Relational Database Service (Amazon RDS) 資料庫執行個體。

簡短說明

當您在 VPC 的公有或私有子網路中啟動 RDS 資料庫執行個體時,可能會遇到以下原因導致的連線問題:

  • 資料庫執行個體上的 VPC 組態不正確
  • 您連線的用戶端組態不正確或存在連線問題

若要解決這些問題,請完成針對您環境的解決方案。

解決方法

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

對從本機電腦透過網際網路連線到公有子網路中,資料庫執行個體的連線問題進行疑難排解

如果您的資料庫執行個體的 Publicly Accessible (可公開存取) 屬性設為 No (否),則可能會發生連線問題。若要確認您的資料庫執行個體是否可公開存取,請完成以下步驟:

  1. 開啟 Amazon RDS console (Amazon RDS 主控台)。
  2. 在導覽窗格中,選擇 Databases (資料庫)。
  3. 選取您的資料庫執行個體。
  4. 檢閱執行個體的 Connectivity & Security (連線與安全) 區段。
    -或-
    執行 describe-db-instances AWS CLI 命令:
    aws rds describe-db-instances --db-instance-id example_instance_id
    **注意:**將 example_instance_id 替換為您的資料庫執行個體 ID。

若要更新您資料庫執行個體的 Publicly Accessible (可公開存取) 屬性,請完成以下步驟:

  1. 開啟 Amazon RDS console (Amazon RDS 主控台)。
  2. 在導覽窗格中,選擇 Databases (資料庫),然後選取您的資料庫執行個體。
  3. 選擇 Modify (修改)。
  4. Connectivity (連線) 下,展開 Additional configuration (其他組態) 區段,然後選擇 Publicly accessible (可公開存取)。
  5. 選擇 Continue (繼續)。
  6. 選擇 Modify DB Instance (修改資料庫執行個體)。
    **注意:**即使您未選擇 Apply immediately (立即套用) 選項,Amazon RDS 也會立即套用變更。停機只會發生在您有需要停機的待處理維護動作,且您選擇了 Apply immediately (立即套用) 的情況下。

如果您已啟用 Publicly Accessible (可公開存取) 屬性,但仍無法連線到您的執行個體,請檢查以下詳細資料:

  • 確認您已將網際網路閘道附加到您的 VPC。
  • 確保您的資料庫執行個體的安全群組傳入規則允許來自您來源 IP 位址的連線。

對從本機電腦私有子網路中資料庫執行個體的連線問題進行疑難排解

若要解決此問題,請使用以下最適合您使用案例的方法之一:

若要切換到公有子網路,請完成以下步驟:

  1. 開啟 Amazon RDS console (Amazon RDS 主控台)。

  2. 在導覽窗格中,選擇 Databases (資料庫),然後選取您的資料庫執行個體。

  3. Connectivity & Security (連線與安全) 區段中,複製資料庫執行個體的端點。

  4. 從 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
  5. 取得資料庫執行個體的私有 IP 位址後,將該私有 IP 位址對應到 VPC 中的特定子網路。VPC 子網路是以子網路 CIDR 範圍和私有 IP 地址為基礎。

  6. 開啟 Amazon VPC console (Amazon VPC 主控台)。

  7. 在導覽窗格中,選擇 Subnets (子網路)。

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

  9. Description (描述) 窗格中,選擇 Route Table (路由表)。

  10. 選擇 Actions (動作),然後選擇 Edit routes (編輯路由)。

  11. 選擇 Add route (新增路由)。對於 IPv4 和 IPv6 流量,在 Destination box (目的地欄位) 中,輸入您的外部或內部部署網路的路由。然後,在 Target (目標) 清單中選取網際網路閘道 ID。
    **注意:**請確定執行個體的傳入安全群組規則會將流量限制在外部或內部部署網路的位址上。

  12. 選擇 Save (儲存)。

如果資料庫執行個體仍無法存取,請確認該資料庫執行個體是否為可公開存取。如需更多資訊,請參閱前一節對從本機電腦透過網際網路連線到公有子網路中,資料庫執行個體的連線問題進行疑難排解

對從不同 VPC 的 EC2 執行個體的資料庫執行個體存取問題進行疑難排解

如果您無法從不同 VPC 的 EC2 執行個體存取資料庫執行個體,請建立 VPC 對等互連。VPC 對等互連使用私有 IP 位址,允許 VPC 之間進行通訊。

請完成以下步驟:

  1. 建立 VPC 對等互連
    **注意:**如果 VPC 位於同一 AWS 帳戶,請確保 IPv4 CIDR 區塊不重疊。如需更多資訊,請參閱 VPC 對等互連限制
  2. 接受連線
  3. 更新兩個路由表
  4. 更新您的安全群組以參考對等 VPC 群組
  5. 啟用 VPC 對等互連的 DNS 解析支援
  6. 在 EC2 執行個體上,使用網路公用程式測試 VPC 對等互連,類似以下範例:
    nc -zv hostname port
    **注意:**將 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 中使用資料庫執行個體