使用 Amazon RDS 代理端點 - Amazon Relational Database Service

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

使用 Amazon RDS 代理端點

瞭解RDS代理伺服器的端點以及如何使用它們。透過使用 Proxy 端點,您可以利用下列功能:

  • 您可以使用多個端點搭配代理,來獨立監控和不同應用程式的連線並進行疑難排解。

  • 您可以使用跨VPC端點,允許VPC從不同的資源 (例如 Amazon EC2 執行個體) 存取一個資料庫VPC。

代理端點概觀

使用 RDS Proxy 端點所涉及的程序類型與 相同。如果您不熟悉RDS端點,請參閱連接至執行 My 資料庫引擎的資料庫執行個體和連線至執行 Postgre 資SQL料庫引擎的資料SQL庫執行個體中找到更多資訊。

對於您建立的 Proxy 端點,您也可以將端點與 Proxy 本身使用的不同虛擬私有雲 (VPC) 建立關聯。如此一來,您就可以從不同的 Proxy 連線到 ProxyVPC,例如組織內不同應VPC用程式所使用的 Proxy。

如需與代理端點關聯的限制相關資訊,請參閱代理端點的限制

在 RDS Proxy 記錄檔中,每個項目的前置字首都會加上關聯 Proxy 端點的名稱。此名稱可以是您針對使用者定義端點所指定的名稱。或者,它可以是執行讀取/寫入要求的 Proxy 預設端點的特殊名稱default

每個 Proxy 端點都有自己的一組 CloudWatch 指標。您可以監控代理所有端點的指標。您還可以監控特定端點的指標,或監控代理所有讀取/寫入或唯讀端點的指標。如需詳細資訊,請參閱 使用 Amazon 監控 RDS 代理指標 CloudWatch

代理端點會使用與相關聯代理相同的身分驗證機制。RDSProxy 會自動為使用者定義的端點設定權限和授權,並與關聯 Proxy 的內容一致。

代理端點的限制

RDS代理主機端點有下列限制:

  • 每個代理都有一個預設端點,您可以修改,但無法建立或刪除。

  • 代理的使用者定義端點數目上限為 20。因此,代理最多可以有 21 個端點:預設端點,以及您建立的 20 個端點。

  • 當您將其他端點與 Proxy 建立關聯時,RDSProxy 會自動判斷叢集中要用於每個端點的資料庫執行個體。

多可用區域資料庫叢集的 Proxy 端點

依預設,當您將 RDS Proxy 與異地同步備份資料庫叢集搭配使用時所連接的端點具有讀取/寫入功能。因此,此端點會將所有請求傳送至叢集的寫入器執行個體。所有這些連線都會計入寫入器執行個體的 max_connections 值。如果您的 Proxy 與多可用區域資料庫叢集相關聯,您可以為該 Proxy 建立額外的讀取/寫入或唯讀端點。

您可以將唯讀端點與您的代理搭配使用,進行唯讀查詢。執行此操作的方式與您將讀取器端點用於多可用區域資料庫叢集的方式相同。這樣做有助於您利用多可用區域資料庫叢集的讀取可擴展性,而此叢集具有一個或多個讀取器資料庫執行個體。您可以使用唯讀端點,並視需將更多讀取器資料庫執行個體新增至多可用區域資料庫叢集,來執行更多同時查詢並建立更多同時連線。這些讀取器端點有助於改善查詢密集型應用程式的讀取可擴展性。如果叢集中的讀取器資料庫執行個體變得無法使用,讀取器端點也有助於改善連線的可用性。

多可用區域資料庫叢集的讀取器端點

透過 RDS Proxy,您可以建立和使用讀取器端點。不過,這些端點僅適用於與多可用區域資料庫叢集相關聯的 Proxy。如果您使用RDSCLI或API,您可能會看到值為的TargetRole屬性READ_ONLY。您可以將 Proxy 的目標從資料庫執行個體變更為異地同步備份RDS資料庫叢集,以利用此類 Proxy。

將 RDS Proxy 與異地同步備份資料庫叢集搭配使用時,您可以建立並連線到稱為讀取器端點的唯讀端點。

讀取器端點如何協助應用程式變得可用

在某些情況下,叢集中的讀取器執行個體可能無法使用。如果發生此情況,使用資料庫 Proxy 讀取器端點的連線可以比使用多可用區域資料庫叢集讀取器端點的連線更快復原。RDSProxy 只會將連線路由至叢集中可用的讀取器執行個體。執行個體無法使用時,不會因為DNS快取而造成延遲。

如果連線是多工處RDS理,Proxy 會將後續查詢導向至不同的讀取器執行個體,而不會對應用程式造成任何干擾。如果讀取器執行個體處於無法使用狀態,則會關閉該執行個體端點的所有用戶端連線。

如果連線鎖定,則連線的下一個查詢會傳回錯誤。不過,您的應用程式可以立即重新連線至相同的 Proxy 端點。RDSProxy 會將連線路由至處於available狀態的其他讀取器資料庫執行個體。手動重新連線時,RDSProxy 不會檢查舊讀取器執行個體與新讀取器執行個體之間的複寫延遲。

如果異地同步備份資料庫叢集沒有任何可用的讀取器執行個體,RDSProxy 會在讀取器端點可用時嘗試連線到讀取器端點。如果連線借用逾時期間內沒有讀取器執行個體變得可用,則連線嘗試會失敗。如果讀取器執行個體變得可用,則連線嘗試會成功。

讀取器端點如何協助實現查詢可擴展性

Proxy 的讀取器端點透過以下方式協助實現多可用區域資料庫叢集查詢可擴展性:

  • 在可行的情況下,RDSProxy 會針對使用特定讀取器端點連線的所有查詢問題使用相同的讀取器資料庫執行個體 如此一來,相同資料表上的一組相關查詢可以利用特定資料庫執行個體上的快取、計劃最佳化等。

  • 如果讀取器資料庫執行個體變得無法使用,則對應用程式的影響取決於工作階段是多路復用還是鎖定。如果工作階段是多工處理的,RDSProxy 會將任何後續查詢路由到不同的讀取器資料庫執行個體,而無需執行任何動作。如果工作階段已鎖定,您的應用程式會收到錯誤,並且必須重新連線。您可以立即重新連線至讀取器端點,RDSProxy 會將連線路由至可用的讀取器資料庫執行個體。如需代理工作階段的多工處理和鎖定的詳細資訊,請參閱RDS代理主機概念概觀

跨越存取 資料庫 VPCs

根據預設,A 技術堆疊的元件都位於同一個 Amazon 中VPC。例如,假設在 Amazon 執行個體上EC2執行的應用程式連線到 Amazon 資RDS料庫執行個體。在這種情況下,應用程序服務器和數據庫必須在相同的內部VPC。

使用 RDS Proxy,您可以VPC從另VPC一個資源 (例如執行個體) 中一個設定對 Amazon 資料庫EC2執行個體的存取。例如,您的組織可能有多個存取相同資料庫資源的應用程式。每個應用程序可能是在它自己的VPC。

若要啟用交叉VPC存取,請為 Proxy 建立新端點。代理伺服器本身與 執行個體位於相同VPC的位置。不過,交叉VPC端點與其他VPC資源 (例如執行個體) 一起駐留在另一EC2個端點中。跨VPC端點與和其他資源相同的子網路和安全群組VPC相EC2關聯。這些關聯使您可以從應用程序連接到端點,否則由於VPC限制而無法訪問數據庫。

下列步驟說明如何透過 RDS Proxy 建立和存取跨VPC端點:

  1. 建立兩個VPCs,或選擇兩個VPCs已用於 工RDS作的項目。每個人都VPC應該有自己相關聯的網路資源,例如網際網路閘道、路由表、子網路和安全性群組。如果您只有一個VPC,則可以查Amazon RDS 入門閱設置另一個RDS成功使VPC用的步驟。您也可以檢查 Amazon EC2 主控台VPC中的現有資源,以查看要連接在一起的資源種類。

  2. 建立與您要連線的 Amazon RDS 資料庫執行個體相關聯的資料庫代理。請遵循 建立 RDS Proxy 中的程序。

  3. 在RDS主控台中 Proxy 的「詳細資料」頁面上,選擇「Proxy 端點」區段下的「建立端點」。請遵循 建立代理端點 中的程序。

  4. 選擇要讓跨VPC端點讀取/寫入或唯讀。

  5. 請不要接受與 執行個體相同VPC的預設值,而是選擇其他執行個體VPC。這VPC必須與代理所在的 AWS 區域VPC位於相同的區域中。

  6. 現在不接受與 執行個體VPC相同的子網路和安全群組的預設值,而是進行新的選擇。根據您選擇的子網路和安全性群組來建立這些項VPC目。

  7. 您不需要變更 Secrets Manager 機密的任何設定。相同的認證適用於 Proxy 的所有端點,無論VPC每個端點位於哪個端點。

  8. 等待新端點為可用狀態。

  9. 記下完整的端點名稱。這是以 Region_name.rds.amazonaws.com 結尾的值,作為資料庫應用程式連線字串的一部分提供。

  10. 從與端點相同VPC的資源存取新端點。測試此過程的一個簡單方法是在其中創建一個新EC2實例VPC。然後,登入執行EC2個體並執行mysqlpsql命令,以使用連接字串中的端點值進行連線。