容器化。 NET应用 - AWS 規定指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

容器化。 NET应用

概觀

容器是一種輕量且有效率的方式,以一致且可重複的方式封裝及部署應用程式。本節說明如何使用 AWS Fargate無伺服器容器服務來降低. NET應用程式同時提供可擴充且可靠的基礎架構

成本影響

影響使用容器節省成本的有效性的一些因素包括應用程式的大小和複雜性、需要部署的應用程式數量,以及應用程式的流量和需求程度。對於小型或簡單的應用程式,與傳統基礎架構方法相比,容器可能無法大幅節省成本,因為管理容器和相關服務的負荷可能實際上會增加成本。但是,對於較大或更複雜的應用程式,使用容器可以透過改善資源使用率並減少所需執行個體的數量來節省成本。

我們建議您在使用容器以節省成本時,請注意以下事項:

  • 應用程式規模與複雜度:較大、更複雜的應用程式更適合容器化,因為它們往往需要更多資源,而且可以從改善的資源使用率中獲益更多。

  • 應用程式數量 — 組織必須部署的應用程式越多,透過容器化可節省更多的成本。

  • 流量和需求 — 遇到高流量和需求的應用程式可以從容器提供的可擴充性和彈性中獲益。這樣可以節省成本。

不同的架構和作業系統會影響容器成本。如果您使用的是 Windows 容器,則由於授權考量,成本可能不會降低。Linux 容器的授權成本較低或不存在。下表使用美國東部 (俄亥俄) 區域的基本組態,其 AWS Fargate 中包含下列設定:每月 30 個工作每個執行 12 小時,並配置了 4 vCPUs 和 8 GB 的記憶體。

您可以從兩個主要運算平台中進行選擇,以便在其上執行容器 AWS:EC2基於容器主機和無伺服器或 AWS Fargate. 如果您使用 Amazon 彈性容器服務 (AmazonECS) 而非 Fargate,則必須維護執行中的運算 (執行個體),以允許放置引擎在需要時實例化容器。如果您改用 Fargate,則只會佈建所需的運算容量。

下圖顯示了使用 Fargate 與 Amazon EC2 的等效容器的差異。由於 Fargate 具有靈活性,應用程式的任務每天可以執行 12 小時,在下班時間內使用率為零。但是,對於 AmazonECS,您必須使用 Auto Scaling EC2 執行個體群組來控制運算容量。這可能會導致每天 24 小時執行容量,最終可能會增加成本。

Fargate 每月成本 vs 每EC2月成本

成本最佳化建議

使用 Linux 容器而不是視窗

如果您使用 Linux 容器而不是 Windows 容器,則可以大幅節省成本。例如,如果您執行. NETEC2Linux 上的核心,而不是執行. NETEC2視窗上的框架。如果您使用ARM架構(AWS 重力子)而不是 x86,則可以額外節省 40% 的費用。

如果您打算針對現有的. NET架構應用程式時,您必須將這些應用程式移植到. NET(例如. NET6.0),以便使用 Linux 容器。一個主要的考慮因素是權衡重構的成本與通過降低 Linux 容器成本所節省的成本相比。如需將應用程式移植到現代軟體的詳細資訊。 NET,請參閱. NET在文 AWS 檔中。

轉移到現代的另一個好處。 NET(也就是說,遠離. NET框架)是額外的現代化機會可用。例如,您可以考慮將應用程式重新架構為更具擴充性、敏捷性和成本效益的微服務架構。

下圖說明探索現代化機會的決策程序。

重組決策樹

善加利用 Savings Plans

容器可以幫助您利用 Compute Savings Plan s 來降低 Fargate 成本。彈性 discount 模式提供與可轉換預留執行個體相同的折扣。Fargate 定價是根據您開始下載容器映像到 Amazon ECS 任務終止 (四捨五入到最接近的秒數) 開始使用的 v CPU 和記憶體資源計算。Fargate 的 Savings Plan s 最多可節省 50% 的 Fargate 用量,以換取承諾在一年或三年期間使用特定計算用量 (以每小時美元計算)。您可以用它AWS Cost Explorer來幫助您選擇 Savings Plan。

重要的是要了解 Compute Savings Plans 適用於首先為您節省最大的成本的用量。例如,如果您在中執行 t3.medium Linux 執行個體,而us-east-2且執行相同的 Windows t3.medium 執行個體,則 Linux 執行個體會先獲得 Savings Plan 權益。這是因為 Linux 執行個體有 50% 的節省潛力,而相同的 Windows 執行個體則有 35% 的節省潛力。如果您的 Savings Plan 中運行了其他符合條件的資源 AWS 帳戶,例如 Amazon EC2 或 Lambda,那麼您的 Savings Plan 不必先應用於 Fargate。有關更多信息,請參閱節省計劃文檔中的了解 Savings Plans 如何應 AWS 用於您的用量以及本指南的 EC2「優化 Windows 在 Amazon 上的支出」一節。

正確的大小 Fargate 任務

確保 Fargate 任務的大小正確,以實現最大程度的成本優化是非常重要的。通常,開發人員在最初確定其應用程序中使用的 Fargate 任務的配置時,沒有所有必要的使用信息。這可能會導致任務過度佈建,然後導致不必要的支出。為了避免這種情況,我們建議您加載在 Fargate 上運行的測試應用程序,以了解特定任務配置如何在不同的使用情況下執行。您可以使用負載測試結果,vCPU,任務的內存分配和 auto 擴展策略來找到性能和成本之間的正確平衡。

下圖顯示 Compute Optimizer 工具如何針對最佳工作和容器大小產生建議。

Compute Optimizer 建議的工作和容器大小

一種方法是使用負載測試工具,例如分佈式負載測試中描述的工具 AWS,以建立 v CPU 和內存使用率的基準。執行負載測試以模擬一般應用程式負載之後,您可以微調工作的 v CPU 和記憶體組態,直到達到基準使用率為止。

其他資源