AWS - Auto Scaling 介紹

聲明:

本博客歡迎轉發,但請保留原作者信息!內容系本人學習、研究和總結,如有雷同,實屬榮幸!

原文地址:http://blog.csdn.net/gtt116/


本文簡要介紹aws的auto scaling以及相關概念,讓讀者對auto scaling服務有一個基本的認識。


概要

Auto Scaling(簡稱AS)是爲了方便用戶增減虛擬機的服務,以達到最大化系統使用率和最小化成本的目的。

主要的使用情景:用戶需要創建一個集羣對外提供數據庫服務,並且希望在訪問量大時增加節點數量,在訪問量小是減小節點數量;在晚上減少節點數,白天增加節點數;並且保證健康的節點數量是5臺。

AS將會根據以上需求對集羣進行管理,在符合條件時,對集羣內的虛擬機作出相應的動作。例如當AS發現集羣中有一個節點狀態異常,爲了保證健康節點數量爲5,它將會自動創建一臺虛擬機,並且監視其狀態。  如此用戶可以完全不用費心在集羣的管理上,讓AS智能管理整個集羣。


名詞解釋

Auto scaling group

   可以理解爲一個集羣,這個集羣中包含了很多配置相似的虛擬機,AS將會維護這個group的狀況。


Health Check

   AS是通過虛擬機的健康狀況來做相應的動作的。AS將會定期檢查虛擬機的狀態,如果發現虛擬機的狀態不是running,那麼將會認爲虛擬機爲“不健康”的,它將會刪除這個虛擬機,然後新建一個虛擬機來代替“不健康“虛擬機。


Launch Configuration

  運行配置,定義虛擬機的參數,AS則用這些參數啓動虛擬機。例如指定鏡像id號,虛擬機的規格爲:m1.small,安全組規則爲sg-aaa等。


Policy

  響應策略,定義一些列動作,這些動作將會在AS收到CloudWatch的警告消息後觸發。例如CloudWatch發送某虛擬機的CPU使用率超過了80%,則創建一臺虛擬機。那麼當AS收到CloudWatch的消息後將會自動創建一臺虛擬機。


Availability Zones and Regions

  aws中將虛擬機的容災劃分爲兩個級別,Availability Zones和Regions,前者是地理上的隔離,後者是工程上的隔離。可以簡單的理解成前者是最高級別的容災,後者是低成本的容災。一個集羣只能在一個regions中,但是可以制定很多Availability Zones,AS將會將虛擬機儘量分佈在各個zone內,如果它發現某個zone不可用,爲了達到集羣的設定要求,它會選擇其他合適的zone來創建虛擬機,保證集羣正常運行。


Elastic Load Balancer(ELB)

  AS允許你使用負載均衡作爲集羣的服務入口。在創建集羣之前先建好負載均衡,然後在定義Auto scaling group時,指定所用的ELB,那麼AS會將所有集羣虛擬機加到這個(些)ELB後端。


一般使用方法

1. 創建Launch Configuration:

   在此過程中需要指定虛擬機的鏡像id號,規格。並且還可以指定掛載卷,安全組,user-data等所有啓動虛擬機時使用的配置參數。


2. 創建Auto scaling group:

   設定一個集羣,需要用到第1步設定的Launch Configuration,並且指定最少節點數量,最多節點數量,安全檢查的類型,是否需要負載均衡等。


通過以上兩個步驟就完成一個集羣的設定,然後就可以等着AS爲你建立理想的集羣了。


控制集羣大小

  有3中方式來控制集羣的大小:手動,定時,策略。

   手動:直接執行修改命令:如“修改集羣大小到10”,“增加1%","集羣大小+1“。

   定時(scheduled):某段時間內改變集羣的數量,如“0點到8點集羣數量爲5,8點到0點集羣數量10”

   策略(policy):需要與CloudWatch聯動,可以十分細膩的控制集羣的數量。例如CloudWatch監控到集羣的CPU佔用率持續大於80%,那麼增加節點。下面將會詳細介紹此方法。


與CloudWatch聯動

     首先簡單介紹CloudWatch,它是用來監控某個虛擬機的狀態的,例如CPU利用率,內存使用率,流入網絡,流出網絡。另外還可以設定Alarm,例如可以設定當某虛擬機的CPU利用率大於80%,並且持續了10分鐘,那麼引發一個Alarm,然後CloudWatch會將此Alarm發郵件給管理員,或者發送到AS中。

     與CloudWatch聯動,首先創建Auto scaling group,然後在Cloudwatch中創建對應此group的Alarm,並且在AS中設定對應的Policy。這樣當CloudWatch引發Alarm的時候,AS就會執行Policy中的命令。

     舉例說明:設定Auto scaling group: group-1,然後在CloudWatch設定10分鐘內group-1的CPU佔用率持續大80%,那麼引發一個Alarm,通知AS的policy,這個policy會增加一臺虛擬機。對應的,你還可以設定當group-1的CPU佔用率持續小於10%,那麼減少一臺虛擬機。



參考:

http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/US_BasicSetup.html

http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/Welcome.html

http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/US_SetUpASLBApp.html



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章