[英]How to use aws autoscaling to scale based on a single instance of a autoscaling group?
Auto Scaling提供了一種添加和刪除(向外擴展和擴展)Amazon EC2實例的方法。 它通過啟動新實例和終止實例來工作 。
Auto Scaling組可以通過執行Scaling Policy來縮放 ,該策略告訴Auto Scaling是添加還是刪除實例,以及多少 - 例如+1,-1,+ 50%。
擴展策略可以由Amazon CloudWatch警報 , 計划或通過API / CLI調用手動觸發。
從Amazon CloudWatch觸發擴展策略時,度量標准將基於Auto Scaling組的聚合 - 例如, 平均CPU利用率或最大網絡輸出 。 度量標准是從整個Auto Scaling組計算的 ,而不是單個實例。 這是有道理的 - 想象一下Auto Scaling組有兩個實例,其中一個是100%CPU,另一個是0%CPU。 平均而言,它們的CPU為50%,因此無需擴展。 將擴展操作基於單個實例的度量標准是沒有意義的。
那么,為了回答您的問題,您如何根據在自動縮放組的多個實例中為單個實例收集的指標來決定自動縮放組的擴展活動? 您可以創建一個Amazon CloudWatch警報 ,該警報觸發單個實例的指標。 警報可以觸發Amazon SNS主題 ,您可以編寫訂閱該主題的AWS Lambda函數 。 然后,您的Lambda函數可以觸發更改Auto Scaling組的Desired Capacity的Scaling Policy。
但是,我建議反對這個想法。 例如,Auto Scaling可以決定擴展並可能刪除您專門監視的實例。 您的Auto Scaling組將不再擴展。 此外,一個實例不太可能代表整個Auto Scaling組的工作級別。 最好根據考慮Auto Scaling組中所有實例的指標進行擴展,或者衡量正在完成或正在等待工作的“工作”量,例如包含工作的Amazon SQS隊列的大小。被處理。
John的回答是正確的,為您的問題提供了建議和可能的解決方案。
由於聲譽限制,我無法評論John回答添加細節。
有沒有辦法根據為自動擴展組的多個實例中的單個實例收集的指標來決定自動擴展組的擴展活動?
您將在多個實例中擴展/縮小單個實例的方案可能表示您需要將在該實例中運行的服務分離到單獨的群集,並且您可以為此創建不同的擴展策略。自動縮放新群集組。
但是,您希望擴展/特定實例的原因是為該實例上運行的特定服務提供更多資源嗎? 如果是,您可以自動升級/關閉服務 ,然后讓服務所屬群集的自動擴展組的擴展策略決定是否需要擴展/擴展群集。 否則,約翰是對的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.