先前在建EC2的VM時,是自己創建的VM;但自己創建的VM雖然也能掛上ECS的Container,但AWS的ECS中的Infrastructure偵測到;所以我嘗試創建Template並用AutoScalingGroup管理VM的存續,讓ECS能認出有一個固定的Capacity Provider:
接下來的步驟很簡單,主要分三個部分:
建立 Launch Template
在 EC2 的 Console 先建立一個 Launch Template,把你要的 AMI、Instance Type、Security Group 都設定好。如果要讓 ECS Agent 能自動註冊進 Cluster,記得在 User Data 裡加入:
#!/bin/bash
echo ECS_CLUSTER=你的ECS Cluster名稱 >> /etc/ecs/ecs.config
這樣新開的 VM 才會自動被 ECS Agent 掛上去。
建立 Auto Scaling Group (ASG)
接著用剛剛的 Template 建立一個 ASG,設定好最小、最大與期望的 instance 數量。ASG 會自動幫你維持 VM 的數量,也能確保 VM 掛掉後會自動補上。
在 ECS 建立 Capacity Provider 並綁定 ASG
回到 ECS Console,建立一個新的 Capacity Provider,選擇剛剛的 ASG 並設定 Managed Scaling。再把這個 Provider 綁定到你的 ECS Cluster。
這樣一來,ECS 就能辨識出這組 VM 的 Capacity 來源,也能動態調整 VM 數量來對應 Task 的需求。
這樣做的好處是: