2017-06-19 88 views
9

我在AWS EC2容器服務中有一個羣集。當我設置它時,我使用了t2.micro實例,因爲這些實例足夠用於開發。現在我想使用更強大的實例,比如m4.large。如何更改AWS ECS羣集中的實例類型?

我想知道是否有可能只改變實例類型,所以我不需要重新創建整個集羣。我無法找到如何做到這一點。

回答

13

是的,這是可能的。

羣集中的實例類型由啓動配置中的「實例類型」設置確定。

  1. 將羣集啓動配置的副本,並更新「實例類型」:在不必重新創建羣集更新實例類型。
  2. 調整集羣Auto Scaling Group指向新的啓動配置注意:這將終止您的現有羣集實例
  3. 等待您的新實例在羣集中註冊並啓動服務。

您還可以通過創建鏈接到不同的啓動配置多個自動縮放組添加多個實例類型爲集羣。但請注意,您無法在控制檯中輕鬆複製Auto Scaling組。

+1

終止實例1你是對的。我能夠使用您的方法更改實例類型。我將接受的答案更改爲你的答案,請相應編輯。非常感謝! –

+0

這是否會更改啓動配置名稱? – 2017-08-23 09:39:11

+1

@Rothschild是的,無法複製Launch Configuration _without_更改名稱(它是不可變的)。這使您可以更改配置,而不會影響與啓動配置關聯的Auto Scaling組。 –

9

是的,您可以在CloudFormation中實現此目的。

  • 單擊對應於您的ECS羣集的堆棧。
  • 點擊Update Stack
  • 使用無線電current templateNext
  • 變化EcsInstanceType
  • NextNextUpdate
  • 高檔羣集在2*n情況下,正在創建的新類型的n新實例
  • 等待
  • 縮減您的羣集到n
  • 或者你可以只排和1
+1

應該接受答案! – Mika

+2

對於我來說,一個一個地抽取實例是一種更好的方法,因爲縮小比例2n-> n使用正在運行的容器有效地導致我的服務停機。很奇怪,AWS並沒有逐步縮小比例,即用正在運行的容器終止一個實例,在可用實例等產生新容器,終止另一個實例等等。 – tporeba

+1

接受的答案要求爲您的羣集啓用Auto Scaling。此解決方案無需Auto Scaling即可運行。因此它可以被任何人使用。 –