Amazon RDS Proxy
讓您的應用程式更具可擴展性、彈性與安全性
什麼是 RDS Proxy?
RDS Proxy 是 Amazon RDS 的一項全受管、高度可用且易於使用的資料庫代理功能,讓您的應用程式能夠:1/ 透過容納和共享資料庫連線來提高可擴展性;2/ 透過將資料庫容錯移轉時間減少多達 66%,並在容錯移轉期間保留應用程式連線,來提高可用性;3/ 透過可選擇性地對資料庫強制執行 AWS IAM 身分驗證,並在 AWS Secrets Manager 中安全地儲存憑證來提高安全性。
您無需佈建或管理任何其他基礎結構,即可開始使用 RDS Proxy,而且可針對大多數應用程式來啟用,而無需變更程式碼。
Amazon RDS Proxy 的優勢
RDS Proxy 可維護 RDS 資料庫執行個體的已建立連線集區,進而在建立新連線時,減少通常會產生的資料庫運算及記憶體資源壓力。此外,該服務還可分享不常使用的資料庫連線,因此存取 RDS 資料庫的連線較少。這種連線集區化可讓您的資料庫有效支援大量且高頻率的應用程式連線,以便應用程式可在不影響效能的情況下擴展。
RDS Proxy 會自動連線新資料庫執行個體,同時保留應用程式連線,減輕因停電影響資料庫可用性的情況,進而將應用程式中斷降至最低。當發生容錯移轉時,RDS Proxy 會直接路由請求到新資料庫執行個體。這可將 Aurora 與 RDS 資料庫的容錯移轉時間縮短最高 66%。RDS Proxy 還利用兩個可讀待機支援多可用區,一般能在 35 秒內實現容錯移轉,寫入延遲改善 2 倍,增加讀取容量並且將次要版本升級的停機時間通常降至不到 1 秒。
RDS Proxy 可讓您選擇強制執行 IAM 驗證以進行資料庫存取,並避免將資料庫憑證硬式編碼到應用程式程式碼,讓您擁有資料安全性的額外控制權。此外,該服務還讓您能夠運用 Secrets Manager 集中管理資料庫憑證。
資料庫代理伺服器有助於處理資料庫的額外負載。儘管傳統代理伺服器可讓應用程式更有效擴展,但卻難以部署、修補及管理,並耗費本可用於開發優質產品的資源。RDS Proxy 是一項完全無伺服器服務,還是一個全受管資料庫代理,因此該服務可自動擴展以適應您的工作負載,同時免去修補及管理您自己的代理伺服器的負擔。
RDS Proxy 完全相容支援的資料庫引擎通訊協定,因此您可為應用程式部署 RDS Proxy,而無需變更應用程式程式碼。您僅需將應用程式連線指向代理,而非 RDS 資料庫,其餘一切即可順暢進行管理。
開始使用 Amazon RDS Proxy
尋找有關如何快速開始使用 RDS Proxy 的資訊? 以下是最重要的技術文件指南、使用者指南和教學課程,向您展示如何在幾個步驟中開始使用 RDS Proxy。
常見問答集
一般
全部開啟工作負載不可預測的應用程式:支援高度變化的工作負載的應用程式可能會突然開啟大量新的資料庫連線。RDS Proxy 的連線管理讓客戶可以透過高效地重用資料庫連線,來適當地擴展應用程式,以應對不可預測的工作負載。首先,RDS Proxy 使多個應用程式連接可以共享資料庫連接,以充分利用資料庫資源。其次,RDS Proxy 讓客戶可以透過調節開啟的資料庫連線數,來維持可預測的資料庫效能。第三,RDS Proxy 會移除無法提供服務的應用程式請求,以維持應用程式的整體效能和可用性。
經常開啟和關閉資料庫連線的應用程式:以無伺服器、PHP 或 Ruby on Rails 等技術建置的應用程式可能會頻繁開啟和關閉資料庫連線,來滿足應用程式請求。RDS Proxy 可讓客戶維護一個資料庫連線集區,以避免建立新的連線,對資料庫運算和記憶體資源造成不必要的壓力。
使連接保持開啟但處於空閒狀態的應用程式:在諸如 SaaS 或 eCommerce 之類的產業中,應用程式可能會使資料庫連接保持空閒狀態,以最大程度地減少客戶再度互動時的回應時間。客戶可以使用 RDS Proxy 來保留空閒連線,而僅在作用中的請求需要時才建立資料庫連線,而不是為支援大多數空閒連線過度佈建資料庫。
需要在出現暫時性故障時獲得可用性的應用程式:使用 RDS Proxy,客戶可以建置可以透明地容忍資料庫故障的應用程式,而無需編寫複雜的故障處理程式碼。RDS Proxy 會自動將流量路由到新的資料庫執行個體,同時保留應用程式連接。RDS Proxy 還會繞過 DNS (網域名稱系統) 快取,以將 Amazon RDS 和 Aurora 多可用區域資料庫的容錯移轉時間減少多達 66%。在資料庫容錯移轉期間,應用程式可能會遇到延遲增加的情況,可能需要重試正在進行的交易。
改進的安全性和集中式憑證管理:RDS Proxy 透過選擇對關聯式資料庫實作 IAM 身分驗證,來幫助客戶建置更安全的應用程式。RDS Proxy 還讓客戶能夠透過 AWS Secrets Manager 集中管理資料庫憑證。
RDS Proxy 改變了您建置現代無伺服器應用程式的方式,讓您可以利用關聯式資料庫的強大功能和簡便性。首先,RDS Proxy 透過容納和重用資料庫連接,來使無伺服器應用程式高效地擴展。其次,藉助 RDS Proxy,您不再需要在您的 Lambda 程式碼中處理資料庫憑證。您可以使用與您的 Lambda 函數關聯的 IAM 執行角色來進行 RDS Proxy 和資料庫身分驗證。第三,您不需要管理任何新基礎架構或程式碼即可利用由關聯式資料庫支援的無伺服器應用程式的全部潛能。RDS Proxy 全受管,並可根據您的應用程式需求自動擴展其容量。
RDS Proxy 適用於 Amazon Aurora with MySQL compatibility、Amazon Aurora with PostgreSQL compatibility、Amazon RDS for MariaDB、Amazon RDS for MySQL、Amazon RDS for PostgreSQL 和 Amazon RDS for SQL Server。如需受支援引擎版本的清單,請參閱 Amazon Aurora 使用者指南或 Amazon RDS 使用者指南。
只需在 Amazon RDS 主控台中按幾下,即可為 Amazon RDS 資料庫啟用 RDS Proxy。啟用 RDS Proxy 後,您可以指定要從中存取 RDS Proxy 的 VPC 和子網路。身為 Lambda 使用者,您可以為 Amazon RDS 資料庫啟用 RDS Proxy,並在 Lambda 主控台中按幾下來設定存取它的 Lambda 函式,不需要離開主控台。
- 在使用 Secrets Manager 建立 Proxy 與資料庫的連線時,使用 IAM 身分驗證來建立用戶端與代理的連線
- 用戶端與代理以及代理與資料庫的連線均使用 IAM 身分驗證,而無需在 Secrets Manager 中存放資料庫密碼
如需透過 RDS Proxy 在應用程式與資料庫間進行身分驗證,您有多個選項。
您可藉助 AWS Secrets Manager,使用傳統的使用者名稱與密碼身分驗證來存放資料庫憑證,同時集中化、保障及簡化應用程式的憑證管理。使用 Secrets Manager 時,您可使用與資料庫連線相同的方式與 RDS Proxy 連線。您提供的使用者名稱與密碼將與存放在 Secrets Manager 中的憑證相符,然後用於資料庫連線。
為獲得增強的安全性,您可使用基於 IAM 的身分驗證。應用程式無需指定使用者名稱與密碼,即可藉助與 AWS Lambda 或 EC2 等服務關聯的 IAM 執行角色,使用 RDS Proxy 進行身分驗證。您擁有兩個 IAM 身分驗證選項:
若要了解透過 RDS Proxy 進行身分驗證的詳細資訊,請參閱透過 RDS Proxy 連線至資料庫。
是。如需 Amazon RDS Proxy SLA 的完整詳細資訊,請參閱 Amazon RDS Proxy SLA 詳細資訊頁面。
客戶
Acquia
「我們持續尋找最佳化並改善客戶的效能和可擴展性。由於 Drupal 原生不支援連線集區,因此我們需要一種解決方案,可以讓我們更妥善地擴展應用程式在關聯式資料庫上的連線數。RDS Proxy 完美符合我們的要求! 藉助 RDS Proxy,我們客戶的 Drupal 應用程式能夠輕鬆地利用已建立連線的就緒集區。這樣,我們就能夠更妥善地管理網站流量的突然激增,同時提高資料庫的效率。」
Acquia 首席架構師 Ed Brennan
CAINZ
「我們擁有以 AWS Lambda 為基礎的無伺服器 API 基礎設施,該基礎設施預計可支援數以千計的使用者,並且需要可擴展的後端資料存放區。雖然我們傳統上都依賴 NoSQL 資料庫來處理此類場景,但在此情況下的難題是,我們需要強大的 SQL 查詢功能來管理並存取 Amazon RDS 和 Amazon Aurora 資料庫提供的資料。我們目前可以在 RDS 和 Aurora 資料庫前端使用 RDS Proxy 來解決此難題。在測試中,我們觀察到在高峰負載期間藉助 RDS Proxy 將回應時間縮短了 4 倍。RDS Proxy 對我們益處良多,因為我們可以在關聯式資料庫中使用熟悉的 SQL 語句,並且所需要做的就是切換端點。」
CAINZ 數位策略部 Masahiro Arai
CloudHealth by VMware
「我們最近將 MySQL 資料庫移轉至 Amazon Aurora。我們的應用程式保持大量資料庫連線開啟狀態,在連線量暴增期間對我們的資料庫造成壓力,導致客戶連線中斷。在移轉至 Aurora 後,RDS Proxy 成為我們架構的關鍵部分,其可擴展應用程式並最佳化成本。使用 RDS Proxy,我們的應用程式可以開啟更多的代理連線,從而在高峰時間將資料庫連線量減少高達 90%,使資料庫免受高連線量的影響。RDS Proxy 可協助改善系統穩定性及降低成本。由於資料庫連線所需的系統資源減少,我們可以將資料庫合併為更少數量的 Aurora 叢集,從而降低我們的營運總成本。」
CloudHealth by VMware 資深軟體架構師 Peter Fein
Dream 11
「在 2023 年印度超級板球聯賽期間,RDS Proxy 產生了變個性的作用。該工具協助我們處理晝夜不斷的大量流量高峰,期間不影響資料庫效能和可用性。它還助力我們動態擴展資源並最佳化我們的成本。我們能夠為使用者提供無縫體驗。對於需要處理不可預測的大規模流量的任何線上遊戲平台來說,RDS Proxy 都是必備的工具。」
Dream 11 首席工程師 Bipul Karnani