Amazon最近宣布將為自家的ECS服務提供自動縮放能力。借此Amazon ECS服務將能自動擴展或收縮。當閾值度量指標超過或低于預期值時,將由Amazon CloudWatch警報觸發縮放事件。
Amazon ECS又名EC2容器服務,是一種針對Amazon EC2集群上運行的Docker容器提供的管理服務。Amazon已可支持EC2集群的自動縮放,但原本并不支持對EC2集群中運行的容器服務進行自動縮放。
自動縮放事件由Amazon Cloud Watch度量指標驅動。Amazon Cloud Watch度量指標包括CPU使用率、數據傳輸率,或磁盤使用量。開發者還可以通過put-metric-data這一AWS命令或PutMetricData Query API將自己的度量指標發布至CloudWatch。
例如用戶可以對已部署并面臨CPU壓力的Web服務啟用自動縮放。在該場景中,可以對容器進行擴展,隨后一旦CPU壓力恢復正常水平,開發者還可以配置縮放事件以減少容器數量,進而降低計算成本。
下圖演示了在AWS管理控制臺為容器和集群層面配置擴展和收縮的方法。在擴展和收縮時,縮放事件是通過CPU使用率級別觸發的。
圖片來源:https://aws.amazon.com/blogs/compute/automatic-scaling-with-amazon-ecs/
通過使用Multi-AZ (Availability Zone) EC2集群和Elastic Load Balancers,客戶可以跨越多個Availability Zones對EC2集群和EC2容器服務進行縮放,這樣可以實現進一步容錯。Amazon Web Services企業解決方案架構師Mayank Thakkar介紹了設置自動縮放的過程:“可以使用ECS控制臺、CLI,以及SDK創建可自動縮放的服務。用戶只需要選擇任務數量的所需值、最小值和最大值,并創建一個或多個縮放策略,其余工作就可以由Service Auto Scaling完成。服務調度器也可感知Availability Zone,因此無需擔心ECS任務跨越多個區域的情況。”
Thakkar同時還提醒用戶,EC2集群的縮放需要比容器縮放更長的時間,同時建議采取下列措施以便將延遲降到最低:“在設置集群縮放策略時,可以通過一定的方式確保額外預留一定的集群容量,這樣ECS服務就可以實現更快速的擴展,但取決于具體需求,與此同時某些EC2實例可能面臨使用率不足的情況。”
Amazon并非唯一能為容器服務提供自動縮放能力的公有云供應商。Microsoft Azure也通過Azure Virtual Machine Scale Sets (VMSS)的形式提供了類似的功能。Microsoft會通過Azure Insights Autoscale在無需預先供應虛擬機的情況下提供自動縮放能力。Azure VMSS不僅可用于容器,而且可以用于“大計算”和大數據工作負載。Azure VMSS通??墒褂肁RM模板部署,亦可使用REST API、Powershell 或 Azure CLI創建。
查看英文原文:Amazon Brings Auto Scaling to EC2 Container Service