ECS
Amazon Elastic Container Service
在 AWS 上執行與管理容器化應用程式的服務。
一句話說明
在 AWS 上執行與管理容器化應用程式的服務。
概要
Amazon ECS 是在 AWS 上執行與管理 Docker 容器的容器編排服務。可以使用 EC2 或 Fargate 作為執行基礎。
主要用途
- 執行容器化的 Web 應用程式
- API 伺服器的容器運維
- 批次處理容器的執行
- 微服務架構的管理
CLF-C02 考試重點
- 為容器編排服務
- 有 ECS on EC2 與 ECS on Fargate 兩種執行方式
- 使用 Fargate 可減少 EC2 執行個體管理
- 容器映像的儲存使用 ECR
- 可與 ALB 組合公開 Web 應用程式
SAA-C03 考試重點
- 想避免伺服器管理的容器執行情境可考慮 Fargate
- 基本架構是將 ECS 任務放置於私有子網路,僅 ALB 為公開
- 理解任務執行角色與任務角色的差異
- 以服務的 Desired Count 維持任務數量
- 可透過 CloudWatch Logs 確認容器日誌
實際使用情境
Amazon ECS(Elastic Container Service)是在 AWS 上執行與管理 Docker 容器的全託管容器編排服務。運維時的組成元素包括:任務定義(整合容器映像、CPU / 記憶體、網路、IAM 角色、日誌輸出目的地等的設計圖)、任務(從任務定義啟動的 1 個或多個容器執行單元)、服務(維持指定數量的任務,並依需要與 ALB / NLB 連動的邏輯單元)、叢集(集合任務、服務的邏輯邊界)。 執行基礎可選擇「ECS on EC2」與「ECS on Fargate」2 種。EC2 啟動類型由使用者管理作為容器主機的 EC2 執行個體,可彈性選擇執行個體類型、使用 GPU / 特殊用途執行個體、透過 Spot 執行個體進行成本最佳化。Fargate 啟動類型則由 AWS 端隱藏容器主機管理,使用者僅需指定 CPU / 記憶體需求即可,可削減伺服器管理工作,但相對地每單位時間執行成本會比 EC2 + 自行管理略高。 實務上的標準架構是 3 層結構: ECS 任務配置於私有子網路,僅將位於公有子網路的 ALB 從網際網路開放存取。標準設計包括 ALB → ECS 服務的動態連接埠對應、容器日誌輸出至 CloudWatch Logs、Auto Scaling(以 CPU / 記憶體 / ALB 請求數為基礎)自動增減任務數。任務有 2 種 IAM 角色:「任務執行角色」用於 ECS 自身所需的 AWS API 操作,如從 ECR 拉取映像、輸出至 CloudWatch Logs;「任務角色」則用於容器內應用程式存取 AWS API(S3 / DynamoDB 等)。兩者混淆會導致權限事故,因此應明確區分後再設計。 CLF-C02 會以「執行容器的編排服務」、「與 ECR 組合使用的容器執行基礎」等形式出題。SAA-C03 以上則會考 Fargate 與 EC2 啟動類型的選定、服務的 Desired Count 設計、Capacity Provider、ECS Service Connect / Service Discovery,以及與 EKS(Kubernetes 相容)的區分使用等內容。
官方文件
成本注意事項
- ECS on EC2 會對 EC2 執行個體、EBS、ALB 等收費
- ECS on Fargate 依 vCPU、記憶體與執行時間計費
- 搭配 ALB 時也會產生負載平衡器費用
- 以靜態網站為主的 MVP 採用 S3 + CloudFront 較易維持低成本
安全性注意事項
- 任務角色僅允許應用程式所需的 AWS 操作
- 任務執行角色需賦予從 ECR 取得映像與輸出 CloudWatch Logs 所需的權限
- ECS 任務的 Security Group 僅允許來自 ALB 的通訊
- 勿在容器映像中包含 API 金鑰或 .env 檔案
- 正式環境須確認 ECR 映像掃描與最小權限 IAM
相關服務
相關比較文章
此術語尚未登錄相關比較文章。
相關架構圖
標籤
最後更新日: 2026-06-08
上一個術語
Amazon Elastic Container Registry
下一個術語
Amazon Elastic File System