跳至內容

如何使用 Amazon EC2 執行個體作為堡壘主機,從本機電腦連線到私有 Amazon RDS 資料庫執行個體?

3 分的閱讀內容
0

我想要使​​用 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體作為堡壘 (跳轉) 主機,從本機電腦連線到私有 Amazon Relational Database Service (Amazon RDS) 資料庫執行個體。

解決方法

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

若要連線到私有 Amazon RDS 或 Amazon Aurora 資料庫執行個體,最佳實務是使用 VPNAWS Direct Connect。如果您無法使用任何一個選項,那麼請使用堡壘主機。

以下組態範例適用於位於 Amazon Virtual Private Cloud (Amazon VPC) 中的 Amazon RDS for MySQL 執行個體。此範例使用安全群組來限制存取。但是,您可以限制子網路的網路存取控制清單 (網路 ACL) 讓連線更安全。

啟動並設定 EC2 執行個體

請完成下列步驟:

  1. 開啟 Amazon EC2 主控台,然後選擇 Launch instance (啟動執行個體)。
  2. 選取 Amazon Machine Image (AMI)。
  3. 選擇執行個體類型,然後選擇 Next: Configure Instance Details (下一步:設定執行個體詳細資訊)。
  4. Network (網路) 中,選擇 Amazon RDS 資料庫執行個體使用的 VPC。
  5. Subnet (子網路) 中,選取 VPC 中的私有子網路
  6. 選擇 Next: Add Storage (下一步:新增儲存),然後視需要修改儲存空間。
  7. 選擇 Next: Add Tags (下一步:新增標籤),然後視需要新增標籤。
  8. 選擇 Next: Configure Security Group(下一步:設定安全群組)。
  9. 選擇 Add Rule (新增規則),然後輸入下列內容:
    Type (類型) 中,輸入 Custom TCP Rule (自訂 TCP 規則) 在 Protocol (通訊協定) 中,輸入 TCP
    Port Range (連接埠範圍) 中,輸入 22
    Source (來源) 中,輸入 Amazon EC2 連線端點所使用的安全群組
  10. 選擇 Review and Launch (檢閱並啟動),然後選擇 Launch (啟動)。

設定 Amazon RDS 資料庫執行個體的安全群組

注意: 若要自動將一或多個 EC2 執行個體連線至 Amazon RDS 資料庫,請參閱 Automatically connect an instance to an RDS database using the Amazon Aurora and RDS console (使用 Amazon Aurora 和 RDS 主控台自動將執行個體連線到 RDS 資料庫)。

請完成下列步驟:

  1. 開啟 Amazon Aurora 和 RDS 主控台
  2. 在導覽窗格中,選擇 Databases (資料庫)。
  3. 選擇 Amazon RDS 資料庫執行個體的名稱。如果您尚未擁有,請建立 RDS 資料庫執行個體
  4. 選擇 Connectivity & security (連線與安全性)。
  5. Security (安全性) 區段中,選擇 VPC 安全群組下的連結。
  6. 選取安全群組,選擇 Actions (動作),然後選擇 Edit inbound rules(編輯傳入規則)。
  7. 選擇 Add Rule (新增規則),然後輸入下列內容:
    Type (類型) 中,輸入 Custom TCP Rule (自訂 TCP 規則) 在 Protocol (通訊協定) 中,輸入 TCP
    Port Range (連接埠範圍) 中,輸入 Amazon RDS 資料庫執行個體的連接埠。
    Source (來源) 中,輸入 EC2 執行個體的私有 IP 位址。
  8. 選擇 Save (儲存)。

這樣的安全群組組態允許來自 EC2 執行個體的私有 IP 位址的流量。如果 EC2 執行個體和 Amazon RDS 資料庫執行個體使用相同的 VPC,則無需修改 Amazon RDS 資料庫執行個體的路由表。如果 VPC 不同,請建立 VPC 對等互連,以允許這些 VPC 之間的連線。

注意: 如果您使用更具可擴充性的解決方案,請檢視您的組態。例如,如果您在安全群組規則中使用安全群組 ID,請確保組態不會限制對某個執行個體的存取。請改為將規則設定成限制存取任何使用特定安全群組 ID 的資源。

建立 EC2 執行個體連線端點

  1. 開啟 Amazon VPC 主控台
  2. 在導覽窗格中,選擇 Endpoints (端點)。
  3. 選擇 Create endpoint (建立端點),然後指定端點設定。
    (選用) 在 Name tag (名稱標籤) 中,輸入端點的名稱。
    Service category (服務類別) 中,選擇 EC2 Instance Connect Endpoint (EC2 執行個體連線端點)。
    VPC 中,選取具有目標執行個體的 VPC。
    (選用) 若要保留用戶端 IP 位址,請展開 Additional settings (其他設定),然後選取核取方塊。若沒有這麼做,預設會使用端點網路介面作為用戶端 IP 位址。
    Security groups (安全群組) 中,選取要與端點關聯的安全群組。若沒有這麼做,預設會使用 VPC 的預設安全群組。
    Subnet (子網路) 中,選取要建立端點的子網路。
    (選用) 若要新增標籤,選擇 Add new tag (新增標籤),然後輸入標籤索引鍵和標籤值。
  4. 檢視設定,然後選擇 Create endpoint (建立端點)。
  5. 端點的初始狀態為 Pending (待處理)。若要連線到執行個體,您必須等到端點狀態變為 Available (可用)。這可能需要幾分鐘的時間。

從本機電腦連線到 RDS 資料庫執行個體

**注意:**您必須具有 AWS CLI 的存取權。

若要透過 SSH 通道從本機 MySQL 用戶端連線到私有 RDS 執行個體,請完成下列步驟:
Linux 或 macOS

  1. 執行下列命令以開啟從本機電腦到 EC2 執行個體的通道:

    aws ec2-instance-connect open-tunnel --instance-id ec2-instance-ID --local-port 8888

    注意: 請將 ec2-instance-ID 替換為您的 EC2 執行個體 ID。

  2. 開啟第二個連線並執行下列命令,透過 EC2 執行個體建立從本機主機到 RDS 資料庫的 SSH 通道:

    ssh -i YOUR_EC2_KEY EC2_USER@EC2_HOST -p EC2_TUNNEL_PORT -L LOCAL_PORT:RDS_ENDPOINT:REMOTE_PORT -N -f

    **注意:**請替換下列值,如下所示:
    YOUR_EC2_KEY 替換為您 EC2 私有金鑰檔案的路徑
    EC2_USER 替換為您的 EC2 執行個體使用者名稱
    EC2_HOST 替換為您 EC2 執行個體的主機名稱
    EC2_TUNNEL_PORT 替換為您設定的連接埠
    LOCAL_PORT 替換為本機電腦上未使用的連接埠
    RDS_ENDPOINT 替換為您 RDS 執行個體的端點
    REMOTE_PORT 替換為 RDS 執行個體中使用的 Amazon RDS 資料庫連接埠。

  3. 使用第三個連線並執行下列命令,從本機電腦連線到 Amazon RDS 執行個體:

    mysql -h 127.0.0.1 -P LOCAL_PORT -u RDS_USER -p

    **注意:**請替換下列值,如下所示:
    LOCAL_PORT 替換為本機連接埠號碼
    DB_USER 替換為 RDS 資料庫使用者名稱
    DB password 替換為 Amazon RDS 資料庫密碼

相關資訊

如何對連線到 Amazon RDS 資料庫執行個體時發生的問題進行疑難排解?

Launch an Amazon EC2 instance (啟動 Amazon EC2 執行個體)

如何使用 Amazon EC2 執行個體作為堡壘主機,從本機電腦連線到私有 Amazon RDS DB 執行個體?

AWS 官方已更新 2 年前