本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 叢集
Amazon ECS 叢集是任務或服務邏輯分組,可為容器化應用程式提供基礎結構容量。建立叢集時,可從三種主要基礎結構類型中選擇,每種類型都針對不同的使用案例與操作需求進行最佳化。
選擇合適的叢集類型
Amazon ECS 為叢集提供三種基礎結構類型。選擇最符合工作負載需求、操作偏好設定與成本最佳化目標的類型:
- Amazon ECS 受管執行個體 (建議)
-
最適合大多數工作負載 - AWS 完整管理基礎 Amazon EC2 執行個體,包括佈建、修補和擴展。此選項能在效能、成本效益與操作簡易性之間實現最佳平衡。
使用時機:
AWS 您想要處理基礎設施管理
需要具成本效益、帶自動最佳化功能的運算
想要專注於應用程式而不是基礎結構
需要具有彈性擴展的可預測效能
- Fargate
-
無伺服器運算 – 只需為任務實際使用的資源付費,無需管理任何基礎結構。適用於變動性工作負載與需要快速上手的案例。
使用時機:
想要完全無伺服器營運
有無法預測或可變的工作負載
想要將營運開銷降至最低
需要快速部署與擴展
- Amazon EC2 執行個體
-
完全控制 – 您可以直接管理底層 Amazon EC2 執行個體,包括執行個體選擇、設定與維護。
使用時機:
需要特定的執行個體類型或組態
現有 Amazon EC2 基礎結構可以利用
需要自訂 AMI 或專用軟體
需要對底層基礎結構擁有最大控制
注意
Amazon ECS 受管執行個體是大多數新工作負載的建議選擇,因為它提供效能、成本最佳化和操作簡單性的最佳組合,同時允許 AWS 處理基礎設施管理任務。
叢集元件
除基礎結構容量外,叢集還包含下列資源:
-
執行任務和服務的網路 (VPC 和子網路)
當您將 Amazon ECS 受管執行個體或 Amazon EC2 執行個體用於容量時,子網路可以位於可用區域、Local Zones、Wavelength 區域或 AWS Outposts。
-
選用的命名空間
命名空間用於與 Service Connect 進行服務間通訊。
-
監控選項
CloudWatch Container Insights 需要額外付費,且為全受管服務。此服務會自動收集、彙總及總結 Amazon ECS 指標和日誌。
叢集概念
以下是有關 Amazon ECS 叢集的一般概念。
-
可透過建立叢集來分隔資源。
-
叢集是 AWS 區域 特定的。
-
叢集可以處於如下任一狀態。
- ACTIVE
-
叢集已準備好接受任務,如果適用,您可以向叢集註冊容器執行個體。
- 佈建中
-
叢集具有與其相關聯的容量提供者,並且將建立容量提供者所需的資源。
- 取消佈建中
-
叢集具有與其相關聯的容量提供者,並且將刪除容量提供者所需的資源。
- 失敗
-
叢集具有與其相關聯的容量提供者,並且無法建立容量提供者所需的資源。
- 非作用中
-
已刪除叢集。具有
INACTIVE狀態的叢集可能會在您的帳戶中保持可探索一段時間。此行為未來可能會變更,因此請確保您不會依賴INACTIVE叢集的留存。
-
叢集可以包含託管於 Amazon ECS Managed Instances、 AWS Fargate、Amazon EC2 執行個體或外部執行個體上的任務組合。任務可以當作啟動類型或容量提供者策略在 Amazon ECS 受管執行個體、Fargate 或 EC2 基礎結構上執行。如果您使用 EC2 容量提供者,Amazon ECS 不會追蹤和擴展 Amazon EC2 Auto Scaling 群組的容量。
-
叢集可以同時包含 Amazon ECS 受管執行個體容量提供者、Auto Scaling 群組容量提供者以及 Fargate 容量提供者。容量提供者策略只能包含 Amazon ECS 受管執行個體容量提供者、Auto Scaling 群組容量提供者或 Fargate 容量提供者。
-
您可以針對 Amazon ECS 受管執行個體與 EC2 或 Auto Scaling 群組容量提供者,分別採用不同的執行個體類型。一個執行個體一次只能註冊到一個叢集。
-
您可以透過建立自訂 IAM 政策來限制對叢集的存取。如需詳細資訊,請參閱 Amazon ECS 叢集範例中的 Amazon Elastic Container Service 身分型政策範例一節。
-
您可以使用服務自動擴展功能實現 Fargate 任務擴展。如需詳細資訊,請參閱自動擴展您的 Amazon ECS 服務。
-
您可以為叢集設定預設的 Service Connect 命名空間。設定預設的 Service Connect 命名空間之後,藉由開啟 Service Connect,在叢集中建立的任何新服務都可新增為命名空間中的用戶端服務。不需任何其他設定。如需詳細資訊,請參閱使用 Service Connect 以利用簡稱連線 Amazon ECS 服務。
容量提供者
Amazon ECS 容量提供者會管理叢集中任務的基礎設施擴展。每個叢集可以有一或多個容量提供者和選用的容量提供者策略。您可以將預設容量提供者策略指派給叢集。容量提供者策略會決定任務在叢集的容量提供者之間分散的方式。當您執行獨立任務或建立服務時,可以使用叢集的預設容量提供者策略,也可以使用能覆寫預設值的容量提供者策略。僅當您未為任務或服務指定啟動類型或容量提供者策略時,叢集的預設容量提供者策略才適用。若提供任一參數,則不會使用預設策略。
Amazon ECS 為叢集提供三種類型的容量提供者:
- Amazon ECS 受管執行個體容量提供者
-
AWS 完整管理基礎 Amazon EC2 執行個體,包括佈建、修補、擴展和生命週期管理。這能在效能、成本效益與操作簡易性之間實現最佳平衡。Amazon ECS 受管執行個體容量提供者會依據工作負載需求,自動最佳化執行個體選擇與擴展。
透過 Amazon ECS 受管執行個體可享如下優勢:
執行個體自動佈建與擴展
受管修補與安全性更新
透過智慧型執行個體選擇實現成本最佳化
降低營運開銷
- Fargate 容量提供者
-
無伺服器運算:只需為任務實際使用的資源付費,無需管理任何基礎結構。您只需要將預先定義的容量提供者 (Fargate 及 Fargate Spot) 與叢集建立關聯。
- Auto Scaling 群組容量提供者
-
當您為容量使用 Amazon EC2 執行個體時,可以使用 Auto Scaling 群組管理 Amazon EC2 執行個體。Auto Scaling 能確保您有正確的 Amazon EC2 執行個體數量來處理應用程式負載。您可以完全控制底層基礎結構。
叢集可以包含託管於 Amazon ECS Managed Instances、 AWS Fargate、Amazon EC2 執行個體或外部執行個體上的任務組合。任務可以當作啟動類型或容量提供者策略在 Amazon ECS 受管執行個體、Fargate 或 EC2 基礎結構上執行。如果您使用 EC2 作為啟動類型,Amazon ECS 就不會追蹤和擴展 Amazon EC2 Auto Scaling 群組的容量。
叢集可以同時包含 Amazon ECS 受管執行個體容量提供者、Auto Scaling 群組容量提供者以及 Fargate 容量提供者。容量提供者策略只能包含 Amazon ECS 受管執行個體容量提供者、Auto Scaling 群組容量提供者或 Fargate 容量提供者。