RDS代理連線考量 - Amazon Aurora

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

RDS代理連線考量

配置連線設定

若要調整 RDS Proxy 的連線共用,您可以修改下列設定:

IdleClientTimeout

您可以指定 Proxy 關閉用戶端連線之前的閒置時間長度。預設值為 1,800 秒 (30 分鐘)。

上一個要求完成後若應用程式未在的指定時間內提交新要求,用戶端連線就會被視為閒置。基礎資料庫連線保持開啟狀態,並傳回至連線集區。因此,它可供新的用戶端連線使用。如果您希望 Proxy 主動移除過時的連線,請降低閒置的用戶端連線逾時。如果您的工作負載與 Proxy 建立頻繁的連線,請提高閒置的用戶端連線逾時,以節省建立連線的成本。

此設定由RDS主控台中的 [閒置用戶端連線逾時] 欄位以及和中的IdleClientTimeout AWS CLI 設定表示API。若要瞭解如何變更RDS主控台中 [閒置用戶端連線逾時] 欄位的值,請參閱AWS Management Console。若要瞭解如何變更IdleClientTimeout設定值,請參閱指CLI令modify-db-proxy或API作業 M odifyDBProxy

MaxConnectionsPercent

您可以限制 RDS Proxy 可與目標資料庫建立的連線數目。需以資料庫的可用最大連線數百分比形式指定限制。此設定由RDS主控台中的 [連線集區最大連線數] 欄位以及和中的MaxConnectionsPercent AWS CLI 設定表示API。

MaxConnectionsPercent值以目標群組使用之 Aurora 資料庫叢集max_connections設定百分比表示。Proxy 不會事先保留這些連線。此設定可讓 Proxy 在工作負載需要時建立這些連線。

例如,對於設定為 1000 且max_connections設為 95 的已註冊資料庫目標,「RDS代理主機」會將 950 個連線MaxConnectionsPercent設定為同時連線至該資料庫目標的上限。

工作負載達到允許的資料庫連線數目上限的常見副作用,是會增加整體查詢延遲,以及提高 DatabaseConnectionsBorrowLatency 指標。您可以透過比較 DatabaseConnectionsMaxDatabaseConnectionsAllowed 指標,來監控目前使用的資料庫連線和允許的總數。

設定此參數時,請注意下列最佳實務:

  • 為工作負載模式的變更提供足夠的連線預留空間。建議將參數設定至少比您最近監控的最大使用量高出 30%。由於 RDS Proxy 會在多個節點之間重新分配資料庫連線配額,因此內部容量變更可能需要至少 30% 的預留空間來進行其他連線,以避免增加借用延遲。

  • RDSProxy 會保留特定數量的連線以進行主動監控,以支援快速容錯移轉、流量路由和內部作業。MaxDatabaseConnectionsAllowed 指標不包括這些保留的連線。它代表可用於服務工作負載的連線數,並且可以低於從 MaxConnectionsPercent 設定衍生的值。

    建議的最小MaxConnectionsPercent值如下:

    • db.t3.small:100

    • db.t3.medium:55

    • db.t3.large:35

    • db.r3.large 或以上:20

    如果多個目標執行個體像具有讀取器節點的 Aurora 叢集一樣向 RDS Proxy 註冊,請根據最小註冊的執行個體設定最小值。

若要瞭解如何在RDS主控台中變更 [連線集區最大連線數] 欄位的值,請參閱AWS Management Console。若要瞭解如何變更MaxConnectionsPercent設定值,請參閱指CLI令 modify-db-proxy-target-group 或API操作 M odifyDBProxy TargetGroup

重要

如果資料庫叢集屬於已開啟寫入轉送的全域資料庫,請依配置給寫入轉送的配額減少代理的 MaxConnectionsPercent 值。寫入轉送配額是在資料庫叢集參數 aurora_fwd_writer_max_connections_pct 中設定的。如需寫入轉送的資訊,請參閱 在 Amazon Aurora 全域資料庫中使用寫入轉送

如需有關資料庫連線限制的資訊,請參閱 Aurora 我的資料SQL庫執行個體的連線上限和 Aurora Postgre 資料SQL庫執行個體的連線上限。

MaxIdleConnectionsPercent

您可以控制 RDS Proxy 可在連線集區中保留的閒置資料庫連線數目。根據預設,當連線 5 分鐘內沒有任何活動時,RDSProxy 會將其集區中的資料庫連線視為閒置

MaxIdleConnectionsPercent值以RDS資料庫執行個體目標群組的max_connections設定百分比表示。預設值為 MaxConnectionsPercent 的 50%,上限為 MaxConnectionsPercent 的值。例如MaxConnectionsPercent,如果是 80,則預設值MaxIdleConnectionsPercent為 40。

值大時,Proxy 會將高百分比的閒置資料庫連線維持在開啟狀態。值小時,Proxy 就會關閉高百分比的閒置資料庫連線。如果您的工作負載無法預測,請考慮為 MaxIdleConnectionsPercent 設定一個高值。這樣做意味著RDS代理可以在不打開大量新的數據庫連接的情況下容納活動激增。

此設定由 AWS CLI 和DBProxyTargetGroup中的MaxIdleConnectionsPercent設定表示API。若要瞭解如何變更MaxIdleConnectionsPercent設定值,請參閱指CLI令 modify-db-proxy-target-group 或API操作 M odifyDBProxy TargetGroup

如需有關資料庫連線限制的資訊,請參閱 Aurora 我的資料SQL庫執行個體的連線上限和 Aurora Postgre 資料SQL庫執行個體的連線上限。

ConnectionBorrowTimeout

您可以選擇 RDS Proxy 在傳回逾時錯誤之前,等待連線集區中的資料庫連線可供使用的時間長度。預設值為 120 秒。此設定適用於連線數達到最大值,因此連線集區中沒有可用的連線時。當沒有適當的資料庫執行個體可用來處理要求時,例如當容錯移轉作業正在處理中時,它也適用。使用此設定,您可以設定應用程式的最佳等待期間,而不需要變更應用程式程式碼中的查詢逾時。

此設定由RDS主控台中的「連線借用逾時」欄位或或DBProxyTargetGroup中的ConnectionBorrowTimeout設定表示API。 AWS CLI 若要瞭解如何在RDS主控台中變更「連線借用逾時」欄位的值,請參閱AWS Management Console。若要瞭解如何變更ConnectionBorrowTimeout設定值,請參閱指CLI令 modify-db-proxy-target-group 或API操作 M odifyDBProxy TargetGroup

用戶端與資料庫連線

從應用程式到 RDS Proxy 的連線稱為用戶端連線。從 Proxy 到資料庫的連線為資料庫連線。使用 RDS Proxy 時,用戶端連線會在 Proxy 終止,而在 RDS Proxy 中管理資料庫連線。

應用程式端連線集區可提供減少應用程式與 RDS Proxy 之間週期性連線建立的好處。

實作應用程式端連線集區之前,請考慮下列組態層面:

  • 用戶端連線最長壽命:RDSProxy 會強制執行 24 小時用戶端連線的最長壽命。此值不可設定。設定集區的最長連線壽命少於 24 小時,以避免意外的用戶端連線中斷。

  • 用戶端連線閒置逾時:RDSProxy 會強制執行用戶端連線的閒置時間上限。設定集區的閒置連線逾時值低於 RDS Proxy 的用戶端連線閒置逾時設定,以避免意外連線中斷。

在應用程式端連線集區中設定的用戶端連線數目上限不一定限制為 Proxy 的 max_connections 設定。RDS

用戶端連線集區會延長用戶端連線壽命。如果您的連線遭遇綁定,則集區用戶端連線可能會降低多工效率。固定但閒置在應用程式端連線集區中的用戶端連線會繼續保留資料庫連線,並防止其他用戶端連線重複使用資料庫連線。檢閱您的 Proxy 記錄,以檢查您的連線是否經歷釘選。

注意

RDSProxy 會在不再使用的 24 小時後關閉資料庫連線。無論閒置連線數上限設定的值為何,Proxy 都會執行此動作。