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

3 分的閱讀內容
0

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

解決方法

注意: 如果您在執行 AWS Command Line Interface (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: 新增儲存體,然後視需要修改儲存體。
  7. 選擇 Next: 新增標籤,然後視需要新增標籤。
  8. 選擇 Next: 設定安全群組。
  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 資料庫,請參閱使用 RDS 主控台自動將執行個體連線到 RDS 資料庫

請完成下列步驟:

  1. 開啟 Amazon 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 資料庫執行個體時遇到的問題?

啟動 Amazon EC2 執行個體

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