跳至內容

如何連線到使用 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 Aurora and RDS console (Amazon Aurora 和 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. 開啟 Aurora and RDS console (Aurora 和 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. 開啟 Aurora and RDS console (Aurora 和 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 (儲存)。

如果仍然無法存取資料庫執行個體,請確認資料庫執行個體為 Publicly Accessible (公開存取)。如需更多資訊,請參閱上一節從本機電腦透過網際網路疑難排解公共子網路中資料庫執行個體的連線問題

疑難排解不同 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 中使用資料庫執行個體