為 Windows 工作負載選取正確的執行個體類型 - AWS 方案指引

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

為 Windows 工作負載選取正確的執行個體類型

概觀

與內部部署環境相比,雲端中操作的工作負載有很大的差異,這是過度佈建的做法。購買內部部署使用的實體硬體時,您預期資本支出會持續一段預定的期間,通常為 3-5 年。為了因應硬體生命週期期間的預期成長,會使用比工作負載目前所需的資源更多的資源來取得硬體。因此,實體硬體通常會過度佈建,遠超過實際工作負載的需求。

虛擬機器 (VM) 技術已成為利用剩餘硬體資源的有效方法。管理員使用 vCPUs和 RAM 過度佈建的 VMs,讓 Hypervisor 透過將未使用的資源配置給每個 VM,來管理忙碌和閒置伺服器之間的實體資源使用量。管理 VMs 時,配置給每個 VM 的 vCPU 和 RAM 資源會以資源總管的形式運作,而非實際用量的指標。VM 資源過度配置可能會輕鬆超過可用運算資源的三倍。

Amazon Elastic Compute Cloud (Amazon EC2) 不會過度佈建基礎硬體上的 VMs,因為這是不必要的。雲端運算是一種營運費用,而不是資本費用,您只需支付使用的費用。如果您的工作負載未來需要更多資源,請在實際需要時佈建它們,而不是先佔。

選擇正確的 Amazon EC2 執行個體類型有數百種選項。如果您打算將 Windows 工作負載遷移至雲端, AWS 會提供 AWS OLA 協助您更了解目前的工作負載,並提供其在 上效能的範例 AWS。OLA AWS 分析旨在將適當的 EC2 執行個體類型和大小與您的實際現場部署使用量配對。

如果您已有工作負載在 Amazon EC2 上執行並尋求成本最佳化策略,本指南的本節可協助您識別 Amazon EC2 執行個體之間的差異及其對一般 Windows 工作負載的適用性。

成本最佳化建議

若要最佳化 EC2 執行個體類型的成本,建議您執行下列動作:

  • 為您的工作負載選擇正確的執行個體系列

  • 了解處理器架構之間的價格變化

  • 了解跨 EC2 世代的效能差異價格

  • 遷移至較新的執行個體

  • 使用爆量執行個體

為您的工作負載選擇正確的執行個體系列

請務必為您的工作負載選擇正確的執行個體系列。

Amazon EC2 執行個體分為下列各種群組:

  • 一般用途

  • 運算最佳化

  • 記憶體最佳化

  • 加速運算

  • 儲存最佳化

  • HPC 最佳化

大多數 Windows 工作負載都屬於下列類別:

  • 一般用途

  • 運算最佳化

  • 記憶體最佳化

若要進一步簡化,請考慮每個類別中的基準 EC2 執行個體:

  • 運算最佳化 – C6i

  • 一般用途 – M6i

  • 記憶體最佳化 – R6i

上一代的 EC2 執行個體在處理器類型中表現出細微差異。例如,C5 運算最佳化執行個體的處理器比 M5 一般用途執行個體或 R5 記憶體最佳化執行個體更快。最新一代的 EC2 執行個體 (C6i、M6i, R6i, C6a, M6a 和 R6a) 都會跨執行個體系列使用相同的處理器。由於處理器在最新一代的執行個體之間是一致的,因此執行個體系列之間的價格差異現在更取決於 RAM 的數量。執行個體擁有的 RAM 越多,成本就越高。

下列範例說明在 us-east-1 區域中執行之 Intel 4 vCPU 執行個體的每小時定價。

執行個體 vCPU RAM 每小時價格
c6i.xlarge 4 8 0.17 美元
m6i.xlarge 4 16 0.19 美元
r6i.xlarge 4 32 0.25 美元
注意

定價是以 us-east-1區域中的隨需每小時定價為基礎。

爆量執行個體

雖然關閉未使用的運算資源以避免產生費用是雲端運算的最佳實務,但並非所有工作負載都可以在每次需要時關閉和開啟。有些工作負載會長時間保持閒置,但必須每天 24 小時都能存取。

爆量執行個體 (T3) 提供一種方法,讓您整天維持線上尖峰或低使用率工作負載,同時保持低運算成本。爆量 EC2 執行個體具有執行個體可在短時間內使用的 vCPU 資源數量上限。這些執行個體採用以高載 CPU 點數為基礎的系統。這些點數會在一天的閒置期間累積。爆量執行個體提供不同的 vCPU-to-RAM 比率,讓它們成為在某些情況下運算最佳化執行個體,以及在其他情況下其他一般用途執行個體的替代方案。

下列範例說明 us-east-1區域中執行的 T3 執行個體 (即爆量執行個體) 的每小時定價。

執行個體 vCPU RAM (GB) 每小時價格
t3.nano 2 0.5 0.0052 美元
t3.micro 2 1 0.0104 美元
t3.small 2 2 0.0208 美元
t3.medium 2 4 0.0416 美元
t3.large 2 8 0.0832 美元
t3.xlarge 4 16 0.1664 美元
t3.2xlarge 8 32 0.3328 美元
注意

定價是以 us-east-1區域中的隨需每小時定價為基礎。

了解處理器架構之間的價格變化

Intel 處理器自成立以來即為 EC2 執行個體的標準。較早世代的 EC2 執行個體,例如 C5, M5 和 R5,不會指出 Intel 做為處理器架構 (因為這是預設值)。較新一代的 EC2 執行個體,例如 C6i, M6i 和 R6i,包含表示 Intel 處理器使用的「i」。

處理器架構註釋的變更是由於引入了其他處理器選項。與 Intel 最相似的處理器是 AMD (以「a」表示)。AMD EPYC 處理器使用相同的 x86 架構,並提供類似於 Intel 處理器的效能,但價格較低。如下列定價範例所示,AMD EC2 執行個體的運算成本相較於 Intel 執行個體提供大約 10% 的折扣。

Intel 執行個體 每小時價格 AMD 執行個體 價格 % 差異
c6i.xlarge 0.17 美元 c6a.xlarge 0.153 美元 10%
m6i.xlarge 0.192 美元 m6a.xlarge 0.1728 美元 10%
r6i.xlarge 0.252 美元 r6a.xlarge 0.2268 美元 10%
注意

定價是以 us-east-1區域中的隨需每小時定價為基礎。

第三個主要處理器架構選項是 EC2 執行個體上的 AWS Graviton 處理器 (以 "g" 表示)。Graviton 處理器由 設計 AWS,可在 Amazon EC2 上提供最佳價格效能。目前 Graviton 處理器不僅比 Intel 處理器便宜 20%,也提供 20% 或更高的效能提升。新一代的 Graviton 處理器預期會進一步擴展此效能差異,而測試顯示效能額外增加 25%。

Windows Server 無法在以 ARM 架構為基礎的 Graviton 處理器上執行。事實上,Windows Server 只會在 x86 處理器上執行。雖然您無法透過使用 Graviton 型 Windows Server 執行個體來提高 40% 的價格效能,但您仍可以搭配特定 Microsoft 工作負載使用 Graviton 處理器。例如,較新版本的 .NET 可以在 Linux 上執行。這表示這些工作負載可以使用 ARM 處理器,並受益於更快、更經濟實惠的 Graviton EC2 執行個體。

下列範例說明 us-east-1區域中執行的 Graviton 執行個體的每小時定價。

Intel 執行個體 每小時價格 Graviton 執行個體 每小時價格 % 差異
c6i.xlarge 0.17 美元 c6g.xlarge 0.136 美元 20%
m6i.xlarge 0.192 美元 m6g.xlarge 0.154 美元 20%
r6i.xlarge 0.252 美元 r6g.xlarge 0.2016 美元 20%
注意

定價是以 us-east-1區域中的隨需每小時定價為基礎。

下圖比較 M 系列執行個體的價格。

M 系列價格比較

了解跨 EC2 世代的價格效能差異

Amazon EC2 最一致的特性之一是,每個新一代都比上一代產品提供更好的價格效能。如下表所示,較新一代 EC2 執行個體的價格會隨後續版本而降低。

運算最佳化執行個體 每小時價格 一般用途執行個體 每小時價格 記憶體最佳化執行個體 每小時價格
C1.xlarge 0.52 美元 M1.xlarge 0.35 美元 r1.xlarge N/A
C3.xlarge 0.21 美元 M3.xlarge 0.266 美元 r3.xlarge 0.333 美元
C5.xlarge 0.17 美元 M5.xlarge 0.192 美元 r5.xlarge 0.252 美元
注意

定價是以 us-east-1區域中的隨需每小時定價為基礎。

下表比較不同世代 C 系列執行個體的成本。

C 系列價格比較

不過,第 6 代執行個體的價格與第 5 代相同,如下表所示。

運算最佳化執行個體 每小時價格 一般用途執行個體 每小時價格 記憶體最佳化執行個體 每小時價格
C5.xlarge 0.17 美元 M5.xlarge 0.192 美元 r5.xlarge 0.252 美元
C6i.xlarge 0.17 美元 M6i.xlarge 0.192 美元 r6i.xlarge 0.252 美元
注意

定價是以 us-east-1區域中的隨需每小時定價為基礎。

雖然成本相同,但由於處理器速度更快、聯網輸送量增強,以及 Amazon Elastic Block Store (Amazon EBS) 輸送量和 IOPS 增加,新一代 提供了卓越的價格效能。

其中一個最重要的價格效能改進是 X2i 執行個體的增強功能。此世代的執行個體提供比上一代多 55% 的價格效能。如下表所示,x2iedn 會在每個效能方面 (全部與上一代的價格相同) 展現改善。

執行個體 每小時價格 vCPU RAM 處理器速度 執行個體儲存體 聯網 Amazon EBS 輸送量 EBS IOPS
x1e.2xlarge 1.66 美元 8 244 2.3 GHz 237GB SSD 10 Gbps 125 MB/s 7400
x1iedn.2xlarge 1.66 美元 8 256 3.5 GHz 240GB NVMe SSD 25 Gbps 2500 MB/s 65000
注意

定價是以 us-east-1區域中的隨需每小時定價為基礎。

範例方案

請考慮追蹤交付車輛並希望改善 SQL Server 效能的分析公司範例。MACO SME 審查公司的效能瓶頸後,公司會從 x1e.2xlarge 執行個體轉換為 x2iedn.xlarge 執行個體。新的執行個體大小較小,但 x2 執行個體的增強功能可透過使用緩衝集區延伸來提高 SQL Server 效能和最佳化。這可讓公司從 SQL Server Enterprise Edition 降級為 SQL Server Standard Edition。它還使公司能夠將其 SQL Server 授權從 8 個 vCPUs減少到 4 vCPUs。

最佳化之前:

Server EC2 執行個體 SQL Server 版本 每月成本
ProdDB1 x1e.2xlarge Enterprise 3,918.64 美元
ProdDB2 x1e.2xlarge Enterprise 3,918.64 美元
總計     7,837.28 美元

最佳化後:

Server EC2 執行個體 SQL Server 版本 每月成本
ProdDB1 x2iedn.xlarge 標準 1,215.00 美元
ProdDB2 x2iedn.xlarge 標準 1,215.00 美元
總計     2,430.00 美元

所有合併後,從 x1e.2xlarge 執行個體變更為 x2iedn.xlarge 執行個體,可讓範例案例中的公司每月在生產資料庫伺服器上節省 5,407 美元。這可將工作負載的總成本降低 69%。

注意

定價是以 us-east-1區域中的隨需每小時定價為基礎。

遷移至較新的執行個體

較舊世代的 Amazon EC2 會在 Xen Hypervisor 上執行,而較新世代的 Amazon EC2 會在 AWS Nitro 系統上執行。Nitro 系統可將主機硬體的幾乎所有運算和記憶體資源交付給您的執行個體。這可改善整體效能。從 Xen 遷移到 Nitro 型執行個體時有特殊考量。例如,AWS Windows AMIs是使用預設設定和 Microsoft 安裝媒體使用的自訂來設定。自訂包含支援最新一代執行個體類型的驅動程式和組態 (在 Nitro 系統上建置的執行個體)。

如果您要從自訂 Windows AMIs 或從 Amazon 提供的 Windows AMIs 啟動執行個體,而這些執行個體是在 2018 年 8 月之前建立,建議您完成從遷移到 Amazon EC2 文件中最新一代執行個體類型的步驟。 Amazon EC2

使用爆量執行個體

雖然爆量執行個體是節省運算成本的好方法,但建議您在下列情況下避免這些執行個體:

  • 具有桌面體驗的 Windows Server 最低規格需要 2 GB 的 RAM。避免將 t3.micro 或 t3.nano 執行個體與 Windows Server 搭配使用,因為它們缺少最低數量的 RAM。

  • 如果您的工作負載尖峰,但閒置時間不夠長,無法建置爆量額度,則使用一般 EC2 執行個體比使用爆量執行個體更有效率。建議您監控 CPU 點數,以驗證這一點。

  • 在大多數情況下,建議您避免將爆量執行個體與 SQL Server 搭配使用。SQL Server 的授權是根據指派給執行個體vCPUs 數量。如果 SQL Server 在一天的大部分時間都處於閒置狀態,則您需要為未充分利用的 SQL 授權付費。在這些情況下,我們建議您將多個 SQL Server 執行個體合併到更大的伺服器上。

後續步驟

建議您採取下列後續步驟,以最佳化 Amazon EC2 Windows 執行個體的成本:

  • 使用最新一代的 EC2 執行個體以獲得最佳價格效能。

  • 搭配 AMD 處理器使用 EC2 執行個體,可降低 10% 的運算成本。

  • 選擇符合您工作負載的 EC2 執行個體類型,將資源使用率最大化。

下表顯示 Windows 工作負載的一般起點範例。還有其他選項可用,例如執行個體儲存磁碟區,可增強 SQL Server 工作負載,或具有更大 vCPU-to-RAM比率的 EC2 執行個體。建議您徹底測試工作負載,並使用 等監控工具 AWS Compute Optimizer 來協助進行必要的調整。

工作負載 典型 選用
Active Directory T3, M6i R6i
檔案伺服器 T3, M6i C6i
Web 伺服器 T3, C6i M6i, R6i
SQL Server R6i x2iedn、X2iezn

如果您必須變更 EC2 執行個體類型,程序通常只需要簡單的伺服器重新啟動。如需詳細資訊,請參閱 Amazon EC2 文件中的變更執行個體類型。 Amazon EC2

在您變更執行個體類型之前,建議您考慮下列事項:

  • 您必須先停止 Amazon EBS 支援的執行個體,才能變更其執行個體類型。請務必在執行個體停止時規劃停機時間。停止執行個體並變更其執行個體類型可能會花費數分鐘,重新啟動您的執行個體所需要花費的時間則會根據您應用程式的啟動指令碼而有所不同。如需詳細資訊,請參閱 Amazon EC2 文件中的停止和啟動執行個體

  • 當您停止和啟動執行個體時, 會將執行個體 AWS 移至新的硬體。如果您的執行個體具有公有 IPv4 地址, 會 AWS 釋出該地址,並為執行個體提供新的公有 IPv4 地址。如果您需要未變更的公有 IPv4 地址,請使用彈性 IP 地址

  • 如果在執行個體上啟用休眠,則無法變更執行個體類型。

  • 您無法變更 Spot 執行個體的執行個體類型。

  • 如果您的執行個體位於 Auto Scaling 群組中,Amazon EC2 Auto Scaling 會將停止的執行個體標記為運作狀態不佳,並可能會將其終止並啟動替代執行個體。若要避免這種情況,您可以在變更執行個體類型時,暫停群組的擴展程序。如需詳細資訊,請參閱 Amazon EC2 Auto Scaling 文件中的暫停和繼續 Auto Scaling 群組的程序。 Amazon EC2 Auto Scaling

  • 當您變更具有 NVMe 執行個體存放區磁碟區的執行個體類型時,更新的執行個體可能會有額外的執行個體存放區磁碟區,因為即使未在 Amazon Machine Image (AMI) 或執行個體區塊型儲存設備映射中指定,所有 NVMe 執行個體存放區磁碟區都可以使用。否則,更新後的執行個體通常會有與您在啟動原始執行個體時指定之執行個體儲存體磁碟區相同數目的執行個體儲存體磁碟區。

其他資源