簡體   English   中英

如何替換 AWS Auto Scaling 組中的特定實例?

[英]How can I replace a specific instance in an AWS Auto Scaling Group?

我正在尋找可用於替換AWS 規模組中特定實例的過程,同時保持 AZ“平衡”並且在等待新實例供應時不會減少容量。

有時,我們可能有理由終止規模組中的特定 EC2 實例,並且一直在努力尋找一個有效的程序來執行此操作。 我知道我可以直接終止實例並將其替換,但這會在等待新實例供應時暫時降低規模組的整體容量。 在我們的例子中,這是幾十分鍾,因為我們必須在 ALB 發送請求之前設置和部署我們的軟件

如果我們將desired_capacity增加 1,我們可以提前准備一個新實例 - 但不能保證它會在與我們希望終止的實例相同的 AZ 中創建。 此外,如果我終止有問題的實例,並立即減少desired_capacity ,scalegroup 是否會終止另一個實例?

那么管理此過程的最佳方法是什么?

您可以暫時暫停和恢復特定的縮放過程 使用此功能,您可以通過多種方式獲得所需的結果,我在下面介紹了其中兩種方式:

A:使用 Auto Scaling Group 的再平衡功能

  1. 將 Auto Scaling Group 的 desired instance count 增加 1 並等待新實例可用
  2. 暫時中止Launch縮放過程(這可以防止在下一步中自動啟動新實例)
  3. 終止故障實例
  4. 將 Auto Scaling Group 的所需實例數減少 1(所需實例數和實際實例數現在應該再次同步)
  5. 恢復Launch縮放過程。 如果剩余實例不平衡,Auto Scaling Group 的AZRebalance進程將選擇它並逐漸在 AZ 之間重新平衡。

B:在所需的 AZ 中顯式啟動一個新實例:

  1. 在所需的 AZ 中啟動一個單獨的實例
  2. 暫時中止Terminate縮放過程](這可以防止在下一步中自動終止附加實例)
  3. 將 (1.) 中的實例附加到 Auto Scaling 組
  4. 終止原始實例(所需實例數和實際實例數現在應該再次同步)
  5. 恢復Terminate縮放過程

Auto Scaling 提供以下功能:

  • 特定實例附加到 Auto Scaling 組(在 Auto Scaling 之外創建)
  • 從 Auto Scaling 組中分離特定實例
  • 終止Auto Scaling 組中的特定實例
  • 將Auto Scaling 組中的實例臨時放入備用 state

當分離、終止或置於備用狀態時,Auto Scaling 組的Desired Capacity可以自動遞減,因此不會啟動替代實例,或者可以保持不變,以便啟動替代實例。

讓 Auto Scaling 啟動任何新實例通常是個好主意,這樣所有實例都是相同的。 因此,如果您擔心容量下降,那么您應該增加 Desired Capacity以啟動新實例,然后終止 Auto Scaling 組中不需要的實例並減少容量以使該組恢復到之前的 Desired Capacity。

您是正確的,不能保證啟動的實例與被刪除的實例位於同一 AZ 中。 Auto Scaling 旨在平衡可用區 它將在實例數最少的 AZ 中啟動一個實例。 假設有兩個具有相同數量實例的可用區,您希望從可用區 A 中刪除一個實例。增加所需容量可能會在可用區 B 中啟動一個實例。刪除不需要的實例后,這意味着可用區 B比 AZ A 多兩個實例。這是否是一個問題取決於 Auto Scaling 組中的實例總數。

建議使用多個 AZ 是為了處理 AZ 可能發生故障的情況。 此類故障將導致實例暫時丟失,同時 Auto Scaling 在剩余可用區中啟動新實例。 如果擔心這種下降,建議運行額外的實例來處理臨時容量下降。 因此,回到您的問題,您的 Auto Scaling 組應該有足夠的容量來處理一個正在刪除和替換的實例 如果容量的暫時下降會影響您的系統,那么啟動額外的實例是個好主意,前提是實例可能/將會偶爾失敗。 這也有助於 AZ 發生故障的罕見情況,因為擁有額外的容量意味着系統不會立即損失所需最小容量的 50%。

底線:擁有足夠的容量,以便臨時替換壞實例不會對系統產生重大影響。 與如果僅持續部署最小容量而在可用區中斷中損失 50% 的容量的影響相比,對不平衡可用區的擔憂將是次要的(可用區之間最多 2 個不同的實例)。

歸根結底,這實際上歸結為成本與風險。 使用2 個以上的 AZ 可以減少 AZ 中斷的影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM