本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
容器化。 NET应用
概觀
容器是一種輕量且有效率的方式,以一致且可重複的方式封裝及部署應用程式。本節說明如何使用 AWS Fargate無伺服器容器服務來降低. NET應用程式同時提供可擴充且可靠的基礎架構
成本影響
影響使用容器節省成本的有效性的一些因素包括應用程式的大小和複雜性、需要部署的應用程式數量,以及應用程式的流量和需求程度。對於小型或簡單的應用程式,與傳統基礎架構方法相比,容器可能無法大幅節省成本,因為管理容器和相關服務的負荷可能實際上會增加成本。但是,對於較大或更複雜的應用程式,使用容器可以透過改善資源使用率並減少所需執行個體的數量來節省成本。
我們建議您在使用容器以節省成本時,請注意以下事項:
-
應用程式規模與複雜度:較大、更複雜的應用程式更適合容器化,因為它們往往需要更多資源,而且可以從改善的資源使用率中獲益更多。
-
應用程式數量 — 組織必須部署的應用程式越多,透過容器化可節省更多的成本。
-
流量和需求 — 遇到高流量和需求的應用程式可以從容器提供的可擴充性和彈性中獲益。這樣可以節省成本。
不同的架構和作業系統會影響容器成本。如果您使用的是 Windows 容器,則由於授權考量,成本可能不會降低。Linux 容器的授權成本較低或不存在。下表使用美國東部 (俄亥俄) 區域的基本組態,其 AWS Fargate 中包含下列設定:每月 30 個工作每個執行 12 小時,並配置了 4 vCPUs 和 8 GB 的記憶體。
您可以從兩個主要運算平台中進行選擇,以便在其上執行容器 AWS:EC2基於容器主機和無伺服
下圖顯示了使用 Fargate 與 Amazon EC2 的等效容器的差異。由於 Fargate 具有靈活性,應用程式的任務每天可以執行 12 小時,在下班時間內使用率為零。但是,對於 AmazonECS,您必須使用 Auto Scaling EC2 執行個體群組來控制運算容量。這可能會導致每天 24 小時執行容量,最終可能會增加成本。
成本最佳化建議
使用 Linux 容器而不是視窗
如果您使用 Linux 容器而不是 Windows 容器,則可以大幅節省成本。例如,如果您執行. NETEC2Linux 上的核心,而不是執行. NETEC2視窗上的框架。如果您使用ARM架構(AWS 重力子)而不是 x86,則可以額外節省 40% 的費用。
如果您打算針對現有的. NET架構應用程式時,您必須將這些應用程式移植到. NET(例如. NET
轉移到現代的另一個好處。 NET(也就是說,遠離. NET框架)是額外的現代化機會可用。例如,您可以考慮將應用程式重新架構為更具擴充性、敏捷性和成本效益的微服務架構。
下圖說明探索現代化機會的決策程序。
善加利用 Savings Plans
容器可以幫助您利用 Compute 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 工具如何針對最佳工作和容器大小產生建議。
一種方法是使用負載測試工具,例如分佈式負載測試中描述的
其他資源
-
Amazon ECS 啟動類型的理論成本優化:Fargate vs EC2
(AWS 容器博客文章) -
移植助理. NET
(AWS 文件) -
分散式負載測試 AWS
(AWS 解決方案程式庫) -
AWS Compute Optimizer 啟動對 Amazon ECS 服務的支持 AWS Fargate
(AWS 雲財務管理博客文章)