設定區域自動轉移時的最佳實務 - Amazon Application Recovery Controller (ARC)

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

設定區域自動轉移時的最佳實務

當您在 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 的自動轉移,這是 加速器的端點 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 分鐘測試期間。

  • 失敗:結果警示在練習執行期間進入 ALARM 狀態。

  • INTERRUPTED:由於不是結果警示進入 ALARM 狀態的原因,練習執行結束。實務執行可能會因為各種原因而中斷,包括下列項目:

    • 練習執行已結束,因為 在 中 AWS 啟動自動轉移, AWS 區域 或在 區域中有警示條件。

    • 練習執行已結束,因為已刪除資源的練習執行組態。

    • 練習執行已結束,因為針對練習執行區域轉移所轉移流量所在可用區域中的資源,已啟動客戶起始的區域轉移。

    • 練習執行已結束,因為無法再存取為練習執行組態指定的 CloudWatch 警示。

    • 練習執行已結束,因為為練習執行指定的封鎖警示進入 ALARM 狀態。

    • 練習執行因不明原因結束。

  • PENDING:練習執行為作用中 (進行中)。尚未傳回任何結果。