概觀
Auto Scaling 讓您根據自己定義的條件來自動擴展 Amazon EC2 容量。使用 Auto Scaling,您可以確保所使用的 Amazon EC2 執行個體數量,在需求高峰期實現無縫增長以保持效能,也可以在需求低峰期自動縮減以將成本降到最低。Auto Scaling 特別適合每小時、每天或每週用量都不同的應用程式。
但是 Auto Scaling 不只是一種新增和減少伺服器的方式,也是一種處理失敗的機制,類似於負載平衡處理無反應伺服器的方式。本實驗室將示範設定 Auto Scaling,以自動啟動、監控和更新與 Elastic Compute Cloud (EC2) 執行個體相關的負載平衡器。
關於 Auto Scaling 有兩件重要事項需要瞭解。首先,Auto Scaling 是設定「雲端溫度」的一種方式。您可以使用政策「設定恆溫器」,讓 Auto Scaling 在背景中控制熱能,依據需求新增和減少 Amazon EC2 資源以維持「溫度」(容量)。
Auto Scaling 政策包括:
啟動組態:負責定義因應需求增加而建立的伺服器。
Auto Scaling 群組:定義何時使用啟動組態來建立新的伺服器執行個體,以及應在哪些可用區域和負載平衡器背景下建立。
第二,Auto Scaling 會假設一組同質伺服器。也就是說,Auto Scaling 不知道伺服器 A 是 64 位元超大型執行個體,而且能力比 32 位元小型執行個體更強。事實上,這是雲端運算的核心原則:使用可替代資源叢集水平擴展;個別資源則次於資源叢集本身。
涵蓋的主題
本實驗室結束後,您將能夠:
- 使用命令列工具建立新的啟動組態
- 使用命令列工具建立新的 Auto Scaling 群組
- 設定執行個體資源過高或過低時觸發的 Auto Scaling 通知
- 建立原則以擴展或縮減目前執行中的執行個體數量,以回應資源使用率的變更情形
實驗室先決條件
若要順利完成這個實驗室,您應該熟悉基本的 Linux 伺服器管理,並能順利使用 Linux 命令列工具。您也應該精通建立新 Amazon EC2 伺服器執行個體和設定 Elastic Load Balancing 的基礎知識。
其他 AWS 服務
在您存取此實驗室期間,IAM 政策會停用實驗室不需要的其他 AWS 服務。此外,這個實驗室所用服務的功能會受限於實驗室所需,且在某些情況下,更會因實驗室蓄意的設計而進一步受限。存取其他服務或執行此實驗室指南以外的動作時,將會發生錯誤。
Auto Scaling 的關鍵元件
手動啟動伺服器時,您會提供參數,例如 Amazon Machine Image (AMI)、執行個體類型,以及要啟動的安全群組。Auto Scaling 將此稱為啟動組態。這只是一組參數,說明要啟動什麼樣的執行個體。
Auto Scaling 群組會在啟動執行個體後,告訴系統如何處理執行個體。您可以在這裡指定執行個體應該在哪些可用區域中啟動、接收流量的負載平衡器來源,而其中最重要的,就是任何特定時間執行的執行個體最小和最大數目。
您需要告訴系統何時新增或減少執行個體的規則。以上就是所謂的擴展政策,其中包含「擴展 10% 的叢集」和「縮減 1 個執行個體」等規則。
時間很重要
使用 Auto Scaling 需要負擔相關成本。有兩項重要因素直接影響 AWS 成本,以及應用程式擴展的方式:成本和時間。
Amazon EC2 Linux 執行個體按秒計費
這表示在活動眾多時,您可以擴展伺服器數量,並在容量需求減少時縮減數量,以便降低成本。
擴展需要時間
請思考下列圖表。在大多數情況下,從需要發生擴展事件到擴展事件真正發生,需要經過一段相當長的時間。
- 在此範例中,規則說明您必須處於特定條件至少兩分鐘。
- CloudWatch 是基礎資料收集系統,負責監控 CPU 使用率等統計資料。這是一種輪詢協定,通常需要 60 秒才能彙總新資料。
- Auto Scaling 也是輪詢系統,也需要 60 秒。
- 然後您的伺服器需要啟動時間。大型的複雜伺服器可能好幾分鐘的時間才能啟動。
- 最後,負載平衡器需要輪詢服務器幾個週期,才能放心確認伺服器健全無虞並接受請求。