Amazon EC2 Auto Scaling 群組 - Amazon Application Recovery Controller (ARC)

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

Amazon EC2 Auto Scaling 群組

Amazon EC2 Auto Scaling 群組包含一組 Amazon EC2執行個體,這些執行個體會被視為邏輯分組,用於自動擴展和管理。Auto Scaling 群組也可讓您使用 Amazon EC2 Auto Scaling 功能,例如運作狀態檢查替換和擴展政策。維護 Auto Scaling 群組中的執行個體數量和自動擴展都是 Amazon EC2 Auto Scaling 服務的核心功能。

針對 Auto Scaling 群組使用區域轉移

若要啟用區域轉移,請使用下列其中一種方法。

Console
在新群組上啟用區域轉移 (主控台)
  1. 遵循使用啟動範本建立 Auto Scaling 群組中的指示,並完成程序中的每個步驟,直到步驟 10。

  2. 與其他服務整合頁面上,針對ARC區域轉移,選取核取方塊以啟用區域轉移。

  3. 針對運作狀態檢查行為,選擇忽略運作狀態不佳或取代運作狀態不佳。如果設定為 replace-unhealthy,運作狀態不佳的執行個體將在可用區域中取代為作用中區域轉移。如果設定為 ignore-unhealthy,則運作狀態不佳的執行個體不會在可用區域中以作用中區域轉移取代。

  4. 繼續執行使用啟動範本建立 Auto Scaling 群組中的步驟。

AWS CLI
在新群組上啟用區域轉移 (AWS CLI)

--availability-zone-impairment-policy 參數新增至 create-auto-scaling-group 命令。

--availability-zone-impairment-policy 參數有兩個選項:

  • ZonalShiftEnabled – 如果設定為 true,Auto Scaling 會將 Auto Scaling ARC 群組註冊為區域轉移,您可以在ARC主控台上啟動、更新或取消區域轉移。如果設定為 false,Auto Scaling 會從區域轉移取消註冊 Auto Scaling ARC 群組。您必須已啟用區域轉移,才能將 設定為 false

  • ImpairedZoneHealthCheckBehavior – 如果設定為 replace-unhealthy,運作狀態不佳的執行個體將在可用區域中取代為作用中區域轉移。如果設為 ignore-unhealthy,則運作狀態不佳的執行個體不會在可用區域中以作用中區域轉移取代。

下列範例會在名為 的新 Auto Scaling 群組上啟用區域轉移my-asg

aws autoscaling create-auto-scaling-group \ --launch-template LaunchTemplateName=my-launch-template,Version='1' \ --auto-scaling-group-name my-asg \ --min-size 1 \ --max-size 10 \ --desired-capacity 5 \ --availability-zones us-east-1a us-east-1b us-east-1c \ --availability-zone-impairment-policy '{ "ZonalShiftEnabled": true, "ImpairedZoneHealthCheckBehavior": IgnoreUnhealthy }'
Console
在現有群組上啟用區域轉移 (主控台)
  1. 在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/,然後從導覽窗格中選擇 Auto Scaling 群組

  2. 在螢幕上方的導覽列中,選擇您在建立 Auto Scaling 群組時所在的 AWS 區域 。

  3. 選取 Auto Scaling 群組旁的核取方塊。

    頁面底部會開啟一個分割窗格。

  4. 整合索引標籤的區域ARC轉移下,選擇編輯

  5. 選取核取方塊以啟用區域轉移。

  6. 針對運作狀態檢查行為,選擇忽略運作狀態不佳或取代運作狀態不佳。如果設定為 replace-unhealthy,運作狀態不佳的執行個體將在可用區域中取代為作用中區域轉移。如果設定為 ignore-unhealthy,則運作狀態不佳的執行個體不會在可用區域中以作用中區域轉移取代。

  7. 選擇更新

AWS CLI
在現有群組上啟用區域轉移 (AWS CLI)

--availability-zone-impairment-policy 參數新增至 update-auto-scaling-group 命令。

--availability-zone-impairment-policy 參數有兩個選項:

  • ZonalShiftEnabled – 如果設定為 true,Auto Scaling 會將 Auto Scaling ARC 群組註冊為區域轉移,您可以在ARC主控台上啟動、更新或取消區域轉移。如果設定為 false,Auto Scaling 會從區域轉移取消註冊 Auto Scaling ARC 群組。您必須已啟用區域轉移,才能將 設定為 false

  • ImpairedZoneHealthCheckBehavior – 如果設定為 replace-unhealthy,運作狀態不佳的執行個體將在可用區域中取代為作用中區域轉移。如果設為 ignore-unhealthy,則運作狀態不佳的執行個體不會在可用區域中以作用中區域轉移取代。

下列範例會在指定的 Auto Scaling 群組上啟用區域轉移。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --availability-zone-impairment-policy '{ "ZonalShiftEnabled": true, "ImpairedZoneHealthCheckBehavior": IgnoreUnhealthy }'

若要觸發區域轉移,請參閱 啟動、更新或取消區域轉移

Auto Scaling 群組的區域轉移運作方式

假設您有一個具有下列可用區域的 Auto Scaling 群組:

  • us-east-1a

  • us-east-1b

  • us-east-1c

您注意到 中的失敗us-east-1a並觸發區域轉移。在 中觸發區域轉移時,會發生下列行為us-east-1a

  • 向外擴展 – Auto Scaling 將在運作狀態良好的可用區域 (us-east-1b 和 ) 中啟動所有新的容量請求us-east-1c

  • 動態擴展 – Auto Scaling 會阻止擴展政策減少所需的容量。Auto Scaling 不會阻止擴展政策增加所需的容量。

  • 執行個體重新整理 – Auto Scaling 將延長作用中區域轉移期間延遲的任何執行個體重新整理程序逾時。

    可用區域運作狀態檢查行為選擇受損 運作狀態檢查行為
    取代運作狀態不佳 在所有可用區域 (us-east-1aus-east-1b和 ) 中,看起來運作狀態不佳的執行個體都會遭到取代us-east-1c
    忽略運作狀態不佳 看起來運作狀態不佳的執行個體將在 us-east-1b和 中取代us-east-1c。在可用區域中,執行個體不會取代為作用中區域轉移 (us-east-1a)。

使用區域轉移的最佳實務

若要在使用區域轉移時維持應用程式的高可用性,我們建議採用下列最佳實務。

  • 監控 EventBridge 通知,以判斷何時持續發生可用區域受損事件。如需詳細資訊,請參閱使用事件橋接自動化 Amazon EC2 Auto Scaling

  • 使用具有適當閾值的擴展政策,以確保您有足夠的容量來容忍失去可用區域。

  • 設定最低運作狀態百分比為 100 的執行個體維護政策。使用此設定,Auto Scaling 會等待新的執行個體準備就緒,再終止運作狀態不佳的執行個體。

對於預先擴展的客戶,我們也建議以下項目:

  • 選取忽略運作狀態不良做為運作狀態不佳可用區域的運作狀態檢查行為,因為您在運作狀態不佳事件期間不需要取代運作狀態不佳的執行個體。

  • 在 Auto Scaling 群組ARC中使用區域自動轉移。中的區域自動轉移功能 Amazon 應用程式復原控制器 (ARC) 允許在 AWS 偵測到可用區域中的損害時,將資源的流量 AWS 移離可用區域。如需詳細資訊,請參閱《Amazon Application Recovery Controller (ARC) 開發人員指南》中的區域自動轉移ARC

對於具有跨區域停用負載平衡器的客戶,我們也建議:

  • 僅針對您的可用區域分佈使用平衡

  • 如果您在 Auto Scaling 群組和負載平衡器上使用區域轉移,請務必先取消 Auto Scaling 群組上的區域轉移。然後,請等到容量在所有可用區域之間平衡。 再取消負載平衡器上的區域轉移。

  • 由於您啟用區域轉移並使用跨區域停用的負載平衡器時,容量可能會不平衡,因此 Auto Scaling 具有額外的驗證。如果您遵循最佳實務,您可以選取 中的核取方塊 AWS Management Console ,或使用 CreateAutoScalingGroup、 或 中的skip-zonal-shift-validation旗標UpdateAutoScalingGroup來確認此可能性AttachTrafficSources