本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 受管執行個體的架構
Amazon ECS 受管執行個體是 Amazon ECS 的一種全受管運算選項,讓您能在全部類型的 Amazon EC2 執行個體上執行容器化工作負載,同時將基礎結構管理工作交由 AWS負責。透過 Amazon ECS 受管執行個體,您可以存取特定運算功能,例如 GPU 加速、特定 CPU 架構、高網路效能和特殊執行個體類型,同時 AWS 處理基礎基礎設施的佈建、擴展、修補和維護。
當您使用 Amazon ECS 受管執行個體時,您可以將應用程式封裝在容器中並指定運算需求。 AWS 會自動選取最符合工作負載需求的成本最佳化一般用途 Amazon EC2 執行個體類型,或者您可以指定所需的執行個體屬性,包括執行個體類型、CPU 製造商和加速器。Amazon ECS 受管執行個體可完全管理基礎設施的所有層面,包括擴展、修補和成本最佳化,無需犧牲對 AWS 功能和 Amazon EC2 整合的存取。
Amazon ECS 受管執行個體支援具有平台特定最佳化和安全性組態的 Linux 容器。依預設,Amazon ECS 受管執行個體透過將多個較小的任務置放在較大的執行個體上來最佳化基礎結構使用率,協助降低成本並改善任務啟動時間。
本主題介紹 Amazon ECS 受管執行個體任務與服務的不同元件,並指出將 Amazon ECS 受管執行個體與 Amazon ECS 搭配使用時的特別考量。
開始使用
若要開始使用 Amazon ECS 受管執行個體,您可以建立所需的 IAM 角色,並在 AWS 帳戶中啟用 Amazon ECS 受管執行個體。然後,您可以建立容量提供者並使用 Amazon ECS 受管執行個體容量提供者啟動任務或服務。
如需有關開始使用的詳細說明,請參閱:
容量提供者
Amazon ECS 受管執行個體會使用容量提供者來管理工作負載的運算容量。您可以使用預設容量提供者,或建立具有特定執行個體需求的自訂容量提供者。
可用的容量提供者選項如下:
-
預設容量提供者 – 針對工作負載需求自動選取最具成本效益的一般用途執行個體類型。
-
自訂容量提供者 – 可讓您使用屬性型執行個體類型選取來指定執行個體屬性,包括 vCPU 計數、記憶體、CPU 製造商、加速器類型與特定執行個體類型。
容量提供者策略只能包含下列清單中的一個容量提供者類型:
-
Amazon ECS 受管執行個體
-
Amazon EC2 Auto Scaling 群組
-
Fargate/Fargate_SPOT
執行個體選擇與最佳化
Amazon ECS 可使用下列其中一種方法為 Amazon ECS 受管執行個體工作負載選擇執行個體類型:
-
自動選取 – 當使用預設容量提供者時,Amazon ECS 會自動選取最具成本效益的一般用途執行個體類型,這些類型符合任務定義中指定的 CPU 與記憶體需求。
-
屬性型選取 – 當使用自訂容量提供者時,您可以指定執行個體屬性,例如 vCPU 計數、記憶體大小、CPU 製造商、加速器類型與特定執行個體類型。Amazon ECS 會從符合所指定屬性的所有執行個體類型中選取。
Amazon ECS 受管執行個體透過數種機制來最佳化基礎結構使用率與成本:
-
多任務置放 – 依預設,Amazon ECS 會將多個較小的任務置放到較大的執行個體上,以最大化使用率並降低成本。
-
主動工作負載整合 – Amazon ECS 會識別容器執行個體何時真正處於閒置狀態,同時嘗試避免可能影響應用程式可用性或部署效能的提早終止。系統會遵守為服務設定的任務數量下限和上限、先啟動後停止行為以及任務保護行為。
-
最適化調整 – 隨著工作負載需求的變更,Amazon ECS 會啟動針對目前需求而適當調整了大小的替代執行個體。
Amazon ECS 會使用 Amazon EC2 事件時段,在您偏好的時段內排程維護活動。事件時段可讓您定義 AWS 可以對執行個體執行維護的週期性時段,從而透過使維護與操作排程保持一致,協助您將對工作負載的干擾降至最低。如需詳細資訊,請參閱 Amazon EC2 User Guide 中的 Scheduled events for your instances。
如果您需要嚴格隔離,則可以將 Amazon ECS 受管執行個體設定為在具有 VM 層級安全隔離界限的個別執行個體上執行各項任務。
任務定義
使用 Amazon ECS 受管執行個體的任務支援大多數 Amazon ECS 任務定義參數。Amazon ECS 受管執行個體與使用平台版本 1.4.0 的現有 Fargate 任務定義相容,讓遷移變得簡單。
若要使用 Amazon ECS 受管執行個體,請將 requiresCompatibilities 任務定義參數設定為包含 MANAGED_INSTANCES。任務定義可以指定 Fargate 與 Amazon ECS 受管執行個體相容性,以在部署選項中具有彈性。
作業系統與 CPU 架構
支援以下作業系統:
-
Bottlerocket
有兩種架構可用於 Amazon ECS 任務定義,即 ARM 和 X86_64。
當您在 Amazon ECS 受管執行個體上執行 Linux 容器時,對於基於 ARM 的應用程式,可以使用 X86_64 CPU 架構或 ARM64 架構。
主要功能
以下是 Amazon ECS 受管執行個體的主要功能:
-
選取特定 EC2 執行個體類型以符合應用程式的需求,以便存取專用硬體功能,例如 GPU 加速運算、特定 CPU 功能與大型記憶體大小。
-
依預設,透過將多個任務置放到單一執行個體上來最佳化資源使用率與成本。這一點與在自己的隔離環境中執行各項任務的 Fargate 不同。
-
確保安全性合規與定期修補,執行個體生命週期上限為 14 天,之後任務會自動遷移至新執行個體。
-
使用特權 Linux 功能 (包括 CAP_NET_ADMIN、CAP_SYS_ADMIN 與 CAP_BPF),在容器內啟用進階聯網設定與系統管理功能。
IAM 角色
Amazon ECS 受管執行個體需要兩個 IAM 角色:
-
基礎設施角色:此角色允許 代表您 AWS 管理 Amazon ECS 受管執行個體。
-
執行個體設定檔:執行個體設定檔是將 IAM 角色傳遞至 Amazon ECS 受管執行個體的一種方式。此設定檔用於:
-
定義執行容器工作負載之 Amazon ECS 受管執行個體的 IAM 許可。
-
允許 代表您 AWS 管理這些執行個體。
-
讓執行個體根據設定檔中定義的許可存取 AWS 服務。
-
安全和合規
Amazon ECS 受管執行個體會實作多層安全性來保護工作負載:
-
安全組態 - Amazon ECS 受管執行個體遵循 AWS 安全最佳實務,包括無 SSH 存取、不可變的根檔案系統,以及透過 SELinux 的核心層級強制性存取控制。
-
自動修補 - 使用最新的安全修補程式 AWS 定期更新 Amazon ECS 受管執行個體,遵守您設定的維護時段。
-
執行個體生命週期有限 – 執行中的執行個體的生命週期上限為 14 天,可確保應用程式在具有適當設定與最新安全性修補程式的執行個體上執行。
-
特權功能 – 您可以選擇為需要特權 Linux 功能的工作負載 (例如網路監控與可觀測性解決方案) 啟用這些功能。
Amazon ECS 受管執行個體支援與 Amazon ECS 所支援的相同合規計畫,包括 PCI-DSS、HIPAA 與 FedRAMP。在支援的區域中,Amazon ECS 受管執行個體會遵守您的帳戶層級 FIPS 端點設定,協助達成 FedRAMP 合規。
聯網
Amazon ECS 受管執行個體支援 awsvpc 與 host 網路模式。awsvpc 網路模式為每項任務提供自己的彈性網路介面和 VPC 內的私有 IP 位址。這能夠在任務層級實現精細的安全群組與網路 ACL 控制。在 host 網路模式中,任務會共用主機 Amazon ECS 受管執行個體的網路命名空間。如需有關 Amazon ECS 受管執行個體上任務聯網設定的詳細資訊,請參閱 Amazon ECS 受管執行個體的 Amazon ECS 任務聯網。
執行個體儲存體
Amazon ECS 受管執行個體支援對連接至執行個體的 Amazon EBS 資料磁碟區的大小進行設定。此儲存體會在執行個體上執行的所有任務之間共用,並可用於綁定掛載。磁碟區可以在任務定義中使用 volumes、mountPoint 與 volumesFrom 參數的容器之間共用和掛載。
磁碟區會在執行個體建立期間連接。當您使用 storageConfiguration 參數建立 Amazon ECS 受管執行個體容量提供者時,可以指定磁碟區的大小,以 GiB 為單位。
{ ... "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] }, "storageConfiguration": { "storageSizeinGiB" : 100 } } } ... }
此磁碟區的大小下限為 30 GiB,大小上限為 16,384 GiB。此磁碟區的預設大小為 80 GiB。
任務的提取、壓縮與未壓縮的容器映像都會儲存在此磁碟區中。若要判斷任務必須用作綁定掛載的執行個體儲存總量,則必須從分配給任務的執行個體儲存總量中減去容器映像所使用的儲存量。
連接至 Amazon ECS 受管執行個體的 Amazon EBS 磁碟區效能符合對應的 Amazon EC2 執行個體的效能,如 Amazon EC2 User Guide 中的 Amazon EBS-optimized instances 文件所述。
您可以建立磁碟區的快照,對安全問題執行鑑識分析或對應用程式偵錯。如需有關建立 Amazon EBS 磁碟區快照的詳細資訊,請參閱 Amazon EBS User Guide 中的 Amazon EBS snapshots。如果您已預設啟用 Amazon EBS 加密,磁碟區將使用預設指定用於加密的 AWS KMS 金鑰進行加密。如需有關預設加密的詳細資訊,請參閱 Amazon EBS User Guide 中的 Enable Amazon EBS encryption by default。
除了使用連接至執行個體的資料磁碟區之外,您也可以為在 Amazon ECS 受管執行個體上執行的每項任務設定資料磁碟區。如需有關可用的任務層級儲存選項的詳細資訊,請參閱 Amazon ECS 任務的儲存選項。
服務負載平衡
使用 Amazon ECS 受管執行個體的 Amazon ECS 服務可以設定為使用 ELB 將流量平均分配到服務中的任務。
Amazon ECS 受管執行個體上的 Amazon ECS 服務支援 Application Load Balancer、Network Load Balancer 與 Gateway Load Balancer 負載平衡器類型。Application Load Balancer 會路由 HTTP/HTTPS (第 7 層) 流量,而 Network Load Balancer 會路由 TCP 或 UDP (第 4 層) 流量。
當您為這些服務建立目標群組時,必須選擇 ip 作為目標類型,而不是選擇 instance。這是因為採用 awsvpc 網路模式的任務是與彈性網路介面相關聯,而非直接與 Amazon EC2 執行個體相關聯。
監控與可觀測性
Amazon ECS 受管執行個體透過 CloudWatch 指標提供全面的監控功能,並與可觀測性工具整合:
-
CloudWatch 指標 – 在任務與執行個體層級監控 CPU、記憶體、網路以及儲存使用率。
-
Container Insights – 取得容器化應用程式的詳細效能指標與日誌。
-
第三方整合 – 啟用特殊權限功能後,您可以執行需要更高 Linux 許可的進階監控與可觀測性解決方案。
定價與成本最佳化
使用 Amazon ECS 受管執行個體時,您需要支付執行任務的整個 Amazon EC2 執行個體的費用。定價取決於為您的工作負載選取的執行個體類型。
Amazon ECS 受管執行個體提供數種成本最佳化功能:
-
多任務最佳化 – 透過在適當大小的執行個體上執行多項任務,將執行個體使用率最大化。
您的 Compute Savings Plans 與 Instance Savings Plans 也適用於 Amazon ECS 受管執行個體工作負載。
Service Quotas
Amazon ECS 受管執行個體工作負載受限於您的 Amazon EC2 隨需執行個體服務配額。使用 Amazon ECS 受管執行個體的 Amazon ECS 服務受限於 Amazon ECS 服務配額。
如需有關服務配額的詳細資訊,請參閱:
-
Amazon Web Services 一般參考 中的 Amazon EC2 endpoints and quotas
遷移考量事項
對於大多數工作負載而言,遷移至 Amazon ECS 受管執行個體非常簡單:
-
從 Fargate 遷移 – 僅需要容量提供者組態變更與重新部署。使用平台版本 1.4.0 的現有任務定義完全相容。
-
從 EC2 遷移 – 與遷移至 Fargate 類似,但保留對 Amazon EC2 功能 (例如特定執行個體類型) 的存取權。
規劃遷移時請考量下列事項:
-
應用程式應可接受 14 天的執行個體生命週期上限和計劃的維護時段。
-
長時間執行的任務 (超過 14 天) 不適用於 Amazon ECS 受管執行個體。
-
不支援自訂 AMIs - Amazon ECS 受管執行個體使用 AWS受管、安全最佳化 AMIs。
限制及考量
下列限制適用於 Amazon ECS 受管執行個體:
-
自訂 AMIs - AMI 由 擁有和管理 AWS
-
執行個體生命週期 – 為確保安全修補與合規,每個執行個體的執行時期上限為 14 天。
-
SSH 存取 – 出於安全原因而無法使用。使用 Amazon ECS Exec 進行偵錯與疑難排解。管理操作僅透過 Amazon ECS API 進行。
-
Service Connect 不適用於在 Amazon ECS 受管執行個體上執行的服務。