使用 Amazon RDS Proxy for Aurora - Amazon Aurora

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

使用 Amazon RDS Proxy for Aurora

透過使用 Amazon RDS Proxy,您可以允許應用程式集區和共用資料庫連線,以改善其擴展能力。RDS Proxy 透過自動連線至待命資料庫執行個體,同時保留應用程式連線,讓應用程式對資料庫故障更具彈性。透過使用 RDS Proxy,您也可以強制執行資料庫的 AWS Identity and Access Management (IAM) 身分驗證,並將憑證安全地存放在 中 AWS Secrets Manager。

使用 RDS Proxy,您可以處理資料庫流量中無法預測的激增。否則,這些激增可能會因為過度訂閱連線或以快速速率建立新連線而導致問題。RDS Proxy 會建立資料庫連線集區,並重複使用此集區中的連線。此方法可避免每次開啟新資料庫連線的記憶體和CPU額外負荷。若要保護資料庫免於過度訂閱,您可以控制建立的資料庫連線數目。

RDS 無法立即從連線集區提供服務的代理佇列或限流應用程式連線。雖然延遲可能會增加,但您的應用程式可以繼續擴展,而不會突然失敗或讓資料庫無法負荷。如果連線請求超過您指定的限制,RDSProxy 會拒絕應用程式連線 (亦即,它會捨棄負載)。同時,它還為RDS可用容量的負載維持可預測的效能。

您可以減少處理登入憑證,並為每個新連線建立安全連線的負荷。RDS Proxy 可以代表資料庫處理其中某些工作。

RDS Proxy 與其支援的引擎版本完全相容。您可以為大多數應用程式啟用 RDS Proxy,無需變更程式碼。如需受支援引擎版本的清單,請參閱 Amazon RDS 代理支援的區域和 Aurora 資料庫引擎

區域和版本可用性

如需特定 中 RDS Proxy 資料庫引擎版本支援和可用性的相關資訊 AWS 區域,請參閱 Amazon RDS 代理支援的區域和 Aurora 資料庫引擎

RDS Proxy 的配額和限制

下列配額和限制適用於 RDS Proxy:

  • 每個 AWS 帳戶 ID 限制為 20 個代理。如果您的應用程式需要更多代理,請透過 中的Service Quotas頁面請求增加 AWS Management Console。在Service Quotas頁面中,選取 Amazon Relational Database Service (Amazon RDS) 並尋找 Proxies 以請求增加配額。 AWS 可以自動增加您的配額或等待 審核您的請求 AWS Support。

  • 每個代理最多可以有 200 個相關聯的 Secrets Manager 秘密。因此,每個代理可在任何指定時間連接至多達 200 個不同的使用者帳戶。

  • 每個代理都有預設端點。您也可以為每個代理新增最多 20 個代理端點。您可以建立、檢視、修改和刪除這些端點。

  • 在 Aurora 叢集中,所有使用預設代理端點的連線都會由 Aurora 寫入器執行個體處理。若要針對讀取密集型工作負載執行負載平衡,您可以為代理建立唯讀端點。該端點會將連線傳遞至叢集的讀取器端點。這樣,您的代理連線可以利用 Aurora 讀取可擴展性。如需詳細資訊,請參閱代理端點概觀

  • 您可以搭配 Aurora Serverless v2 叢集使用 RDS Proxy,但不能搭配 Aurora Serverless v1 叢集使用。

  • 您的 RDS Proxy 必須與資料庫位於相同的虛擬私有雲端 (VPC)。代理不可以公開存取,但資料庫可以。例如,如果您在本機主機上設計資料庫的原型,除非您設定必要的網路需求以允許與代理的連線,否則無法連線至您的代理。這是因為您的本機主機位於代理的 之外VPC。

    注意

    對於 Aurora 資料庫叢集,您可以開啟交叉VPC存取。若要這麼做,請為代理建立額外的端點,並使用該端點指定不同的 VPC、子網路和安全群組。如需詳細資訊,請參閱跨越存取 Aurora 資料庫 VPCs

  • 您無法將 RDS Proxy 與租用設定為 VPC的 搭配使用dedicated

  • 如果您將 RDS Proxy 與已啟用IAM身分驗證的 Aurora 資料庫叢集搭配使用,請檢查使用者身分驗證。所有透過代理連線的使用者都必須透過登入憑證進行身分驗證。如需 Secrets Manager 和 RDS Proxy 中IAM支援的詳細資訊,請參閱 AWS Secrets Manager 為RDS代理伺服器設定資料庫認證設定 RDS Proxy 的 AWS Identity and Access Management (IAM) 政策

  • 使用SSL主機名稱驗證DNS時,您無法將 RDS Proxy 與自訂搭配使用。

  • 每個代理都可以與單一目標資料庫叢集相關聯。不過,您可以將多個代理與同一個資料庫叢集建立關聯。

  • 文字大小大於 16 KB 的任何陳述式會導致代理將工作階段鎖定至目前的連線。

  • 某些區域具有要在建立 Proxy 時考量的可用區域 (AZ) 限制。美國東部 (維吉尼亞北部) 區域不支援use1-az3可用區域中的 RDS Proxy。美國西部 (加利福尼亞北部) 區域不支援usw1-az2可用區域中的 RDS Proxy。在建立 Proxy 時,若選取子網路,請確定您未在上述可用區域中選取子網路。

  • 目前,RDSProxy 不支援任何全域條件內容金鑰。

    如需全域條件內容索引鍵的詳細資訊,請參閱 IAM 使用者指南 中的AWS 全域條件內容索引鍵

  • 您無法搭配 RDS Custom for SQL Server 使用 RDS Proxy。

  • 若要反映代理的任何資料庫參數群組修改,即使您選擇立即套用變更,仍需要重新啟動執行個體。對於叢集層級參數,需要全叢集重新啟動。

如需每個資料庫引擎的其他限制,請參閱下列各節:

Aurora My 的其他限制SQL

下列其他限制適用於 RDS Proxy with Aurora MySQL 資料庫:

  • RDS Proxy 不支援 MySQL sha256_passwordcaching_sha2_password身分驗證外掛程式。這些外掛程式會實作使用者帳戶密碼的 SHA-256 雜湊。

  • 目前,所有代理都在連接埠 3306 for My 上接聽SQL。代理仍會使用您在資料庫設定中指定的連接埠來連線至您的資料庫。

  • 您無法在EC2執行個體中使用 RDS Proxy 搭配自我管理的 MySQL 資料庫。

  • 您無法將 RDS Proxy 與資料庫read_only參數群組中 參數設定為 的 RDS for MySQL 資料庫執行個體搭配使用1

  • RDS Proxy 不支援我的SQL壓縮模式。例如,其不支援 mysql 命令的 --compress-C 選項使所用的壓縮。

  • 當 RDS Proxy 重複使用相同的資料庫連線執行另一個查詢時,處理GET DIAGNOSTIC命令的資料庫連線可能會傳回不正確的資訊。當 RDS Proxy 多工資料庫連線時,可能會發生這種情況。

  • 某些SQL陳述式和函數,例如 SET LOCAL可以變更連線狀態,而不會導致釘選。如需最新的鎖定行為,請參閱 避免固定代理 RDS

  • 不支援在多陳述式查詢中使用 ROW_COUNT()函數。

  • RDS Proxy 不支援無法處理單一TLS記錄中多個回應訊息的用戶端應用程式。

重要

對於與 MySQL 資料庫相關聯的代理,請勿在初始化查詢中將組態參數設定為 sql_auto_is_nulltrue或非零值。這樣做可能會導致應用程式行為不正確。

Aurora Postgre 的其他限制SQL

下列其他限制適用於具有 Aurora PostgreSQL 資料庫的 RDS Proxy:

  • RDS Proxy 不支援 Postgre 的工作階段固定篩選條件SQL。

  • 目前,所有代理都在 Postgre 的連接埠 5432 上接聽SQL。

  • 對於 Postgre SQL,RDSProxy 目前不支援透過發出 來取消用戶端的查詢CancelRequest。例如,使用 Ctrl+C 在互動式 psql 工作階段中取消長時間執行的查詢時,就是這種情況。

  • PostgreSQL 函數上次執行的結果不一定準確。作為解決方法,請將 INSERT陳述式與 RETURNING子句搭配使用。

  • RDS Proxy 目前不支援串流複寫模式。

重要

對於具有 PostgreSQL 資料庫的現有代理,如果您將資料庫身分驗證修改為SCRAM僅供使用,代理會變成最長 60 秒無法使用。若要避免發生此問題,請執行下列其中一項:

  • 確定資料庫同時允許 SCRAMMD5 身分驗證。

  • 若只要使用 SCRAM 身分驗證,請建立新代理、將您的應用程式流量遷移至新代理,然後刪除先前與資料庫相關聯的代理。