合併執行個體 - AWS 規範指引

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

合併執行個體

本節著重於將多個SQL伺服器執行個體合併到相同伺服器的成本最佳化技術,以將授權成本降至最低並最大化資源使用率。

概觀

建立執行個體是安裝SQL伺服器資料庫引擎程序的一部分。SQL 伺服器執行個體是完整的安裝,包含自己的伺服器檔案、安全登入和系統資料庫 (主機、模型、msdb 和 tempdb)。由於執行個體擁有自己的所有檔案和服務,因此您可以在相同的作業系統上安裝多個SQL伺服器執行個體,而不會讓執行個體互相干擾。但是,由於執行個體都安裝在相同的伺服器上,因此它們都共用相同的硬體資源,例如運算、記憶體和聯網。

通常在生產環境中,每個伺服器只能使用單一SQL伺服器執行個體,如此「忙碌」執行個體就不會過度使用共用硬體資源。將自己的作業系統與自己的資源提供給每個SQL伺服器執行個體,比依賴資源管理更適合。對於需要大量 CPU RAM和資源的高效能SQL伺服器工作負載來說,這一點尤其如此。

不過,並非所有SQL伺服器工作負載都會使用大量資源。例如,某些組織會為其每個客戶指派自己的專用SQL伺服器執行個體,以用於合規或安全目的。對於通常不會處於作用中狀態的小型用戶端或用戶端,這表示使用最少的資源執行SQL伺服器執行個體。

Microsoft SQL Server 2019:授權指南 中所述,每個執行 SQL Server 的伺服器至少必須考慮四個CPU授權。這表示即使您執行的伺服器只有兩個 vCPUs,您仍然必須為四個 授權SQL伺服器vCPUs。根據 Microsoft 的公有SQL伺服器定價,如果您使用 SQL Server Standard 版,則差異為 $3,945。對於使用最少資源執行多個SQL伺服器執行個體的組織,必須授權未使用資源的合併成本可能相當高昂。

成本最佳化案例

本節探索的範例案例,將執行四個 Windows Server 伺服器之間的差異與SQL同時執行多個SQL伺服器執行個體的單一大型 Windows Server 伺服器進行比較。

如果每個SQL伺服器執行個體只需要 2 vCPUs 和 8 GB RAM,則除了每小時運算成本 $0.096 之外,SQL伺服器授權的每部伺服器總成本為 $7,890。

EC2 執行個體 vCPUs RAM 價格 vCPUs 授權 SQL 伺服器授權總成本
m6i.large 2 8 0.096 4 7,890 美元

將此擴展到四個伺服器,SQL伺服器授權的總成本為 31,560 美元,每小時運算成本為 0.384 美元。

EC2 執行個體 vCPUs RAM 價格 vCPUs 授權 SQL 伺服器授權總成本
4 個 m6i.large 2 32 0.384 16 31,560 美元

如果您將所有四個SQL伺服器執行個體合併到單一EC2執行個體,運算資源和運算的總數會保持不變。不過,透過移除不必要的SQL伺服器授權成本,您可以將執行工作負載的總成本降低 15,780 美元。

EC2 執行個體 vCPUs RAM 價格 vCPUs 授權 SQL 伺服器授權總成本
m6i.2xlarge 8 32 0.384 8 15,780 美元
注意

在上述表格中,運算成本會顯示us-east-1區域內執行 Windows Server 的 Amazon EC2 伺服器每小時隨需定價。SQL Server Standard Edition 授權成本是指 Microsoft 的公有SQL伺服器定價。

成本最佳化建議

如果您正在考慮合併SQL伺服器執行個體,最主要的問題是您要合併的每個執行個體的資源消耗。請務必取得長期效能指標,以便更了解每個伺服器上的工作負載模式。一些常見的資源消耗監控工具包括 Amazon CloudWatchWindows Performance Monitor (perfmon) 和 SQL Server 的原生監控工具

我們建議您在分析您的SQL伺服器工作負載是否可以合併為使用相同的伺服器資源時,考慮下列問題,而不會互相干擾:

  • 在您的穩定狀態期間會耗用哪些資源 (、CPU記憶體和網路頻寬)?

  • 尖峰期間會耗用哪些資源 (、CPU記憶體和網路頻寬)?

  • 尖峰發生的頻率為何? 尖峰是否一致?

  • 一個伺服器的資源尖峰是否與另一個伺服器的資源尖峰一致?

  • SQL 伺服器使用的儲存IOPS體和輸送量為何?

如果您想要使用結合SQL伺服器執行個體的計劃繼續,請參閱 Cloud Operations & Migrations 部落格上的在 Amazon 執行個體文章上執行多個SQL伺服器EC2執行個體。 AWS 此文章提供如何在SQL伺服器中進行組態變更以新增其他執行個體的指示。在開始之前,請考量在相同伺服器上安裝多個執行個體時的次要差異:

  • 預設SQL的伺服器資料庫執行個體會命名MSSQLSERVER並使用連接埠 1433。

  • 安裝在相同伺服器上的每個額外執行個體都是「已命名」的資料庫執行個體。

  • 每個具名執行個體都有唯一的執行個體名稱和唯一的連接埠。

  • SQL Server Browser 必須執行 以協調至具名執行個體的流量。

  • 每個執行個體都可以針對資料庫資料檔案和個別登入使用不同的位置。

  • SQL 伺服器最大伺服器記憶體設定必須根據每個執行個體的效能需求進行設定,其合併總數也會為基礎作業系統留下足夠的記憶體。

  • 您可以使用SQL伺服器原生備份和還原功能,或 AWS DMS 進行遷移或合併。

其他資源