設定分享資料庫連接
Amazon RDS Proxy i是用於 Amazon Relational Database Service (Amazon RDS) 的全受管的、高度可用的資料庫代理,讓應用程式更具擴展性、資料庫失敗的恢復能力更強、並且更安全。
許多應用程式包括那些在使用 AWS Lambda 的現代無伺服器架構上建置的應用程式,都可以與資料庫伺服器建立大量開啟的連線,並且可能以高速率開啟和關閉資料庫連接,從而耗盡資料庫記憶體與運算資源。Amazon RDS Proxy 允許應用程式集區化和共用與資料庫建立的連線,從而提升資料庫效率和應用程式可擴展性。使用 RDS Proxy,Aurora 和 RDS 資料庫的容錯移轉時間最多減少了66%,並且可以通過與 AWS Secrets Manager 和 AWS Identity and Access Management (IAM) 整合來管理資料庫登入資料、身份驗證及存取。
無需更改程式碼即可為大多數應用程式啟用 Amazon RDS Proxy,並且您無需佈建或管理任何其他基礎設施。定價簡單且可預測:您按啟用代理的資料庫執行個體的 vCPU 付費。Amazon RDS Proxy 支援具有 MySQL 相容性的 MySQL 和 Amazon Aurora 的 Amazon RDS。
在本教學中,您將學習如何建立 Amazon RDS Proxy 並將其連接到現有的 Amazon RDS MySQL 資料庫。您在 Amazon EC2 執行個體上使用 MySQL 用戶端透過 RDS Proxy 與RDS MySQL 資料庫建立連接。這些概念還可透過 Amazon RDS 應用於無伺服器架構。
先決條件
關於本教學 | |
---|---|
時間 | 10 分鐘 |
費用 | 低於 1 USD |
使用案例 | 資料庫 |
產品 | Amazon RDS、AWS Secrets Manager |
對象 | 資料庫管理員、開發人員 |
等級 | 中級 |
上次更新日期 | 2020 年 3 月 16 日 |
步驟 1:驗證安全群組與資料庫連線能力
對於此步驟,您需要驗證安全群組的傳入和傳出規則,然後驗證從當前 EC2 執行個體到現有 RDS 資料庫執行個體的連線能力。
1.1 — 開啟 Amazon VPC 儀表板 然後使用您的 AWS 帳戶登入資料登入。若您沒有 AWS 帳戶,則建立新的 AWS 帳戶 以利開始使用。
1.6 — 導航到 RDS 主控台,選擇資料庫,然後選擇您現有的 RDS MySQL 資料庫執行個體。在連線與安全標籤上,記下執行個體端點。
1.7 — 導航到 EC2 主控台,選擇運行執行個體,然後選擇要從中測試與 RDS 資料庫執行個體的連線能力的 EC2 執行個體。選擇 Connect。
步驟 2 存放 AWS Secrets Manager 中的資料庫登入資料
對於此步驟,將資料庫登入資料儲存在 AWS Secrets Manager 中。代理所存取的每個資料庫使用者帳戶都需要在 AWS Secrets Manager 中有一個對應的密碼。Amazon RDS Proxy 使用這些秘密來維護與數據庫的連接集區。
2.1 — 請導覽至 AWS 管理主控台的 Secrets Manager 區段,然後選擇儲存新密碼。
在選取密碼類型方塊中,選擇 RDS 資料庫的登入資料。然後,鍵入資料庫建立時所採用的使用者名稱和密碼。
AWS Secrets Manager 可讓您為密碼設定自動密碼輪換。這是一種增強應用程式安全性的智慧、簡便方法。如需詳細資訊,請參閱輪換 AWS Secrets Manager 密碼。
設定密碼輪換不在本教學的討論範圍內,因此,選擇停用自動輪換選項,然後選擇下一步。
步驟 3:建立 IAM 角色與政策
在此步驟中,您將建立 AWS Identity and Access Management(IAM)角色和政策,以允許 RDS 代理存取您在 AWS Secrets Manager 中建立的密碼。
3.1 — 導航到 AWS Management 主控台中的 IAM 儀表板。在 IAM 儀表板的瀏覽窗格中選擇角色,然後建立角色。
3.5 – 新增以下新政策敘述,將您的密碼 ARN 值替換為下面列出的範例。選擇 Review Policy (檢閱政策)。
(這政策敘述在 Amazon RDS 使用者指南中的設定 AWS Identity and Access Management (IAM) 政策中進行了描述。)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"secretsmanager:GetRandomPassword",
"secretsmanager:CreateSecret",
"secretsmanager:ListSecrets"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "secretsmanager:*",
"Resource": [
"your_secret_ARN"
]
}
]
}
3.9 — 跳過標記區段然後選擇下一步:審查。
步驟 4:建立 RDS Proxy
在此步驟中,您將建立 RDS Proxy,並為在步驟 1 中驗證的安全群組、在步驟 2 中建立的密碼以及在步驟 3 中建立的角色設定代理。
4.1 — 瀏覽至 RDS 主控台。在 RDS 導覽窗格中,選擇代理,然後建立代理。
4.5 — 在 進階配置區段中,保留增強型日誌的預設選擇。選取服務協議勾選方塊,然後選擇建立代理。

4.6 — 等待代理狀態從建立更改為可用,然後選擇代理。

4.7 — 在代理配置區段中,註記代理端點並確認所有其他的參數是正確的。

步驟 5:透過 RDS Proxy 連接 RDS 資料庫
在此步驟中,從您的 EC2 執行個體連接到 RDS 資料庫執行個體。但是,EC2 執行個體不是直接連接,而是透過 RDS 代理連接到 RDS 資料庫執行個體。
5.1 — 導覽至 EC2 主控台。在 EC2 瀏覽窗格中,選擇運行執行個體,然後選取您從步驟 1 測試連線能力的 EC2 執行個體。選擇 Connect。
步驟 6:監控您的 RDS 代理連接
在此步驟中,您使用 Amazon CloudWatch 監控代理指標,例如用戶端與資料庫連線
6.1 — 瀏覽至 CloudWatch 主控台。在 CloudWatch 導覽窗格中,選擇指標,然後選擇RDS,每個代理指標。
6.3 — 在指標清單中,選擇 ClientConnections 及 DatabaseConnections。對於顯示選項,選擇 數量。
ClientConnections 指標顯示每分鐘報告的與 RDS 代理的當前用戶端連接數量。DatabaseConnections 指標顯示每分鐘報告的來自 RDS 代理的當前資料庫連接數量。有關所有指標的詳細資料,請參閱 Monitoring RDS Proxy。
結果圖形顯示,存在一個用戶端連接(EC2 到 RDS 代理)和一個資料庫連接(RDS 代理到 RDS 資料庫執行個體)。此資料確認您在步驟 5 中建立的連接。
步驟 7:清除
在接下來的步驟中,您將清理在本教學中建立的資源。
刪除 RDS Proxy
7.1 — 導覽到 RDS 主控台,並在左窗格中選擇代理。
7.2 — 選擇教學代理。
選擇動作,然後選擇刪除。
7.4 — 在對話方塊中,鍵入刪除,然後選擇刪除。
代理的狀態更改為正在刪除。完成後,代理將從清單中刪除。
刪除秘密
導覽到 Secrets Manager 主控台。
7.6 — 選擇教學密碼。
7.7 — 選擇動作,然後選擇刪除密碼。
7.8 — 為安全起見,Secrets Manager 要求一段等待期間,隨後方能永久刪除密碼。使用 30 天的預設期間,然後選擇排定刪除。
刪除 IAM 角色與政策
7.9 — 導覽到 IAM 主控台,然後在導航窗格中選擇角色.。
7.10 — 搜索教學角色,然後選擇角色旁邊的勾選方塊。
7.11 — 在頁面最上層,選擇刪除角色。
7.12 — 在確認對話方塊中,選擇是,刪除
7.12 — 在 IAM 導覽窗格中,選擇政策。
7.13 — 搜索教學政策,然後選擇政策旁邊的勾選方塊。
7.14 — 選擇政策操作,然後選擇刪除。
7.15 — 確認您想要刪除的政策,然後選擇刪除。
刪除其他資源
如果您為本教學建立新的 EC2 執行個體,新的 RDS 執行個體以及相應的安全群組,請也刪除這些資源。
建議的後續步驟
進一步了解 Amazon RDS 功能
透過 Amazon RDS 使用者指南了解更多有關 Amazon Aurora 的功能。
Amazon RDS 的最佳實務
了解有關使用 Amazon RDS 的一般最佳實務和選項。
進一步了解 Amazon RDS Proxy
如果您想瞭解更多資訊,請閱讀使用 Amazon RDS 代理與 AWS Lambda 部落格文章,並請參閱管理連線與 Amazon RDS Proxy。