本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定區域自動轉移時的最佳實務
當您在 Amazon Application Recovery Controller () 中啟用區域自動轉移時,請注意下列最佳實務和考量事項ARC。
區域自動轉移包含兩種類型的流量轉移:自動轉移和練習執行區域轉移。
透過自動轉移, 可在事件期間代表您從可用區域轉移應用程式資源流量, AWS 協助縮短復原時間。
透過練習執行, 會代表您ARC開始區域轉移。區域轉移會將流量從資源的可用區域移出,然後每週一次返回。練習執行可協助您確保已擴展足夠容量,讓應用程式能夠承受失去一個可用區域的區域可用區域。
在自動轉移和練習執行時,需要記住幾個最佳實務和考量事項。在啟用區域自動轉移或設定資源的練習執行之前,請先檢閱下列主題。
主題
- 限制用戶端保持連線至端點的時間
-
例如,當 Amazon Application Recovery Controller (ARC) 使用區域轉移或區域自動轉移將流量移離障礙時,ARC使用 來移動應用程式流量的機制即為DNS更新。DNS 更新會導致所有新連線被導向至受損的位置。不過,具有預先存在開放連線的用戶端可能會繼續對受損位置提出請求,直到用戶端重新連線為止。為了確保快速復原,我們建議您限制用戶端保持連線至端點的時間。
如果您使用 Application Load Balancer,您可以使用
keepalive
選項來設定連線持續的時間。我們建議您降低keepalive
值,使其與應用程式的復原時間目標保持一致,例如 300 秒。當您選擇keepalive
時間時,請考慮此值在一般情況下重新連線頻率較高之間會相互抵銷,這可能會影響延遲,並更快速地將所有用戶端移離受損的 AZ 或區域。如需設定 Application Load Balancer
keepalive
選項的詳細資訊,請參閱 Application Load Balancer 使用者指南中的HTTP用戶端保持運作期間。 - 預先擴展您的資源容量並測試轉移流量
-
當 將流量從一個可用區域 AWS 轉移或自動轉移轉移移出時,請務必讓剩餘的可用區域為您的資源提供提高的請求率。此模式稱為靜態穩定性。如需詳細資訊,請參閱 Amazon Builder 程式庫中的使用可用區域的靜態穩定性白皮書
。 例如,如果您的應用程式需要 30 個執行個體來為其用戶端提供服務,您應該跨三個可用區域佈建 15 個執行個體,總共 45 個執行個體。透過這樣做,當 使用自動轉移或在實務執行期間從一個可用區域 AWS 轉移流量時, 仍然AWS 可以為應用程式的用戶端提供剩餘 30 個執行個體,橫跨兩個可用區域。
中的區域自動轉移功能ARC可協助您在具有預先調整規模的資源的應用程式與失去一個可用區域正常運作時,快速從可用區域中 AWS 的事件復原。在為資源啟用區域自動轉移之前,請在 中所有設定的可用區域中擴展資源容量 AWS 區域。然後,開始資源的區域轉移,以測試您的應用程式在流量移離可用區域時是否仍正常執行。
使用區域轉移測試之後,請啟用區域自動轉移,並設定應用程式資源的練習執行。使用區域自動轉移的定期實務執行可協助您持續確保容量仍適當擴展。透過跨可用區域的足夠容量,您的應用程式可以在自動轉移期間繼續為用戶端提供服務,而不會中斷。
如需為資源啟動區域轉移的詳細資訊,請參閱 中的區域轉移 ARC。
- 請注意資源類型和限制
區域自動轉移支援區域轉移支援的所有資源,將流量移出可用區域。一般而言,支援關閉跨區域負載平衡的 Network Load Balancer 和 Application Load Balancer。在一些特定資源案例中,區域自動轉移不會將流量從可用區域轉移。
例如,如果可用區域中的負載平衡器目標群組沒有任何執行個體,或者所有執行個體運作狀態不佳,則負載平衡器會處於故障開啟狀態。如果 在此情況下 AWS 啟動負載平衡器的自動轉移,則自動轉移不會變更負載平衡器使用的可用區域,因為負載平衡器已處於故障開啟狀態。這是預期的行為。 AWS 區域 如果所有可用區域都無法開啟 (運作狀態不佳),則 Autoshift 無法導致一個可用區域運作狀態不佳,也無法將流量轉移到 中的其他可用區域。
第二個案例是, AWS 開始 Application Load Balancer 的自動轉移,而 Application Load Balancer 是 加速器的端點 AWS Global Accelerator。與區域轉移一樣,作為 Global Accelerator 中加速器端點的 Application Load Balancer 不支援自動轉移。
若要查看支援資源的詳細資訊,包括所有需要注意的要求和例外狀況,請參閱 支援的資源。
- 指定練習執行的警示
-
您至少設定一個警示 (結果警示),以使用區域自動轉移執行實務。您也可以選擇性地設定第二個警示 (封鎖警示)。
當您考慮為資源練習執行所設定的 CloudWatch 警示時,請記住下列事項:
對於必要的結果警示,我們建議您設定 CloudWatch 警示,在資源或應用程式的指標指出將流量移離可用區域會對效能造成負面影響時,進入
ALARM
狀態。例如,您可以判斷資源請求率的閾值,然後將警示設定為在超過閾值時進入ALARM
狀態。您有責任設定適當的警示,導致 AWS 結束練習執行並傳回FAILED
結果。我們建議您遵循 AWS Well Architected Framework,建議您實作關鍵效能指標 (KPIs) 做為 CloudWatch警示。如果您這樣做,您可以使用這些警示來建立複合警示,以用作安全觸發,以防止實務執行在可能導致應用程式遺漏 時啟動KPI。當警示不再處於
ALARM
狀態時, 會在下一次為資源排程練習執行時ARC開始練習執行。對於練習執行封鎖警示,如果您選擇設定它,您可以選擇追蹤特定指標,以表示您不希望練習執行開始。
對於練習執行警示,您可以為每個警示指定 Amazon Resource Name (ARN),您必須先在 Amazon 中設定 CloudWatch。您指定的 CloudWatch 警示可以是複合警示,可讓您包含應用程式和資源的數個指標和檢查,這些指標和檢查可能會觸發警示進入
ALARM
狀態。如需詳細資訊,請參閱《Amazon CloudWatch 使用者指南》中的合併警示。請確定您為練習執行指定的 CloudWatch 警示與您設定練習執行的資源位於相同的區域。
- 評估練習執行的結果
ARC 會針對每個練習執行報告結果。在練習執行之後,評估結果,並判斷您是否需要採取動作。例如,您可能需要擴展容量或調整警示的組態。
以下是可能的實務執行結果:
SUCCEEDED:結果警示未在練習執行期間進入
ALARM
狀態,而練習執行已完成完整的 30 分鐘測試期間。FAILED:結果警示在練習執行期間進入
ALARM
狀態。INTERRUPTED:實務執行結束的原因不是結果警示進入
ALARM
狀態。實務執行可能會因為各種原因而中斷,包括下列項目:練習執行已結束,因為 在 中 AWS 啟動自動轉移, AWS 區域 或在 區域中有警示條件。
練習執行已結束,因為已刪除資源的練習執行組態。
練習執行已結束,因為已針對練習執行區域轉移所轉移流量所在可用區域中的資源,啟動客戶起始的區域轉移。
練習執行已結束,因為無法再存取為練習執行組態指定的 CloudWatch 警示。
練習執行已結束,因為為練習執行指定的封鎖警示進入
ALARM
狀態。練習執行因不明原因結束。
PENDING:實務執行為作用中 (進行中)。尚未傳回任何結果。