如何使用 Amazon EC2 執行個體作為堡壘主機,從本機電腦連線到私有 Amazon RDS DB 執行個體?
我想要使用 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 資料庫執行個體,最佳做法是使用 VPN 或 AWS Direct Connect。如果您無法使用任何一個選項,那麼請使用堡壘主機。
以下範例組派適用於位於 Amazon Virtual Private Cloud (Amazon VPC) 中的 Amazon RDS for MySQL 執行個體。此範例使用安全群組來限制存取。但是,您可以限制子網路的網路存取控制清單 (網路 ACL) 以使連線更安全。
啟動並設定 EC2 執行個體
請完成下列步驟:
- 開啟 Amazon EC2 主控台,然後選擇 Launch instance (啟動執行個體)。
- 選取 Amazon Machine Image (AMI)。
- 選擇執行個體類型,然後選擇 Next: Configure Instance Details (下一步:設定執行個體詳細資訊)。
- 在 Network (網路)中,選擇 Amazon RDS 資料庫執行個體使用的 VPC。
- 在 Subnet (子網路) 中,選取 VPC 中的私有子網路
- 選擇 Next: 新增儲存體,然後視需要修改儲存體。
- 選擇 Next: 新增標籤,然後視需要新增標籤。
- 選擇 Next: 設定安全群組。
- 選擇 Add Rule (新增規則),然後輸入以下內容:
在 Type (類型) 中,輸入 Custom TCP Rule (自訂 TCP 規則) 在 Protocol (通訊協定) 中,輸入 TCP
在 Port Range (連接埠範圍) 中,輸入 22
在 Source (來源) 中,輸入 Amazon EC2 連線端點所使用的安全群組。 - 選擇 Review and Launch (檢閱並啟動),然後選擇 Launch (啟動)。
設定 Amazon RDS 資料庫執行個體的安全群組
注意: 若要自動將一或多個 EC2 執行個體連線至 Amazon RDS 資料庫,請參閱使用 RDS 主控台自動將執行個體連線到 RDS 資料庫。
請完成下列步驟:
- 開啟 Amazon RDS 主控台。
- 在導覽窗格中,選擇 Databases (資料庫)。
- 選擇 Amazon RDS 資料庫執行個體的名稱。如果您尚未擁有,請建立 RDS 資料庫執行個體。
- 選擇 Connectivity & security (連線與安全性)。
- 從 Security (安全性) 區段中,選擇 VPC 安全群組下的連結。
- 選取安全群組,選擇 Actions (動作),然後選擇 Edit inbound rules(編輯傳入規則)。
- 選擇 Add rule (新增規則),然後輸入下列值:
在 Type (類型) 中,輸入 Custom TCP Rule (自訂 TCP 規則) 在 Protocol (通訊協定) 中,輸入 TCP
在 Port Range (連接埠範圍) 中,輸入 Amazon RDS 資料庫執行個體的連接埠。
在 Source (來源) 中,輸入 EC2 執行個體的私有 IP 位址。 - 選擇 Save (儲存)。
安全群組的此組態允許來自 EC2 執行個體的私有 IP 位址的流量。如果 EC2 執行個體和 Amazon RDS 資料庫執行個體使用相同的 VPC,則無需修改 Amazon RDS 資料庫執行個體的路由表。如果 VPC 不同,請建立 VPC 對等互連,以允許這些 VPC 之間的連線。
注意: 如果您使用更具可擴充性的解決方案,請檢閱您的組態。例如,如果您在安全群組規則中使用安全群組 ID,請確定它不會限制對某個執行個體的存取。若不是,請設定規則以限制對任何使用特定安全群組 ID 的資源的存取。
建立 EC2 執行個體連線端點
- 開啟 Amazon VPC 主控台。
- 在導覽窗格中,選擇 Endpoints (端點)。
- 選擇 Create endpoint (建立端點),然後指定端點設定。
(選用) 在 Name tag (名稱標籤) 中,輸入端點的名稱。
在 Service category (服務類別) 中,選擇 EC2 Instance Connect Endpoint (EC2 執行個體連線端點)。
在 VPC 中,選取具有目標執行個體的 VPC。
(選用) 若要保留用戶端 IP 位址,請展開 Additional settings (其他設定),然後選取核取方塊。否則,預設會使用端點網路介面做為用戶端 IP 位址。
在 Security groups (安全群組) 中,選取要與端點關聯的安全群組。否則,預設會使用 VPC 的預設安全群組。
在 Subnet (子網路) 中,選取要建立端點的子網路。
(選用) 若要新增標籤,請選擇 Add new tag (新增標籤),然後輸入標籤索引鍵和標籤值。 - 檢閱設定,然後選擇 Create endpoint (建立端點)。
- 端點的初始狀態為 Pending (擱置中)。若要連線到執行個體,您必須等到端點狀態變為 Available (可用)。這可能需要幾分鐘的時間。
從本機電腦連線到 RDS 資料庫執行個體
注意: 您必須具有 AWS CLI 的存取權。
若要透過 SSH 通道從本機 MySQL 用戶端連線到私有 RDS 執行個體,請完成下列步驟:
Linux 或 macOS
-
執行下列命令以開啟從本機電腦到 EC2 執行個體的通道:
aws ec2-instance-connect open-tunnel --instance-id ec2-instance-ID --local-port 8888
注意: 請將 ec2-instance-ID 替換為您的 EC2 執行個體 ID。
-
開啟第二個連線並執行下列命令,透過 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 資料庫連接埠。 -
使用第三個連線並執行下列命令,從本機電腦連線到 Amazon RDS 執行個體:
mysql -h 127.0.0.1 -P LOCAL_PORT -u RDS_USER -p
注意: 將以下值替換為如下所示:
將 LOCAL_PORT 替換為本機連接埠號碼
將 DB_USER 替換為 RDS 資料庫使用者名稱
將 DB password 替換為 Amazon RDS 資料庫密碼
相關資訊

相關內容
- 已提問 6 個月前lg...
- 已提問 2 個月前lg...
- 已提問 2 年前lg...
- 已提問 1 年前lg...
- 已提問 2 年前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 9 個月前
- AWS 官方已更新 2 年前
- AWS 官方已更新 3 年前