本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 受管執行個體容量提供者、Amazon EC2 Auto Scaling 群組容量提供者和 Fargate 容量提供者的混合。容量提供者策略只能包含 Amazon ECS 受管執行個體容量提供者、Amazon EC2 Auto Scaling 群組容量提供者或 Fargate 容量提供者。
-
您可以針對 Amazon ECS 受管執行個體和 EC2 或 Amazon 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) 與叢集建立關聯。
- Amazon EC2 Auto Scaling 群組容量提供者
-
當您使用 Amazon EC2 執行個體做為容量時,您可以使用 Amazon EC2 Auto Scaling 群組來管理 Amazon EC2 執行個體。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 受管執行個體容量提供者、Amazon EC2 Auto Scaling 群組容量提供者和 Fargate 容量提供者的混合。容量提供者策略只能包含 Amazon ECS 受管執行個體容量提供者、Amazon EC2 Auto Scaling 群組容量提供者或 Fargate 容量提供者。