技術專欄

如何變更 AWS ECS 叢集 EC2 的 Instances Type?16 個步驟告訴你!

AWS 雲端運算服務
2022/07/06

 

 

AWS ECS

( © Amazon Web Service )

撰文者/MetaAge邁達特 技術六處三部 雲端架構師  |  Herman Kou

在虛擬化技術盛行的現今,各種大小型式的應用程式都會使用到容器(Container)這一項技術。容器(Container)不僅加速了應用程式的開發速度和便利性,更降低了應用程式維護的困難度。而 AWSElastic Container Service (ECS) 則提供了一種全受管容器協同運作服務,可以讓您輕鬆地部署、管理和擴展容器化應用程式。在 ECS 的運算層可以選擇使用 AWS EC2(Elastic Compute Cloud) ,或是改用屬於 Serverless 的 AWS Fargate 進行運算。而這篇文章將為選擇了 EC2 而又想更換 EC2 Instance type 的使用者提供指南!

AWS ECS 專為了 Docker 型式容器提供了全託管容器協同運作服務,可以讓您輕鬆地部署、管理和擴展容易化應用程式。

 
  AWS ECS

  ( 圖片取自 AWS 官網 : https://aws.amazon.com/tw/ecs/ © Amazon Web Service)

AWS ECS 在運算 Cluster上可選擇 EC2 作為運算單元。

當你的容器化應用程式需要更好的運算能力或其他目的,因而需要變更你的 ECS Cluster 的 EC2 類型時,

這篇文章將告訴你:「 如何在 Console 上手動更換 ECS Instance type ?」

如何更換 AWS ECS Cluster EC2 instance type ?16 個步驟,一看就懂!

【 Step 0.  】打開範例。

▴ 圖 (0)

事前,我們需要一個開在 ECS 上的簡單網頁應用程式,作為我們的例子。

此網頁是以 Container 的方式由 ECS 管理下在 Cluster上執行的應用程式,

Cluster 的 Target Group 由 NLB 進行 DNS 代理及負載平衡。

可以看到網址是 ECS 下的 ELB 的 DNS 網址。

【 Step 1.  】首先前往 Console 的 ECS,查看正在運行服務的 Cluster。

▴ 圖 (1)

點開它,就能查看當前 Cluster 相關資訊。

【 Step 2. 】 點開 Task Definition,查看我們正在運行的服務。

 

▴ 圖 (2)

點選 Task Definitions, 可以找到我們的例子 Container。

上面簡單的網頁都定義在裡面了。

接下來,我們正式開始更換 Instance type!

 

 

 

【 Step 3.】 前往 EC2的 Console,為 ECS 建立的 Auto Scaling Group 建立一個新的 Launch configurations。

▴ 圖 (3)

在左方選單找到 Auto Scaling 下的 Launch Configurations 並點選它,

選取 ECS 自動產生的 Launch configurations,

右上方點取 Copy to launch template 的 Copy selected。

【 Step 4. 】 選取剛複製出來的 Launch template,點取 Modify template (Create new version) 更改 template 的內容。

▴ 圖 (4)

這將會產生一個新版本的 Launch template,

在使用時請確認選擇正確的 template 版本。

【 Step 5. 】 在 AMI 的設定中選擇要更換的 Instance 類型,完成後點取 Create template version。

▴ 圖 (5)

這邊將會從 t3.medium 換成 t3.large 類型的 Instance。

【 Step 6. 】 選取 ECS Cluster 產生的 Auto Scaling Group,再點 Edit。

▴ 圖 (6)

【 Step 7. 】在 Launch configuration 的右上點選 Switch to launch template,

選擇剛新立的 Launch template 及正確的版本。

( 確認 Instance Type 是要變更的類型 )

▴ 圖 (7)

【 Step 8. 】 回到 ECS Cluster 面版,點選 ECS Instances,

選取所有的 Instances,再從 Actions 中點選 Drain instances。

▴ 圖 (8)

【 Step 9. 】在 Auto Scaling Groups 的設定,

把 Desired capacity, Minimum capacity 及 Maximum capacity 先調成 0,

再等待 ECS 的 Instances Drain 完畢。

▴ 圖 (9)

不先調成的 0 的話,Auto Scaling Group 會一直開舊 Size 的 Instances 為 ECS 做補充。

【 Step 10. 】 等待舊 Instances drain 被 Auto Scaling Group 刪除後,

便可以把設定調回所需數量,然後等待新的 Instances 建立。

▴ 圖 (10)

【 Step 11. 】 從 EC2 Console 查看可以看到 medium size 的 Instances 被 Terminated,

large size 的 Instances 被建立。

▴ 圖 (11)

【 Step 12. 】 接下去前往 ECS 點選 Target Group。

▴ 圖 (12)

【 Step 13. 】 把剛新增的 Instances 加到 targets group 裡面,點選 Register targets。

▴ 圖 (13)

【 Step 14. 】 把剛剛建立好的新 Instances 加到 Group 裡面,再點選 Register pending targets。

▴ 圖 (14)

這樣 ECS 及 ELB 都會指向在正確的 Instances 上。

【 Step 15. 】等待 Heath status 變成 Heathy 狀態。

▴ 圖 (15)

【 Step 16. 】再次進入輸入 ELB 的 DNS,確認 ECS 服務正常。完成!

▴ 圖 (16)

透過以上 16 個步驟,便能夠以人工的方式調整 AWS ECS 的 Cluster EC2 Instance 類型。

讓您無論在需要更換性能更強的 Instance,或是特性不同的 Instance 時,都可以得心應手,保持使用 AWS ECS 的彈性!

MetaAge 邁達特:一站式滿足多構面需求

MetaAge邁達特代理 AWS 雲端服務,提供 7 x 24 全託管服務。MetaAge邁達特在伺服器、網路、資料庫管理有豐富經驗,具備技術深厚的架構師團隊 & 維運團隊,是企業雲服務的最佳顧問及服務團隊。無論是部署 AWS 服務、進一步代管維運(Cloud Managed Service)、基礎架構即代碼 (Infrastructure-as-code)、 API 整合、雲地整合等加值服務,MetaAge邁達特具備完整的專業能力,能一站式滿足客戶多構面需求。

MetaAge邁達特 AWS MSP 團隊,導入次世代監控系統,提供客戶完全託管和完整監控的 MSP 整合服務。

聯絡方式 —— 電話: 080-000-8669  |  Email: aws@metaage.com.tw

延伸閱讀

▸  雲端運算是什麼 ? 有什麼好處?如何挑選上雲的合作夥伴? | MetaAge邁達特

▸  全受管容器解決方案 – Amazon Elastic Container Service (Amazon ECS) | AWS

▸  亞馬遜+邁達特(MetaAge 邁達特(更名前:聚碩科技))強強配 高雄 AWS 雲端聯合創新中心今啟用 | 新聞報導

▸  邁達特(MetaAge 邁達特(更名前:聚碩科技))聯手亞馬遜網路服務 AWS,雲端運算將成為大南方數位轉型最強後盾 | MetaAge邁達特

參考資料

▸  How do I change my container instance type in Amazon ECS ?( From AWS )

 

聯絡 我們