AWS Fargate 常見問答集

一般問題

AWS Fargate 是一種無伺服器運算引擎,適用於搭配 Amazon Elastic Container Service (ECS) 與 Amazon Elastic Kubernetes Service (EKS) 使用的容器。AWS Fargate 消除了佈建和管理伺服器的需求,使您可以輕鬆地專注於建置應用程式,還可讓您指定每個應用程式的資源和支付資源費用,以及透過精心設計的應用程式隔離來增強安全性。

AWS Fargate 是無伺服器、依用量計費的運算引擎,讓您能專注於建置應用程式,而無需管理伺服器。AWS Fargate 與 Amazon ECS 和 Amazon EKS 均相容。AWS Fargate 可將儘可能多的基礎設施資源管理轉移到 AWS,以便開發團隊專注於撰寫解決商業問題的程式碼,讓您輕鬆擴展和管理雲端應用程式。將伺服器管理、資源配置和擴展等任務轉移到 AWS,不僅可以改善您的營運狀態,還可以加速雲端上從構想到生產的過程,同時降低總體擁有成本 (TCO)。由於支援多種 CPU 架構和作業系統,您可以在各種應用程式中享受無伺服器在成本、敏捷性和擴展性等多項優勢。

Amazon ECS 是可高度擴展的高效能容器管理服務,而 Amazon EKS 是一項全受管 Kubernetes 服務。這兩種服務都可將容器排程到 AWS Fargate,以自動擴展、平衡負載及透過受管排程來優化容器可用性,從而輕鬆建置及操作容器化應用程式。

使用 AWS Fargate 時,每個工作負載都會在自己單一使用的單一租用戶運算執行個體上執行。每個工作負載由虛擬化邊界隔離,每個 Amazon ECS 任務或 Kubernetes Pod 在新佈建的執行個體上執行。 如需 AWS Fargate 架構的詳細資訊,請參閱 AWS Fargate 安全白皮書

選擇 AWS Fargate 是因其隔離模型和安全性。如果您想要啟動容器,還應選擇 Amazon Fargate,如此就不必佈建或管理 Amazon Elastic Compute Cloud (EC2) 執行個體。AWS Fargate 內建與 AWS 服務和第三方工具的整合,可讓您監控應用程式並收集指標和日誌。此外,使用 AWS Fargate 時,您只需依使用的運算資源付費,無需預付費用。如果您需要進一步控制 Amazon EC2 執行個體,或更廣泛的自訂選項,則請使用 Amazon ECS 或 Amazon EKS,不要選擇 AWS Fargate。AWS Fargate 目前不支援針對 GPU 工作負載使用 Amazon EC2。

是。使用 Amazon ECS 時,AWS Fargate 可讓您使用 Amazon Elastic Container Registry (Amazon ECR) 中與 Arm 相容的容器映像或多架構容器映像來執行基於 Arm 的應用程式。您只需在 Amazon ECS 任務定義中將 CPU 架構指定為 Arm64,以針對由基於 Arm 的 AWS Graviton 處理器提供支援的 AWS Fargate。 使用 Amazon EC2 在 Amazon EKS 上執行 Arm 工作負載,AWS Fargate 目前不支援這些工作負載。

是。AWS Fargate 提供了一種用於執行 Windows 容器的無伺服器方法。無需佈建和管理伺服器,並可讓您為每個應用程式指定資源並為資源付費。AWS Fargate 提供任務層級隔離並處理必要的修補和更新,以協助提供安全的運算環境。如需支援的 Windows 伺服器版本資訊,請參閱 Windows 平台版本文件頁面。

由於 AWS Fargate 是無伺服器運算引擎,因此客戶無需管理 AWS Fargate 中執行的基礎運算執行個體。因此,AWS Fargate 將為您管理 Windows 作業系統授權,這樣做的成本已包含在 AWS Fargate 定價中。 

AWS Fargate 中的服務配額依據指定帳戶中指定區域使用的 vCPU 核心數目而定。新的 AWS 帳戶可能具有較低的初始配額,這可能會隨著時間的推移而增加,並透過標準 AWS 服務配額增加程序來請求提高這些軟限制。針對需要大規模 (10,000 個核心) 的工作負載,AWS 建議採用多帳戶策略。

我們的運算 SLA 可保證 AWS Fargate 的每月正常執行時間百分比至少為 99.99%。AWS 針對內含容器服務做出兩項 SLA 承諾:(1) 多可用區內含容器服務 SLA,用於控管跨多個可用區域部署的內含容器服務;以及 (2) 單一任務 /Pod SLA,用於個別控管內包容器服務任務和 Pod。請參閱 AWS Fargate 和 Amazon Elastic Container Service SLA 頁面。

根據運算 SLA,如果您在一個以上可用區域執行任務,而同一個區域任一個月帳單週期內的每月正常執行時間百分比低於 99.99%,您就符合 AWS Fargate 的 SLA 抵扣資格。如需 SLA 所有條款與條件的完整詳細資訊,以及如何提交索賠的詳細資訊,請參閱運算 SLA 詳細資訊頁面

使用 AWS Fargate

  • Seekable OCI (SOCI) 可協助減少 AWS Fargate 上 Amazon ECS 任務的啟動時間。SOCI 由 AWS 提供開放原始碼的一項技術,可讓容器徐緩地載入容器映像,以加快啟動速度。若要了解如何開始使用 SOCI,請瀏覽文件部落格文章
  • 使用 zstd 壓縮容器映像來縮短 AWS Fargate 啟動時間。容器映像層經過壓縮以提高效率,預設會使用 gzip 格式。不過,containerd 支援稱為 “zstd” 的替代格式,該格式顯示可更快速地解壓縮,因此在使用 AWS Fargate 時可縮短任務啟動時間。 如需有關如何以 zstd 格式建置容器映像的更多詳細資訊,請參閱此部落格文章

建議您在本機或開發環境中載入測試應用程式,以了解應用程式的需求,進而適當調整請求大小。 如果工作負載不足或過大,可使用 AWS Compute Optimizer 來提供建議。

在 AWS Fargate 上,針對每項 ECS 任務或 Kubernetes Pod 都會提供附接至虛擬私有雲端 (VPC) 的專用彈性網絡介面 (ENI)。所有進出容器化工作負載的流量都會經過此 ENI。因此,VPC 安全群組VPC 網路 ACL 可用於保護 ENI,而 VPC 流量日誌可用於監控通訊流量。

在 AWS Fargate 上執行的每個工作負載都可以完整存取 20 GiB 的暫時性儲存,以便在工作負載執行時用作臨時儲存。工作負載停止後,存放在此 20 GiB 磁碟區中的所有資料都會被清除。這種暫時性儲存磁碟區可在 Amazon ECS 上擴展到最多 200 GiB,在 Amazon EKS 上擴展到 175 GiB。 Amazon Elastic File System (EFS) 用於為執行於 AWS Fargate 的工作負載提供持續性儲存。

從容器內建置容器的常見方法通常需要權限模式 (例如使用 Docker 中的 Docker),這在 AWS Fargate 的安全模式下無法使用,或者將 Docker 通訊端掛載到容器中,由於 AWS Fargate 使用平台版本 1.4 之前的 containerd,因此無法使用此模式。或者,也可以在 AWS Fargate 的安全模式中部署無根映像建置專案 (例如 Kani),這也是建置容器映像的可行選項。

安全與合規

AWS Fargate 符合各種合規計畫的標準,包括 PCI DSS、SOC、FIPS 140-2、FedRAMP 和 HIPAA。如需詳細資訊以及完整的計畫清單,請參閱適用範圍文件中的 AWS 雲端安全服務。 

是。AWS Fargate 是 HIPAA 合規服務。如果您擁有與 AWS 共同履行的商業夥伴協議 (BAA),可使用部署於 AWS Fargate 的容器,處理加密的受保護醫療資訊 (PHI)。如需詳細資訊,請參閱我們的 HIPAA 合規頁面。 您若打算處理、存放或傳輸 PHI,但尚未與 AWS 簽訂任何 BAA,請聯絡我們取得詳細資訊。 

是。AWS GovCloud (美國) 區域提供 AWS Fargate。 AWS GovCloud (美國) 區域是 Amazon 的獨立雲端基礎設施和服務,旨在滿足美國政府機構以及在雲端中執行敏感工作負載的承包商、教育機構和其他美國客戶的特定監管和合規需求。如需提供 AWS Fargate 的 AWS 區域完整清單,請瀏覽我們的區域表文件。 

整合

AWS Fargate 提供靈活的整合模式,包括第一方 AWS 服務和第三方 Amazon 合作夥伴網路 (APN) 解決方案。常見的整合機制是在 AWS Fargate 任務中執行可與主要應用程式容器互動的附屬容器,例如與主要應用程式互動的執行期安全代理程式或日誌路由器,然後將資料傳送至集中式系統進行分析和審查。

AWS 提供若干工具來監控和回應 AWS Fargate 資源的各個方面,包括 Amazon CloudWatch Alarms、Amazon CloudWatch Logs、Amazon CloudWatch Events、AWS CloudTrail Logs、AWS Trusted AdvisorAWS Compute Optimizer。一種常用的方法是利用 CloudWatch Container Insights 來收集和分析日誌,以及檢視操作儀表板。應用程式日誌記錄具有適用於 CloudWatch 和 Splunk 的內建日誌驅動程式,但適用於 Amazon ECS 的 FireLens 可透過任務定義參數使用,可將日誌路由到 AWS 服務或 AWS 合作夥伴網路 (APN) 目的地。

定價和成本優化

使用 AWS Fargate 時,您只需依容器化應用程式佈建的 vCPU、記憶體和儲存資源數量付費。vCPU 及記憶體資源會從您取出容器映像時開始計算,直到 Amazon ECS 任務或 EKS Pod 終止為止,時間長度會進位至最近的秒數。需支付 1 分鐘最低費用。系統將 20 GB 的預設暫時性儲存提供給所有 AWS Fargate 任務和 Pod—您只需為設定的附加儲存支付費用。 AWS Fargate 支援 Spot 和 Compute Savings Plan 定價選項,和 Amazon EC2 執行個體一樣。如需其他詳細資訊,請參閱定價頁面

  • AWS 針對 AWS Fargate 任務提供 Spot 執行個體,其利用備用運算容量,且價格比隨需執行個體更低。藉由使用 Spot 執行個體,您能夠以 AWS Fargate 定價最高達 70% 的折扣,來執行容許中斷的 Amazon ECS 任務。 
  • AWS 推出 AWS Fargate Savings Plans,這是一種折扣模式,可為您提供與預留執行個體相同的折扣,以換取一年期或三年期使用特定運算能力所需金額的承諾 (以每小時美元金額計算)。 
  • AWS Graviton 處理器由 AWS 所設計,可為 Amazon EC2、AWS 受管容器和其他受管服務中執行的雲端工作負載提供最佳價格效能。相較於同類的 x86 型執行個體,AWS Graviton 價格效能可提升高達 40%。相較於同類的 EC2 執行個體,AWS Graviton 處理器具有更高的能源效益,而且可節省高達 60% 的能源。 
  • AWS Fargate 包含在 AWS Compute Optimizer 中,可讓您輕鬆識別和修復效率低下的組態。

AWS Graviton 處理器是由 Amazon Web Services 核心所量身打造,以針對雲端工作負載提供最佳價格效能比。由 AWS Graviton 處理器提供支援的 AWS Fargate 為各種工作負載 (例如應用程式伺服器、Web 服務、高效能運算和媒體處理) 提供比基於 Intel x86 的同類 Fargate 低 20% 的成本提高 40% 的價格/效能。您可以獲得與 AWS Fargate 相同的無伺服器優勢,同時優化執行容器化工作負載的效能和成本。