本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
RDS Proxy 連線考量事項
配置連線設定
若要調整 RDS Proxy 的連線集區,可以修改以下設定:
IdleClientTimeout
您可以指定在代理關閉用戶端連線之前,用戶端連線可以閒置多久。預設值為 1,800 秒 (30 分鐘)。
上一個要求完成後若應用程式未在的指定時間內提交新要求,用戶端連線就會被視為閒置。基礎資料庫連線保持開啟狀態,並傳回至連線集區。因此,它可供新的用戶端連線使用。如果您希望代理主動移除過時的連線,則降低閒置用戶端連線逾時。如果您的工作負載經常與代理建立連線,請提高閒置用戶端連線逾時,以節省建立連線的成本。
此設定由 RDS 主控台中的閒置用戶端連線逾時欄位,以及 AWS CLI 和 API 中的IdleClientTimeout
設定表示。若要了解如何在 RDS 主控台中變更 Idle client connection timeout (閒置用戶端連線逾時) 欄位的值,請參閱 AWS Management Console。若要了解如何變更 IdleClientTimeout
設定的值,請參閱 CLI 命令 modify-db-proxy 或 API 操作 ModifyDBProxy。
MaxConnectionsPercent
您可以限制 RDS Proxy 可以與目標資料庫建立的連線數。需以資料庫的可用最大連線數百分比形式指定限制。此設定由 RDS 主控台中的連線集區最大連線欄位,以及 AWS CLI 和 API 中的MaxConnectionsPercent
設定表示。
MaxConnectionsPercent
值會以目標群組所使用的 RDS 資料庫執行個體 的 max_connections
設定百分比來表示。Proxy 不會事先保留這些連線。此設定可讓代理建立工作負載所需的這些連線。
例如,對於 max_connections
設定為 1000 且 MaxConnectionsPercent
設為 95 的已註冊資料庫目標,RDS Proxy 會將 950 個連線設定為同時連線至該資料庫目標的上限。
工作負載達到允許的資料庫連線數目上限的常見副作用,是會增加整體查詢延遲,以及提高 DatabaseConnectionsBorrowLatency
指標。您可以透過比較 DatabaseConnections
和 MaxDatabaseConnectionsAllowed
指標,來監控目前使用的資料庫連線和允許的總數。
設定此參數時,請注意下列最佳實務:
為工作負載模式的變更提供足夠的連線預留空間。建議將參數設定至少比您最近監控的最大使用量高出 30%。由於 RDS Proxy 會在多個節點之間重新分配資料庫連線配額,因此內部容量變更可能需要至少 30% 的成長空間才能進行其他連線,以避免增加借用延遲。
RDS Proxy 會保留特定數量的連線以進行主動監控,以支援快速容錯移轉、流量路由和內部操作。
MaxDatabaseConnectionsAllowed
指標不包括這些保留的連線。它代表可用於服務工作負載的連線數,並且可以低於從MaxConnectionsPercent
設定衍生的值。最小建議
MaxConnectionsPercent
值db.t3.small:30
db.t3.medium 或以上:20
若要了解如何在 RDS 主控台中變更 Connection pool maximum connections (連線集區最大連線數) 欄位的值,請參閱 AWS Management Console。若要了解如何變更 MaxConnectionsPercent
設定的值,請參閱 CLI 命令 modify-db-proxy-target-group 或 API 操作 ModifyDBProxyTargetGroup。
如需資料庫連線數限制的詳細資訊,請參閱資料庫連線數上限。
MaxIdleConnectionsPercent
您可以控制 RDS Proxy 可在連線集區中保留的閒置資料庫連線數。根據預設,RDS Proxy 會將其集區中的資料庫連線視為閒置,當連線上五分鐘沒有活動時。
此MaxIdleConnectionsPercent
值以 RDS 資料庫執行個體目標群組max_connections
設定的百分比表示。預設值為 MaxConnectionsPercent
的 50%,上限為 MaxConnectionsPercent
的值。例如,如果 MaxConnectionsPercent
, 為 80,則預設值MaxIdleConnectionsPercent
為 40。如果MaxConnectionsPercent
未指定 的值,則 RDS for SQL Server 的預設值MaxIdleConnectionsPercent
為 5,而所有其他引擎的預設值為 50。
值大時,Proxy 會將高百分比的閒置資料庫連線維持在開啟狀態。值小時,Proxy 就會關閉高百分比的閒置資料庫連線。如果您的工作負載無法預測,請考慮為 MaxIdleConnectionsPercent
設定一個高值。這麼做表示 RDS Proxy 可以因應活動中的突增情況,而無需開啟大量新的資料庫連線。
此設定由 AWS CLI 和 API DBProxyTargetGroup
中的 MaxIdleConnectionsPercent
設定表示。若要了解如何變更 MaxIdleConnectionsPercent
設定的值,請參閱 CLI 命令 modify-db-proxy-target-group 或 API 操作 ModifyDBProxyTargetGroup。
如需資料庫連線數限制的詳細資訊,請參閱資料庫連線數上限。
ConnectionBorrowTimeout
您可以選擇 RDS Proxy 在傳回逾時錯誤之前,等待連線集區中的資料庫連線變成可用的時間。預設值為 120 秒。此設定適用於連線數達到最大值,因此連線集區中沒有可用的連線時。當沒有適當的資料庫執行個體可處理請求時,例如當容錯移轉操作正在進行時,也適用。使用此設定,您可以設定應用程式的最佳等待期間,而無需變更應用程式程式碼中的查詢逾時。
此設定由 RDS 主控台中的連線借用逾時欄位或 AWS CLI 或 API DBProxyTargetGroup
中的 ConnectionBorrowTimeout
設定表示。若要了解如何在 RDS 主控台中變更 Connection borrow timeout (連線借用逾時) 欄位的值,請參閱 AWS Management Console。若要了解如何變更 ConnectionBorrowTimeout
設定的值,請參閱 CLI 命令 modify-db-proxy-target-group 或 API 操作 ModifyDBProxyTargetGroup。
用戶端與資料庫連線
從應用程式到 RDS Proxy 的連線稱為用戶端連線。從 Proxy 到資料庫的連線為資料庫連線。使用 RDS Proxy 時,用戶端連線會在 Proxy 終止,而資料庫連線則是在 RDS Proxy 內管理。
應用程式端連線集區可提供減少應用程式與 RDS Proxy 之間重複建立連線的優勢。
在實作應用程式端連線集區之前,請考慮下列組態層面:
-
用戶端連線最長壽命:RDS Proxy 強制執行用戶端連線最長壽命 24 小時。此值不可設定。將集區設定為最大連線壽命少於 24 小時,以避免意外的用戶端連線中斷。
-
用戶端連線閒置逾時:RDS Proxy 會強制執行用戶端連線的閒置時間上限。設定閒置連線逾時值低於 RDS Proxy 用戶端連線閒置逾時設定的集區,以避免意外連線中斷。
在應用程式端連線集區中設定的用戶端連線數目上限,不必受限於 RDS Proxy 的 max_connections 設定。
用戶端連線集區會導致較長的用戶端連線生命週期。如果您的連線遭遇綁定,則集區用戶端連線可能會降低多工效率。在應用程式端連線集區中鎖定但閒置的用戶端連線會繼續保留至資料庫連線,並防止其他用戶端連線重複使用資料庫連線。檢閱您的代理日誌,以檢查您的連線是否發生鎖定。
注意
RDS Proxy 會在不再使用資料庫連線 24 小時後的某個時間,關閉資料庫連線。無論閒置連線數上限設定的值為何,Proxy 都會執行此動作。