2015-04-19 20 views
2

亞馬遜的EC2 Container Service允許您運行任意數量的容器,它會選擇一個EC2實例來自動運行容器。哪些是很棒的功能。不過,我們真的很關注的自動擴展能力AWS ECS是否支持每個容器的動態可伸縮性?

場景:

  1. 我通過推出AWS控制檯ECS的容器。
  2. HTTP請求開始出現。
  3. HTTP負載隨着時間顯着增加。
  4. 容器的CPU(或RAM)使用率正在接近100%。

問題1:ECS能否自動運行一個容器

問題2:當CPU(或RAM)負載變低時,ECS會自動關閉其中一個容器嗎?

回答

2

不,您沒有使用基本ECS進行全自動縮放。你可以做的是在負載變高時觸發警報,並觸發更新以增加羣集大小。

更新2017年11月29日

AWS Fargate是亞馬遜的ECS和EKS *,讓您 運行的容器,而無需管理服務器或羣集的技術。通過使用AWS Fargate,您不再需要調配,配置和縮放虛擬機羣集以運行容器。

這允許縮放容器,而不用擔心使用ECS服務級別縮放配置的基礎架構下面。

+0

謝謝隊友。我希望ELB + ECS集成在每個容器的基礎上工作。說ELB + ECS集成不知道在使用率高時啓動哪個TaskDefifition是否正確? –

0

所以也沒有說的那麼明確和肯定納撒尼爾可能是正確的,但今年似乎this blog from April 9th至少意味着,你可以做你所要求的

長期運行的應用程序之前,亞馬遜的ECS包括 有兩種方式可以調度集羣上的Docker容器。您可以爲 進程運行一次任務,例如執行工作然後停止的批處理作業。您 也可以調用Amazon ECS API來檢索有關羣集的狀態 信息,然後使用它爲第三方 或自定義編寫的調度程序供電。

隨着今天的推出,您還可以使用新的Amazon ECS服務 調度程序來管理長期運行的應用程序和服務。 服務計劃程序可幫助您保持應用程序可用性,而 允許您向上或向下縮放容器以滿足您的應用程序的容量要求。以下是它的作用:

負載平衡 - 服務計劃程序允許您使用Elastic Load Balancing在您的容器之間分發 流量。亞馬遜 ECS將自動註冊和註銷您的容器從 相關負載平衡器。健康管理 - 服務 調度程序也將自動恢復容器,變成 不健康(失敗ELB健康檢查)或停止運行,以確保 您有所需數量的健康容器可用於運行 您的應用程序。放大和縮小 - 您可以通過更改要運行的服務的容器數量來縮放 應用程序。更新管理 - 您可以通過更改其定義或使用新圖像來更新您的 應用程序。計劃程序將使用新的 定義自動啓動新容器,並停止運行以前版本的容器。如果使用ELB,它將會等待ELB連接消失。您還可以使用這些新設施來實施基本的服務發現模式。您可以列出在集羣中運行的服務,然後使用ELB作爲服務端點。

+0

它說負載平衡,但沒有提及自動縮放。手動縮放並不是我們正在尋找的。 –

1

理想情況下,您應該在ec2和ecscontainer級別進行縮放。

如果您使用的是ASG,則可以在ASG上配置基於cloudwatch警報的ec2縮放。

對於容器縮放,您將不得不編寫一個lambda函數或具有某種可在CloudWatch警報上觸發的應用程序,以便進行縮放。


2016年5月18日,ECS發佈了自動縮放功能。您不需要Lambda在服務級別構建擴展功能。

請參閱釋放和功能文檔下面

https://aws.amazon.com/about-aws/whats-new/2016/05/amazon-ec2-container-service-supports-automatic-service-scaling/

http://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html

0

由於2017年12月的亞馬遜宣佈新的服務叫Fargate。引用鏈接:

AWS Fargate可以輕鬆擴展您的應用程序。您不再需要擔心爲您的容器應用程序提供足夠的計算資源。定義應用程序需求(例如,CPU,內存等)後,AWS Fargate以高可用方式管理運行容器所需的所有擴展和基礎架構。您不再需要決定何時擴展您的羣集或將其打包以實現最佳利用率

我假設加粗文本意味着Fargate會爲我縮放上下資源。不是100%確定。