AWS針對關聯式資料庫服務(RDS)提供了代理服務RDS Proxy,這是一項全託管的服務,可以讓資料庫應用程式更具可擴展性,並且擁有能抵抗資料庫故障的能力,提升應用程式可靠性,並且提升安全性。

AWS提到,許多應用程式,包括建立在AWS Lambda、Fargate、Amazon ECS或EKS服務之上的應用程式,都可以大量且快速地開啟或關閉,與資料庫伺服器間的連結,而這樣的操作容易耗盡資料庫的記憶體和運算資源。

Amazon RDS Proxy的執行個體會維護與RDS資料庫執行個體間建立的連接池,減輕建立新連接時,對資料庫記憶體和運算資源造成的影響,並且在應用程式間共用這些連結,進而提高資料庫的效率以及應用程式的可擴展性。

RDS Proxy因為可以共用不常用的資料庫連接,所以使得存取RDS資料庫的連接更少,官方提到,這樣的連接池能夠有效率地支援大量和頻繁的應用程式連接,當使用者擴展應用程式時,便不會影響到資料庫效能。

而且RDS Proxy能夠在維持現有連接的狀態下,連接新的資料庫執行個體,因此可以最大程度減少因為資料庫服務中斷,所造成的應用程式可用性問題,當資料庫故障時,RDS Proxy會直接將請求路由到新的資料庫執行個體,這樣可以使得故障轉移時間減少66%。

另外,由於RDS Proxy讓使用者可強制資料庫存取使用IAM身份驗證,因此將能避免資料庫憑證被寫死在程式碼中的安全性風險,多增加了一道的安全性控制,而且藉由RDS Proxy,使用者還能以AWS Secrets Manager集中管理資料庫憑證。

RDS Proxy目前僅可用於MySQL和PostgreSQL引擎系列的資料庫,包括MySQL 5.6、MySQL 5.7,以及PostgreSQL 10.11和11.5。AWS解釋,在Aurora叢集中,連接池的所有連接,都由Aurora主要執行個體處理,因此當使用者想要在讀取密集的工作負載中執行負載平衡,做法是在Aurora叢集使用讀取端點。

另外,RDS Proxy必須要和資料庫位於同一個VPC中,雖然資料庫可以被公開存取,但是RDS Proxy卻不行,而且RDS Proxy不支援壓縮模式,像是mysql指令的--compress或-C選項皆不支援。


Advertisement

更多 iThome相關內容