iT邦幫忙

2025 iThome 鐵人賽

DAY 16
1
Build on AWS

AWS 雲原生,學起來比泡咖啡還快系列 第 16

DAY16 - EKS vs ECS:雙胞胎的差異

  • 分享至 

  • xImage
  •  

發文到現在終於要進入到EKS,就是K8S的世界,在使用之前我們要先了解 ECS 跟 EKS的差別到底在哪裡,跟我們甚麼時候要用哪個服務。

AWS ECS 是什麼?

Amazon Elastic Container Service (Amazon ECS) 是一項全受管的容器協同運作服務,可簡化容器化應用程式的部署、管理和擴展。
白話文:只要把 container 上上去,剩下的都由 AWS 幫你處理。


ECS 幫你做的事情

部署與管理

  • 自動化管理:ECS 是一個完全受管理的服務,用戶無需管理容器的基礎設施,AWS 會自動處理容器的部署和管理。
  • 多種運行模式
    • Fargate(無伺服器模式):無需管理 EC2 實例,AWS 自動處理基礎設施,開發者專注於應用程式本身。
    • EC2 模式:用戶管理 EC2 實例,並在其上運行容器,提供更多自定義選項。
  • 集群管理:ECS 自動處理容器的部署、健康檢查、重新啟動等。

擴展與自動擴容

  • 自動擴展:支援根據需求自動調整容器數量,並能結合 Auto Scaling 增減 EC2 實例。
  • 服務擴展:可設定擴展策略,依需求調整容器數量。

健康檢查與故障恢復

  • 健康檢查:容器失敗時會自動重新啟動。
  • 滾動更新:逐步替換容器,避免服務中斷。

服務發現

  • 提供內建服務發現功能,容器之間可透過 DNS 名稱 互相通信。

安全與網路

  • VPC 整合:可運行於 VPC 中,使用安全組、網路 ACL 做隔離。
  • IAM 整合:可透過 IAM 控制容器與服務的權限。

最重要的是:ECS 幾乎可以透過 AWS Console 全部設定完成。


Amazon ECS、Docker Compose、Kubernetes (K8s) 比較

特性 Kubernetes (K8s) Docker Compose Amazon ECS
管理與部署 優勢:可管理大規模集群,支援跨雲,功能強大缺點:學習曲線高,自主管理集群 優勢:簡單易用,適合本地開發缺點:不適用於生產,缺乏高可用性 優勢:全受管,配置簡單,自動化缺點:僅限 AWS 環境
擴展性 優勢:強大自動擴展 (HPA)缺點:配置複雜 優勢:小範圍適用缺點:不支援自動擴展 優勢:支援自動擴展,與 AWS 整合缺點:僅限 AWS,彈性較單純
資源管理 優勢:細粒度管理與調度缺點:配置複雜 優勢:簡單缺點:無法應對大規模 優勢:配置簡單缺點:調度不如 K8s 靈活
網路與安全 優勢:細粒度網路策略缺點:需網路專業 優勢:設置簡單缺點:不支援複雜策略 優勢:整合 AWS VPC 與安全組缺點:策略較簡單
服務發現 優勢:自動發現與 DNS缺點:配置繁瑣 優勢:簡單缺點:不支援大規模 優勢:內建服務發現,整合 Route 53缺點:功能較單純
滾動更新 優勢:支援更新與回滾缺點:配置較複雜 優勢:簡單缺點:無原生機制 優勢:支援滾動更新與回滾缺點:複雜場景需額外設定
跨雲支援 優勢:多雲混合環境缺點:需額外工具 優勢:支援本地缺點:無法跨雲 優勢:跨區域缺點:僅限 AWS
學習曲線 優勢:功能強大缺點:學習曲線高 優勢:快速上手缺點:功能有限 優勢:易於上手,全受管缺點:功能較單純

總結 — 如果沒有以下需求,就不用 K8s

功能 Kubernetes (K8s) Amazon ECS
多集群管理 支援多雲、混合雲,自動故障轉移 僅單一 AWS 區域
自定義調度 高度靈活,親和性/反親和性 僅基本部署
自動擴展 水平/垂直擴展,精細化管理 自動擴展,較簡單
服務網格 Istio/Linkerd,強大流量控制 AWS App Mesh,功能較弱
存儲管理 多種存儲整合,支援 PV 支援 EFS/EBS,較簡單
命名空間 強大多租戶隔離 無原生命名空間
跨雲支援 多雲混合部署 僅限 AWS
學習曲線 複雜但功能強大 簡單易用,功能有限

想試試看?

可以到 AWS Workshop Studio 體驗 ECS Lab


AWS Fargate

AWS Fargate 是一個 無伺服器的容器運行引擎,可在 Amazon ECS 與 Amazon EKS 上運行容器,而不需管理伺服器或基礎設施。

特點

  • 無伺服器:不用創建或管理 EC2,AWS 自動處理基礎設施。
  • 按需計費:依實際使用 CPU / 記憶體付費。
  • 簡化部署:只需定義需求,AWS 幫你運行容器。
  • AWS 生態系統整合:可搭配 RDS、S3、SNS、CloudWatch、IAM 等。

為什麼選擇 Fargate?

  • 簡單性:不用管基礎設施,專注應用程式。
  • 彈性擴展:自動擴展,高可用性。
  • 成本效益:按使用量付費,特別適合需求波動的應用。
  • 安全性:容器獨立執行,支援 IAM 與網路安全。

適用場景

  • 微服務架構
  • 無伺服器應用
  • 高低峰波動流量
  • CI/CD 部署流程

小提醒

  • 用 Fargate → 推 ECS,不要推 EKS,否則會很辛苦。
  • 費用比 EC2 模式貴一點點,但不用管理伺服器很值得。


上一篇
DAY15 - Auto Scaling:演員太紅?加開人數!
下一篇
DAY17 - EKS建置前的環境準備
系列文
AWS 雲原生,學起來比泡咖啡還快20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言