目標業務成果 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

目標業務成果

本節討論下列業務成果: 

  • 提高應用程式可擴展性

  • 提高應用程式效能

  • 提高應用程式可用性

  • 提高應用程式安全性

  • 降低操作複雜性

提高應用程式可擴展性

應用程式的可擴展性取決於其資料庫處理並行連線的能力。並行連線數量取決於資料庫執行個體類型。例如,t3.small 執行個體類型可以支援 187 個並行資料庫連線。對資料庫的其他用戶端連線嘗試將導致失敗。使用 Amazon RDS Proxy 端點與資料庫互動,即使所需的用戶端連線超過執行個體類型支援的連線數上限,應用程式也能繼續運作,如下圖所示。

此圖表顯示 13 個不使用 RDS Proxy 的失敗連線以及所有使用 RDS Proxy 的成功連線。

由於 RDS Proxy 使用連線集區,因此即使資料庫執行個體的並行連線數上限為 187 個,使用 RDS Proxy 端點的測試應用程式也可以擴展至 2 萬個用戶端連線。

Amazon RDS Proxy 是需要擴展的架構中的重要元件。

提高應用程式效能

閒置連線是指不處理任何交易但仍在使用資料庫伺服器上的記憶體和 CPU 的資料庫連線。具有開啟的交易的閒置用戶端工作階段也會阻止自動清空程序清理無效元組。無效元組會導致資料庫表膨脹,從而導致 SQL 查詢速度減慢。依預設,Amazon RDS for PostgreSQL 資料庫保持閒置連線 24 小時開啟 (由 idle_in_transaction_session_timeout 參數設定)。

依預設,如果閒置連線保持閒置超過 30 分鐘 (由 IdleClientTimeout 參數設定),RDS Proxy 會透過關閉閒置連線來主動進行管理。盡快清除閒置工作階段及其使用的資源可減少對 CPU、記憶體和自動清空程序的影響。

Amazon RDS Proxy 可有效管理閒置連線,從而提高應用程式效能。

提高應用程式可用性

應用程式的可用性取決於其資料庫容錯移轉回應時間。在資料庫容錯移轉期間,應用程式會遇到進行中的交易錯誤。這會降低應用程式對最終使用者的可用性。

RDS Proxy 可感知資料庫容錯移轉。在資料庫發生容錯移轉時,RDS Proxy 會將來自應用程式端的傳入請求排入佇列,直到可以與資料庫建立新連線。這有助於防止進行中的交易發生錯誤,從而提高應用程式的可用性。

部落格文章使用 Amazon RDS Proxy 提高應用程式可用性強調了將 RDS Proxy 與 Amazon Aurora 資料庫搭配使用的優勢。使用 RDS Proxy 時,平均容錯移轉時間為 3.1 秒,而使用資料庫的直接連線時為 24 秒。這表示增加了 87%。

Amazon RDS Proxy 有助於提高應用程式可用性。

提高應用程式安全性

由於 RDS Proxy 使用 TLS/SSL 和 AWS Identity and Access Management (IAM),因此可以充當用戶端應用程式和基礎 Postgres 資料庫之間的額外安全層。使用 RDS Proxy,您可以對與代理的應用程式連線使用更強的安全要求 (TLS 1.2 和 IAM 角色)。

RDS Proxy 可以從 擷取資料庫憑證 AWS Secrets Manager,而且您可以為 RDS Proxy 使用者設定 IAM 身分驗證。如此一來,即使資料庫使用原生身分驗證機制 (如使用者名稱和密碼),您也可以對資料庫存取強制執行 IAM 身分驗證。這減少了應用程式管理資料庫憑證的需求,並提升了應用程式安全狀態。

降低操作複雜性

連線集區必須輔以額外的代理伺服器才能提供高可用性和負載平衡。此設定增加了操作複雜性。傳統代理伺服器難以部署、修補和管理。對其進行使用會消耗時間和精力,而這些時間和精力本來可以更好地用於開發產品。

Amazon RDS Proxy 可為您提供資料庫代理的優點,而不需要額外的修補和管理自己的代理伺服器負擔。RDS Proxy 是無伺服器的,可自動擴展以適應您的工作負載。透過自助服務設定選項,RDS Proxy 可以提高開發人員的速度,從而更快地交付新應用程式。