

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

# SQL Server
<a name="sql-server"></a>

客戶在 上執行 Microsoft AWS 工作負載的時間超過 15 年，比任何其他雲端供應商都長。這主要是因為 AWS 在雲端中擁有最多的 Microsoft 應用程式體驗，並在下列領域提供最適合 Windows Server 和 Microsoft SQL Server 的平台：
+ 更高的效能和可靠性
+ 更高的安全性和身分服務
+ 更多遷移支援
+ 最廣泛且最深入的功能
+ 降低總擁有成本 (TCO)
+ 彈性的授權選項

AWS 支援建置和執行依賴 SQL Server 的 Windows 應用程式所需的一切，包括 Active Directory、.NET、SQL Server、Windows 桌面即服務，以及所有支援的 Windows Server 版本。憑藉久經考驗的專業知識， AWS 可協助您輕鬆提升和轉移、重構甚至現代化 Windows 工作負載。

**Topics**
+ [選擇高可用性和災難復原解決方案](sql-server-hadr.md)
+ [了解 SQL Server 授權](sql-server-licensing.md)
+ [為 SQL Server 工作負載選取正確的 EC2 執行個體](right-ec2-instance.md)
+ [合併執行個體](consolidate-instances.md)
+ [比較 SQL Server 版本](sql-server-editions.md)
+ [評估 SQL Server 開發人員版本](sql-server-dev.md)
+ [評估 Linux 上的 SQL Server](sql-server-linux.md)
+ [最佳化 SQL Server 備份策略](sql-server-backup.md)
+ [現代化 SQL Server 資料庫](modernize-sql-server.md)
+ [最佳化 SQL Server 的儲存體](storage-sql-server.md)
+ [使用 Compute Optimizer 最佳化 SQL Server 授權](sql-server-compute-optimizer.md)
+ [使用 Compute Optimizer 最佳化 SQL Server 大小](sql-server-sizing-compute-optimizer.md)
+ [檢閱 SQL Server 工作負載 Trusted Advisor 的建議](sql-server-trusted-advisor.md)

# 選擇高可用性和災難復原解決方案
<a name="sql-server-hadr"></a>

## 概觀
<a name="sql-server-hadr-overview"></a>

建議您為 上的 SQL Server 部署設計架構 AWS ，以符合您的業務需求，同時滿足[災難復原 (DR) 目標](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/disaster-recovery-dr-objectives.html)，包括復原時間目標 (RTO) 和復原點目標 (RPO)。下列解決方案可協助您為 Amazon Elastic Compute Cloud (Amazon EC2) 上的 SQL Server 設計正確的架構，同時最佳化 SQL Server 工作負載的成本。
+ **SQL Server Always On 可用性群組 **–** **SQL Server Always On 可用性群組可為 SQL Server 資料庫提供高可用性和災難復原 (HA/DR) 解決方案。可用性群組由一組一起容錯移轉的使用者資料庫組成。Always On 可用性群組也在資料庫層級提供備援，但不需要共用儲存，每個複本都有自己的本機儲存。您可以將此功能部署為 HA/DR 解決方案。如需詳細資訊，請參閱 Microsoft 文件中的[什麼是 Always On 可用性群組？](https://learn.microsoft.com/en-us/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server?view=sql-server-ver16)。
+ **SQL Server Always On 容錯移轉叢集執行個體 (FCI)** –** **SQL Server Always On FCIs使用 Windows Server 容錯移轉叢集 (WSFC) 在 SQL Server 執行個體層級提供 HA。FCIs需要共用儲存來託管資料庫。您可以使用共用區塊儲存或共用檔案儲存。例如，您可以使用 Amazon FSx for Windows File Server 或 Amazon FSx for NetApp ONTAP 做為具有多個可用區域的共用儲存解決方案。如需詳細資訊，請參閱 Microsoft 文件中的 [Always On 容錯移轉叢集執行個體 (SQL Server)](https://learn.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/always-on-failover-cluster-instances-sql-server?view=sql-server-ver16)。
+ **SIOS DataKeeper** –** **SIOS DataKeeper 可透過啟用跨越可用區域 和 的 SQL Server FCI，協助您同時滿足 HA 和 DR 需求 AWS 區域。SIOS DataKeeper 會使用本機 Amazon Elastic Block Store (Amazon EBS) 磁碟區建立叢集虛擬 SAN，並使用 HA 可用區域之間的同步複寫，同時使用區域和 之間的非同步複寫進行災難復原。如需詳細資訊，請參閱 SIOS 文件中的 [Windows 應用程式的高可用性保護](https://us.sios.com/products/windows/)。
+ **分散式可用性群組** –** **分散式可用性群組是一種特殊類型的可用性群組，跨越兩個不同的 Always On 可用性群組。可用性群組可以位於兩個不同的區域 （例如 `us-east-1`和 `us-west-1`)。您可以將分散式可用性群組視為可用性群組的可用性群組，因為基礎 Always On 可用性群組是在兩個不同的 WSFC 叢集上設定。部署分散式可用性群組需要 SQL Server Enterprise Edition。如需詳細資訊，請參閱 Microsoft 文件中的[分散式可用性群組](https://learn.microsoft.com/en-us/sql/database-engine/availability-groups/windows/distributed-availability-groups?view=sql-server-ver16)。
+ **日誌運送** –** **您可以實作日誌運送來保護跨多個區域的資料庫，在極少數情況下，區域會受到影響且無法使用。根據交易和日誌運送頻率，您可以在幾分鐘內達到 RPO 和 RTO。如需詳細資訊，請參閱 Microsoft 文件中的[關於日誌運送 (SQL Server)](https://learn.microsoft.com/en-us/sql/database-engine/log-shipping/about-log-shipping-sql-server?view=sql-server-ver16)。
+ **AWS Elastic Disaster Recovery** – Elastic Disaster Recovery 是一種軟體即服務 (SaaS) 應用程式，可針對 DR 目的管理從任何基礎設施到 AWS 的伺服器複寫。您也可以使用 Elastic Disaster Recovery 跨區域複寫 SQL Server。Elastic Disaster Recovery 是一種代理程式型解決方案，可將包括作業系統、所有安裝的應用程式和所有資料庫在內的整個虛擬機器複寫到預備區域。如需詳細資訊，請參閱 [Elastic Disaster Recovery 文件中的什麼是 Elastic Disaster Recovery？](https://docs.aws.amazon.com/drs/latest/userguide/what-is-drs.html)。
+ **AWS Database Migration Service (AWS DMS)** –** **AWS DMS 支援資料往返即時遷移 AWS，包括不同的區域。您可以使用此功能，在不同的區域中設定個別的 SQL Server 執行個體，做為災難復原資料庫。如需詳細資訊，請參閱 AWS DMS 文件中的[什麼是 AWS Database Migration Service？](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)。

## SQL Server Always On 可用性群組
<a name="sql-server-always-on"></a>

如果您只將 SQL Server Enterprise Edition 用於高可用性 [Always On 可用性群組](https://learn.microsoft.com/en-us/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server?view=sql-server-ver16)，則可以利用基本可用性群組降級為 SQL Server Standard Edition。您可以使用基本可用性群組，而不是 Always On 可用性群組，將成本從 65% 降低到 75%。

**注意**  
如需不同 SQL Server 版本之間成本差異的其他資訊，請參閱本指南的[比較 SQL Server 版本](sql-server-editions.md)一節。

**功能**
+ SQL Server Standard 版提供
+ 兩個複本的限制 （主要和次要）
+ 次要複本上沒有讀取存取權
+ 次要複本上沒有完整性檢查

**限制**
+ 每個可用性群組僅支援一個可用性資料庫
+ 基本可用性群組不能是分散式可用性群組的一部分

下圖顯示 Windows Server 容錯移轉叢集解決方案的範例架構。



![\[Windows Server 容錯移轉叢集架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/wfc_arch.png)


## SQL Server Always On 容錯移轉叢集執行個體
<a name="sql-server-always-on-failover"></a>

您可以使用容錯移轉叢集執行個體 (FCIs) 來確保持續的資料庫操作，同時將停機時間降至最低，並降低資料遺失的風險。如果您正在尋找 SQL Server 資料庫的高可用性，而沒有僅供讀取複本組態，FCIs會提供可靠的解決方案。

與可用性群組不同，FCIs可以提供可靠的容錯移轉解決方案，而不需要 SQL Server Enterprise Edition。相反地，FCIs只需要 SQL Server Standard Edition 授權。您可以使用 FCIs將 SQL Server 授權成本降低 65-75%。

**注意**  
如需 SQL Server 版本之間成本差異的其他資訊，請參閱本指南的[比較 SQL Server 版本](sql-server-editions.md)一節。

考慮下列各項：
+ Amazon FSx for Windows File Server 提供功能強大的解決方案，可滿足您的 SQL Server FCI 共用儲存需求。您可以使用 FSx for Windows File Server 來避免購買儲存複寫解決方案的授權，並自行管理共用儲存。這可以大幅節省 30-40% 的成本。如需詳細資訊，請參閱 AWS Storage Blog 上的[使用 Amazon FSx for Windows File Server 簡化 Microsoft SQL Server 高可用性部署](https://aws.amazon.com/blogs/storage/simplify-your-microsoft-sql-server-high-availability-deployments-using-amazon-fsx-for-windows-file-server/)文章。
+ 透過[軟體保證利益摘要](https://download.microsoft.com/download/0/0/3/0039F316-45CF-4083-AA6E-C35DA9D25C1B/SA_InteractiveBenefitsChart.pdf) （可下載的 PDF) 和自攜授權 (BYOL) 模型，只要次要伺服器是被動伺服器，您就可以利用被動容錯移轉利益。這可節省 SQL 授權的成本，因為您不必將授權提供給叢集的被動節點。

下圖顯示使用 FSx for Windows File Server 的 SQL Server FCI 範例架構。



![\[FSx for Windows File Server 架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/fsx_arch.png)


## SIOS DataKeeper
<a name="sql-server-sios-datakeeper"></a>

如果您打算部署 SQL Server FCIs，建議您考慮共用儲存需求 AWS。傳統的內部部署安裝通常會使用儲存區域網路 (SAN) 來滿足共用儲存需求，但這不是可行的選項 AWS。Amazon FSx for Windows File Server 是建議的 SQL Server FCI 儲存解決方案 AWS，但其限制會防止在不同 中新增叢集伺服器 AWS 區域。

您可以使用 [SIOS DataKeeper](https://aws.amazon.com/blogs/architecture/field-notes-implementing-ha-and-dr-for-microsoft-sql-server-using-always-on-failover-cluster-instance-and-sios-datakeeper/) 來建立同時涵蓋可用區域和區域的 SQL Server FCI，同時將成本降低 58-71%。SIOS DataKeeper 可協助您實現 FCI 的高可用性優勢。這使得 SIOS DataKeeper 成為組織經濟實惠且可靠的解決方案。

請考慮使用 SIOS DataKeeper 的下列其他優點：
+ SIOS DataKeeper 會使用本機 EBS 磁碟區建立叢集虛擬 SAN，並在可用區域之間使用同步複寫以獲得高可用性。為了進行災難復原，SIOS DataKeeper 會使用區域之間的非同步複寫。
+ SIOS DataKeeper 使用 SQL Server Standard Edition 提供企業級叢集功能。相較於使用 SQL Server Enterprise Edition 的 SQL Server Always On 可用性群組實作高可用性，這可將 SQL Server 授權成本降低 65-75%。使用 SIOS DataKeeper，您可以建立高度可用、靈活且符合成本效益的 SQL Server 環境，以滿足組織的需求。

**注意**  
如需 SQL Server 版本之間成本差異的其他資訊，請參閱本指南的[比較 SQL Server 版本](sql-server-editions.md)一節。

下圖顯示使用叢集虛擬 SAN 解決方案的 SQL Server FCI 架構範例。



![\[使用叢集虛擬 SAN 解決方案的 SQL Server FCI。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/clustered_vsan_arch.png)


## Always On 可用性群組
<a name="sql-server-alwayson-avail-groups"></a>

您可以將 Always On 可用性群組用於高可用性和災難復原目的。您可以透過在一個區域中的兩個可用區域部署 SQL Server 來實現高可用性。您可以透過跨區域擴展可用性群組來實現災難復原。

下圖顯示以 Always On 可用性群組為基礎的解決方案架構範例。圖表區域 1 中的複本使用同步遞交，可提供可用性群組的自動容錯移轉。區域 2 中的複本使用非同步遞交，這將需要可用性群組的手動容錯移轉。



![\[Always On 可用性群組架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/alwayson_ag_arch.png)


## 分散式可用性群組
<a name="sql-server-distributed-avail-groups"></a>

對於您無法犧牲可靠性或災難復原的任務關鍵 SQL Server 部署，我們建議採用多區域方法。將您的可用性群組分散到多個區域是最有彈性的解決方案，可維持業務持續性並將停機時間降至最低。

此架構充分利用 Amazon FSx for Windows File Server 的功能，包括共用儲存、同步區塊層級複寫和 SQL Server FCIs。這些功能可讓您建立跨多個可用區域的高可用性 SQL Server 環境。透過在另一個區域中複寫此設定，您可以取得完全備援的系統，即使是最嚴重的中斷也能處理。此解決方案的區別在於其提供的彈性和安全性層級。分散式可用性群組的網域獨立架構可讓基礎 Windows 叢集伺服器加入不同的 Active Directory 網域，而憑證型身分驗證可確保 SQL Server 環境的最大保護，並為多區域 DR 策略提供高 RTO 和 RPO 需求。如需有關建置多區域架構的資訊，請參閱《 [架構部落格》中的 欄位備註：使用 FCI 和分散式可用性群組為 SQL Server 建置多區域](https://aws.amazon.com/blogs/architecture/field-notes-building-a-multi-region-architecture-for-sql-server-using-fci-and-distributed-availability-groups/) AWS 架構。

下圖顯示使用分散式可用性群組的多區域解決方案的範例架構。



![\[多區域架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/multi_region_arch.png)


## 日誌傳送
<a name="sql-server-log-shipping"></a>

日誌運送是一種經過驗證、可靠且符合成本效益的方法，可在發生意外中斷時跨區域保護資料庫。幾十年來，組織一直使用日誌運送來保護其資料。

如果您在 上實作日誌運送 AWS，您可以根據交易頻率和日誌運送任務，在幾分鐘內達到 RPO 和 RTO。萬一區域變得無法存取，日誌運送會確保您的資料安全且可復原。

請考慮下列使用日誌運送的其他優點：
+ 透過使用日誌運送來跨區域進行災難復原彈性，以降低成本並滿足您的業務需求。日誌運送可降低您的 TCO，因為您只需要 SQL Server Standard Edition 或 SQL Server Web Edition 授權。
+ 使用具有有效[軟體保證](https://download.microsoft.com/download/0/0/3/0039F316-45CF-4083-AA6E-C35DA9D25C1B/SA_InteractiveBenefitsChart.pdf)的日誌運送，從災難復原/被動伺服器移除授權成本。當您搭配軟體保證使用日誌運送時，只需要授權主要/作用中 SQL Server。
+ 透過免除 SQL Server Enterprise Edition 在區域之間設定分散式可用性群組的需求，將 SQL Server 授權成本降低 65-75%。您可以使用 SQL Server Standard Edition 和 SQL Server FCIs結合日誌運送來達成此目的，以符合您的災難復原需求。

**注意**  
如需 SQL Server 版本之間成本差異的其他資訊，請參閱本指南的[比較 SQL Server 版本](sql-server-editions.md)一節。

如需詳細資訊，請參閱《 AWS 架構部落格》中的[使用 SQL Server FCI 的日誌運送搭配 Amazon FSx for Windows 組態擴展 SQL Server DR](https://aws.amazon.com/blogs/architecture/extend-sql-server-dr-using-log-shipping-for-sql-server-fci-with-amazon-fsx-for-windows-configuration/)。

下圖顯示日誌運送解決方案的範例架構。



![\[日誌運送架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/log_shipping_arch.png)


## AWS Database Migration Service
<a name="sql-server-aws-dms"></a>

您可以使用 AWS Database Migration Service (AWS DMS) 根據您的應用程式需求設計 HA/DR 解決方案。 AWS DMS 可讓您輕鬆地將資料複製到相同區域 (HA) 或跨區域 (DR) 的次要 SQL Server 資料庫。這種方法在技術上健全，可讓您在最佳化資源用量的同時，最大化對 AWS 基礎設施的投資。

AWS DMS 是一項經濟實惠的服務。您只需支付傳輸程序和任何其他日誌儲存期間使用的 CPU 資源的費用。這表示您可以受益於此解決方案，而不會產生重大的額外成本。您可以使用 AWS DMS 來確保您的資料可用且可存取，同時將與授權和資源用量相關的成本降至最低。

下圖顯示以 為基礎的解決方案的範例架構 AWS DMS。



![\[AWS DMS 架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/aws_dms_arch.png)


## AWS Elastic Disaster Recovery
<a name="sql-server-aws-edr"></a>

有些組織必須確保所有關鍵業務應用程式都已制定災難復原計畫。在過去，許多這些組織大量投資於傳統災難復原解決方案，這需要您預先建置和維護整個重複的基礎設施。這種方法成本高昂、耗時且難以擴展。

現在，您可以使用 AWS Elastic Disaster Recovery 來消除預先建置災難復原基礎設施的需求。除非必要，否則災難復原機器不會在 Elastic Disaster Recovery 中啟動，因此您只需為在需要時使用的項目付費。這表示您可以大幅降低軟體授權和高效能運算成本。

此外，災難復原解決方案的預備區域包含低成本的 Amazon Elastic Block Store (Amazon EBS) 磁碟區。EBS 磁碟區可進一步降低佈建重複資源的成本。這可讓您降低整體災難復原成本，同時維持強大且可靠的災難復原解決方案，以符合您的業務需求。您可以使用 Elastic Disaster Recovery 來專注於核心業務活動，同時 AWS 負責災難復原解決方案的基礎基礎設施。

對於 SQL Server，您可以使用 Elastic Disaster Recovery 作為經濟實惠的災難復原選項。如果您使用作用中的軟體保證，則會涵蓋容錯、高可用性 SQL Server 架構中被動節點的授權。不過，您仍需支付被動伺服器上線的運算成本。使用 Elastic Disaster Recovery，主要伺服器可以複寫到 DR 環境，而無需維護有效的軟體保證，也無需支付災難復原運算成本。這種節省的組合可以降低 50% 以上的 SQL Server 災難復原成本。

下圖顯示以 Elastic Disaster Recovery 為基礎的解決方案的範例架構。



![\[彈性災難復原架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/aws_drs_arch.png)


如需詳細資訊，請參閱 AWS 部落格上的[如何在 Microsoft 工作負載上使用 還原的 DR 網站上設定 SQL Server 的高可用性 AWS Elastic Disaster Recovery](https://aws.amazon.com/blogs/modernizing-with-aws/set-up-high-availability-for-sql-server-at-dr-site-using-aws-elastic-disaster-recovery/)。

## 成本比較
<a name="sql-server-cost-comparison"></a>

下表比較本節涵蓋的 HA/DR 解決方案成本。基於此比較的目的，會進行下列假設：
+ **執行個體類型** – r5d.xlarge
+ **授權類型** – 同時包含 Windows 和 SQL Server 的授權
+ **區域** – `us-east-1`


****  

| 解決方案 | 高可用性 | 災難復原 | 企業版 | 標準版本 | Cost | 
| --- | --- | --- | --- | --- | --- | 
| 日誌傳送 | 否 | 是 | 是 | 是 | SQL Server Enterprise 版本：\$132，674.8 (2 個節點）SQL Server Standard 版本：\$114，804.4 (2 個節點） | 
| Always On 可用性群組 | 是 | 是 | 是 | 是，但基本可用性群組 (2 個節點） | SQL Server Enterprise 版本：\$132，674.8 (2 個節點）SQL Server Standard 版本：\$114，804.4 (2 個節點） | 
| Always On FCIs | 是 | 否 | 是 | 是 (2 個節點） | SQL Server Standard 版本：14，804.4 美元 | 
| 分散式可用性群組 | 是 | 是 | 是 | 否 | SQL Server Enterprise 版本：\$165，349.6 (4 個節點） | 
| 彈性災難復原 | 否 | 是 | 是 | 是 | 近似值。 每月 107.48 USD，用於複寫 1 個執行個體和 1 TB 的儲存體**注意**：彈性災難復原會按每個複寫伺服器每小時計費。無論磁碟數量、儲存體大小、演練或復原啟動次數，或是您正在複寫的區域，成本都相同。 | 
| SIOS Data Keeper | 是 | 是 | 是 | 是 | 具有軟體保證的 Always On 可用性群組 (2 個節點、24 個核心）：213，480 美元使用 SIOS DataKeeper 和軟體保證在 SQL Server Standard 版上執行的 2 節點 SQL Server 叢集：\$161，530 (2 個節點） | 
| AWS DMS | 否 | 是 | 是 | 是 | r5.xlarge 執行個體和 1 TB 儲存體每月 745.38 美元 | 

## 成本最佳化建議
<a name="sql-server-opt-rec"></a>

我們建議您採取下列後續步驟，選擇符合您組織需求的 HA/DR 解決方案：
+ 檢閱本指南的[為 SQL Server 工作負載選取正確的 EC2 執行個體](right-ec2-instance.md)一節。
+ 透過在尖峰工作負載期間執行效能計數器，判斷工作負載的 IOPS 和輸送量需求：
  + IOPS = 磁碟讀取/秒 \$1 磁碟寫入/秒
  + 輸送量 = 磁碟讀取位元組/秒 \$1 磁碟寫入位元組/秒
+ 使用下列儲存磁碟區類型可提升效能並節省成本：
  + `tempdb` 和緩衝集區擴充功能的 NVMe 執行個體儲存
  + 資料庫檔案的 io2 磁碟區
+ 使用 [AWS Trusted Advisor](https://docs.aws.amazon.com/awssupport/latest/user/trusted-advisor-check-reference.html) 以取得 Amazon EC2 上 SQL Server 成本最佳化的建議。您不需要安裝 代理程式 Trusted Advisor 來執行 SQL Server 最佳化檢查。 會 Trusted Advisor 檢查您的 Amazon EC2 SQL Server 包含授權的執行個體組態，例如虛擬 CPUs(vCPUs)、版本和版本。然後，根據最佳實務 Trusted Advisor 提出建議。
+ 針對 Amazon EC2 執行個體和 Amazon EBS 適當調整大小建議 AWS Compute Optimizer 使用 。
+ 使用 [AWS 定價計算工具](https://calculator.aws/#/) 設計用於成本估算的 HA/DR 策略。
+ 若要判斷從 SQL Server Enterprise Edition 降級為 SQL Server Standard Edition 是否為可能的選項，請使用 [sys dm\$1db\$1persisted\$1sku\$1features](https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-persisted-sku-features-transact-sql?view=sql-server-ver16) 動態管理檢視來識別目前資料庫中作用中的版本特定功能。
**注意**  
使用包含授權的 EC2 執行個體時，SQL Server 版本變更需要Side-by-side遷移。
+ 執行半年或每年災難復原演練，以更完善地建構設計，以使用定義的 RTO 和 RPO 來復原資料庫。這也可以協助您識別任何架構弱點。

## 其他資源
<a name="sql-server-resources"></a>
+ [使用 Amazon FSx for Windows File Server 簡化您的 Microsoft SQL Server 高可用性部署](https://aws.amazon.com/blogs/storage/simplify-your-microsoft-sql-server-high-availability-deployments-using-amazon-fsx-for-windows-file-server) (AWS 儲存部落格）
+ [欄位備註：使用 FCI 和分散式可用性群組為 SQL Server 建置多區域架構](https://aws.amazon.com/blogs/architecture/field-notes-building-a-multi-region-architecture-for-sql-server-using-fci-and-distributed-availability-groups/) (AWS 架構部落格）
+ 在 [上架構 SQL Server 的災難復原 AWS：第 1 部分](https://aws.amazon.com/blogs/database/part-1-architect-a-disaster-recovery-for-sql-server-on-aws/) (AWS 資料庫部落格）
+ [Amazon FSx for Windows 的 Microsoft SQL 高可用性](https://www.youtube.com/watch?v=8dsRkVLy0Nc) (YouTube)
+ [使用 Amazon EBS 最大化 Microsoft SQL Server 效能](https://aws.amazon.com/blogs/storage/maximizing-microsoft-sql-server-performance-with-amazon-ebs/) (AWS 儲存部落格）
+ [比較您的內部部署儲存模式與 AWS 儲存服務 ](https://aws.amazon.com/blogs/storage/comparing-your-on-premises-storage-patterns-with-aws-storage-services/)(AWS 儲存部落格）
+ [計劃將資料中心 NAS 取代為 Amazon FSx File Gateway](https://aws.amazon.com/blogs/storage/planning-to-replace-a-data-center-nas-with-amazon-fsx-file-gateway/) (AWS 儲存部落格）
+ 在 [上最佳化高可用性 SQL Server 部署的成本 AWS](https://aws.amazon.com/blogs/storage/optimizing-cost-for-your-high-availability-sql-server-deployments-on-aws/) (AWS 儲存部落格）
+ [如何使用 (Microsoft 工作負載開啟） 設定 SQL Server Always On 可用性群組的災難復原 AWS Elastic Disaster Recovery](https://aws.amazon.com/blogs/modernizing-with-aws/how-to-set-up-disaster-recovery-for-sql-server-always-on-availability-groups-using-aws-elastic-disaster-recovery/) AWS
+ [如何在使用 (Microsoft 工作負載開啟） 還原的 DR 網站上設定 SQL Server 的高可用性 AWS Elastic Disaster Recovery](https://aws.amazon.com/blogs/modernizing-with-aws/set-up-high-availability-for-sql-server-at-dr-site-using-aws-elastic-disaster-recovery/) AWS

# 了解 SQL Server 授權
<a name="sql-server-licensing"></a>

## 概觀
<a name="sql-server-licensing-overview"></a>

隨著越來越多的企業將工作負載移至雲端，雲端平台上的成本最佳化已成為首要任務。授權是與執行 Microsoft 工作負載相關的最重要成本之一 AWS。本節說明如何 AWS 透過最佳化 SQL Server 的 Microsoft 授權來最佳化 的成本。

## AWS 授權選項
<a name="sql-server-aws-licensing-options"></a>

AWS 為授權提供各種彈性的成本最佳化選擇。這些授權選項旨在協助您降低成本、維持合規性，並滿足您的業務需求。



![\[檢閱授權選項，例如購買或攜帶授權。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/aws_licensing_options.png)


AWS 將授權分類為三種主要類型：

1. **包含授權** – 此授權選項可讓您隨需購買和使用授權，只需支付使用量的費用。包含授權的選項非常適合您在授權使用方面需要彈性，並希望避免預付成本的情況。您可以從 Windows Server、SQL Server 和其他 Microsoft 產品中選擇。

1. **使用自有授權 (BYOL) 產品搭配授權行動**性 – 此授權選項適用於您已擁有現有授權，並希望在雲端使用這些授權的案例。 AWS 可讓客戶透過 Microsoft 的授權[行動性](https://www.microsoft.com/en-us/licensing/licensing-programs/software-assurance-license-mobility)計劃，將自己的授權帶到雲端。您可以將具有授權行動性的產品，例如具有軟體保證 (SA) 的 SQL Server，帶到共用或專用租用，以降低 AWS 執行個體成本。

1. **沒有授權行動性的 BYOL 產品** – 對於沒有授權行動性的 Microsoft 產品，例如 Windows Server， AWS 提供在雲端使用這些產品的專用選項。此外，專用主機提供在實體核心層級進行授權的機會。這可為您節省 50% 或更多執行工作負載所需的授權。對於大多數時間執行的穩定且可預測的工作負載，專用主機是很好的選擇。

## 取得授權的成本影響
<a name="sql-server-cost-bringing-licenses"></a>

使用授權可能會對執行 Microsoft 工作負載的成本產生重大影響 AWS。如果您使用自己的授權，您不需要為在雲端中執行的執行個體支付額外的授權成本。這可能會導致大幅節省成本。

下列比較顯示全年無休執行單一 c5.xlarge 執行個體的隨需每月成本：
+ Windows Server \$1 SQL Server Enterprise Edition：每月 1353 美元 （包含授權）
+ Windows Server \$1 SQL Server Standard 版：每月 609 美元 （包含授權）
+ 僅限 Windows Server：每月 259 美元 （包含授權）
+ 僅限運算 (Linux)：每月 127 美元

最後，自攜授權可能會對執行 Microsoft 工作負載的成本產生重大影響 AWS。如果您使用現有的授權，您可以降低授權成本，並節省整體 AWS 帳單的費用。

## 授權最佳化
<a name="sql-server-license-optimization"></a>

最佳化和授權評估 AWS (AWS OLA) 可以降低運算和授權成本，協助您最佳化授權。 AWS OLA 旨在評估在遷移計劃之工作負載上執行的工作負載 AWS 或工作負載的授權需求。 AWS OLA 提供最佳化授權使用的建議。

最佳化授權用量的關鍵策略之一是[正確調整執行個體的大小](rightsize.md)。適當調整大小包括根據工作負載的 CPU、記憶體和儲存需求，選擇適合的執行個體類型。透過選擇適當的執行個體大小，您可以確保以經濟實惠的方式使用資源。這可能會導致大幅節省成本。

使用 Microsoft 軟體授權，軟體執行的核心數量是決定授權成本的關鍵因素。例如，Windows Server 和 SQL Server 授權通常根據核心數量進行授權。透過正確調整執行個體大小，您可以降低 Microsoft 軟體執行的核心數量，進而降低執行個體的成本和所需的授權數量。

## 成本最佳化建議
<a name="sql-server-lic-opt-rec"></a>

最佳化授權是成本最佳化的關鍵元件 AWS。透過實作正確的策略，您可以降低授權成本、維持合規性，並從授權投資中獲得最佳價值。本節概述多種授權最佳化策略。

### 攜帶您的合格 Windows Server 授權
<a name="sql-server-rec-byol-windows"></a>

使用您自己的 Windows Server 授權是授權最佳化的最有效策略之一。此策略可讓您利用現有的投資來減少 AWS 支出。

例如，如果您在 1/10/2019 之前購買授權，或根據在該日期之前簽署的作用中 Enterprise Agreement，以校正形式購買授權，則可以在 [Amazon EC2 專用主機](https://aws.amazon.com/ec2/dedicated-hosts/)上部署 Windows Server 2019 和舊版。此規則是根據 Microsoft 在 2019 年針對沒有授權行動性之產品的授權條款及條件所做的變更，例如 Windows Server，當部署在[列出的供應商](https://www.microsoft.com/licensing/docs/view/Listed-Providers) （例如 Alibaba AWS或 Google Cloud) 上時。根據新條款，您無法將自己的 Windows Server 授權帶到 ， AWS 但必須改用包含授權的執行個體。不過，如果您在該日期之前購買永久授權，您仍然可以在 Amazon EC2 專用主機上部署這些 Windows Server 授權。

### 實體層級授權
<a name="sql-server-rec-physical"></a>

實體核心層級的授權可讓您僅授權主機的實體核心，因此您可以部署最多數量的執行個體，而不會影響所需的授權數量。這通常是使用 Windows Server Datacenter 和 SQL Server Enterprise Edition 來完成。

例如，請考慮具有 48 個核心的 R5 專用主機，這會轉換為 96 vCPUs。如果您使用 Windows Server Datacenter 版本，則只需要 48 個授權。這可讓您部署最多 96 vCPUs 的執行個體組合，如下圖所示。

![\[實體層級授權\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/r5_dh_licenses.png)


如果您有足夠的工作負載來最大化可在主機上執行的執行個體數量，這種方法可能特別符合成本效益。透過在實體核心層級進行授權，您可以避免每個執行個體的額外授權成本，並實現授權投資的最佳價值。

### SQL Server 實體核心層級的授權
<a name="sql-server-rec-physical-core"></a>

在共用租用中，SQL Server 授權是根據配置給執行個體的 vCPUs 數量。相反地，使用專用主機，您可以在實體核心層級或 vCPU 層級授權 SQL Server Enterprise Edition。

如同先前的 R5 專用主機範例，如果您在實體核心層級授權 SQL Server Enterprise Edition，則只需要 48 個 SQL Server Enterprise Edition 授權即可授權主機。相反地，在共用租用中，只有 vCPU 授權的選項，您必須擁有相同工作負載的 96 個 SQL Server Enterprise Edition 授權。因此，相較於共用租用，專用主機最多可為您節省 50% 的 SQL Server 授權成本。這是除了透過使用合格的 Windows 授權來節省執行個體成本之外。

### 合併 SQL Server 執行個體
<a name="sql-server-rec-consolidate-instances"></a>

[SQL Server 整合](consolidate-instances.md)是將多個 SQL Server 執行個體合併到一個伺服器的程序。SQL Server 每個執行個體至少需要四個核心授權，即使執行個體只有兩個 vCPUs。這表示在少於四個核心的伺服器上執行 SQL Server 可能會導致您過度授權這些執行個體，並在必要時使用更多授權。

![\[SQL Server 整合\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/sql_server_consolidation.png)


例如，將兩個具有兩個 vCPUs執行個體合併為具有四個 vCPUs單一執行個體，可將授權需求降低 50%。這是因為只需要四個核心授權，而不是八個。

如需整合的詳細資訊，請參閱本指南的 [SQL Server 整合](consolidate-instances.md)一節。

### 降級 SQL Server 版本
<a name="sql-server-rec-downgrade-editions"></a>

[變更 SQL Server 版本](sql-server-editions.md)可以是最佳化授權用量和降低成本的關鍵策略。SQL Server 企業版比標準版更昂貴，因此降級可以大幅節省成本。

透明資料加密 (TDE) 和 Always On 可用性群組是 SQL Server Enterprise Edition 中的兩個熱門功能。不過，如果您不需要完整的 SQL Server Enterprise Edition 功能集，您可以考慮這些功能的成本效益替代方案。例如，您可以從 SQL Server 2019 開始取得 SQL Server Standard 版中的 TDE。取代 Always On 可用性群組，您可以在 FSx for Windows File Server 上使用容錯移轉叢集與共用儲存，以獲得 SQL Server Standard Edition 的高可用性。

透過從 SQL Server Enterprise Edition 降級為 SQL Server Standard Edition，您可以大幅降低授權成本。如需詳細資訊，請參閱 AWS Storage Blog [上的 上高可用性 SQL Server 部署的最佳化成本 AWS](https://aws.amazon.com/blogs/storage/optimizing-cost-for-your-high-availability-sql-server-deployments-on-aws/)。

除了降低授權成本之外，降級 SQL Server 版本也有助於降低您的軟體保證支出，並協助您避免未來的校正。如果您將未使用的授權退回到機架，您可以避免額外的授權成本，並從您的授權投資中獲得最佳價值。

請務必仔細評估 SQL Server 工作負載，並判斷哪些功能對您的業務需求至關重要。如需詳細資訊，請參閱 AWS Prescriptive Guidance [中的評估您的環境](https://docs.aws.amazon.com/prescriptive-guidance/latest/evaluate-downgrading-sql-server-edition/assess-environment.html)，並判斷您的 Microsoft SQL Server 資料庫是否使用 SQL Server Enterprise Edition 特定功能。

如果您選擇正確的 SQL Server 版本，並使用 SQL Server Enterprise Edition 功能的替代方案，您可以大幅節省成本，同時保持合規性並滿足您的業務需求。如需降級選項的詳細資訊，請參閱本指南的[比較 SQL Server 版本](sql-server-editions.md)一節。

### 在非生產環境中使用 SQL Server Developer Edition
<a name="sql-server-rec-dev-edition"></a>

在非生產環境中，您可以在內部部署環境中使用 MSDN 訂閱來部署 SQL Server 的可授權版本，例如 Enterprise 或 Standard Edition。不過，MSDN 訂閱沒有授權行動性。因此，如果您遷移到 AWS，則無法將這些授權帶過來。您必須改用 SQL Server Developer Edition。

SQL Server Developer Edition 是 SQL Server 的完整功能版本，可免費使用。此版本適用於 SQL Server 2016 版和更新版本。您可以從 Microsoft 網站下載。SQL Server 開發人員版本旨在用於所有非生產環境，例如開發、測試和預備，只要它未連接到即時生產資料。

如果您在非生產環境中使用 SQL Server Developer Edition，您可以避免額外的授權成本。如需詳細資訊，請參閱本指南[的評估 SQL Server 開發人員版本](sql-server-dev.md)一節。

### 最佳化 SQL Server 工作負載的 CPU
<a name="sql-server-rec-cpu-sql"></a>

在某些情況下，由於 RAM 或聯網限制等其他因素，您可能需要選擇 CPU 超過工作負載所需CPUs的執行個體類型。不過， AWS 提供解決方案，協助您在這些情況下最佳化授權成本。

您可以像大多數使用 SQL Server 核心授權的客戶一樣，停用超執行緒或關閉 EC2 執行個體上的 CPUs，以限制主機的可用 CPUs 數量。此選項可讓您利用 RAM 等其他執行個體功能，同時節省購買額外授權的成本。

例如，如果您部署 r5.4xlarge 執行個體，因為工作負載需要 128 GB 的記憶體，但只需要八個 SQL Server 核心，則您可以停用只有八個作用中 CPUs的執行個體超執行緒。透過這樣做，您可以節省 50% 的必要 SQL Server 授權，因為您只需要授權目前正在使用的八個核心。


****  

| 執行個體類型 | vCPUs總數 | 具備最佳化 CPUs功能的作用中 vCPU | SQL Server 授權節省 | 
| --- | --- | --- | --- | 
| r5.4xlarge | 16 | 8 | 50% | 
| r5.12xlarge | 48 | 8 | 83% | 

最佳化 CPU 功能可以在 Amazon EC2 啟動組態或修改現有執行個體時設定。它也可以套用至 BYOL 和包含授權的 Amazon EC2 執行個體。此彈性可協助您將 CPU 權利化為工作負載的需求，同時減少 Windows Server和 SQL Server授權。對於包含授權的 Amazon EC2 執行個體，減少 CPUs 可立即節省授權成本。

如果您授權執行個體，您可以確保為工作負載使用最具成本效益的執行個體類型。隨著 AWS 推出新的執行個體類型，請務必評估這些新執行個體是否能夠以較少的核心滿足工作負載需求。

## 其他資源
<a name="additional-resources"></a>
+ [Amazon Web Services 和 Microsoft：常見問答集 ](https://aws.amazon.com/windows/faq/)(AWS 文件）

# 為 SQL Server 工作負載選取正確的 EC2 執行個體
<a name="right-ec2-instance"></a>

**重要**  
閱讀本節之前，建議您先閱讀本指南的[了解 SQL Server 授權](sql-server-licensing.md)和[為 Windows 工作負載選取正確的執行個體類型](right-size-selection.md)一節。

## 概觀
<a name="right-ec2-instance-overview"></a>

Microsoft SQL Server 已在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上執行超過 15 年。 AWS 已採用該經驗並用它來協助開發 Amazon EC2 執行個體，以適應從最低規格到高效能多區域叢集執行的 SQL Server 工作負載。

選擇 SQL Server 的正確 EC2 執行個體，在很大程度上取決於您的工作負載。了解 SQL Server 如何獲得授權、如何使用記憶體，以及 SQL Server 功能如何與 Amazon EC2 產品保持一致，有助於引導您找到應用程式的最佳 EC2 執行個體。

本節說明各種 SQL Server 工作負載，以及如何與特定 EC2 執行個體配對，將您的授權和運算成本降至最低。

## 成本比較
<a name="right-ec2-instance-cost-comparison"></a>

Amazon EC2 可讓您使用自有授權 (BYOL) 或使用 Windows Server 和 SQL Server 授權付費。對於隨pay-as-you-go授權，Windows Server 和 SQL Server 授權的授權成本會計入 EC2 執行個體的每小時成本。例如，您可以擁有價格不同的不同 AMIs。AMI 的價格取決於 AMI 執行所在的 SQL Server 版本。

Windows Server 和 SQL Server 定價不會逐項列出。您在 等工具上找不到明細定價[AWS 定價計算工具](https://calculator.aws/)。如果您選取包含授權方案的不同組合，則可以降低授權成本，如下表所示。


****  

| EC2 執行個體 | AMI | 運算價格 | Windows 授權價格 | SQL 授權價格 | 總價 | 
| --- | --- | --- | --- | --- | --- | 
| r5.xlarge | Linux （運算定價） | 183.96 美元 | - | - | 183.96 美元 | 
| r5.xlarge | Linux \$1 SQL 開發人員 | 183.96 美元 | 0 USD | 0 USD | 183.96 美元 | 
| r5.xlarge | Windows Server (LI) | 183.96 美元 | 134.32 美元 | - | 318.28 美元 | 
| r5.xlarge | Windows \$1 SQL 開發人員 | 183.96 美元 | 134.32 美元 | 0 USD | 318.28 美元 | 
| r5.xlarge | Windows \$1 SQL Web (LI) | 183.96 美元 | 134.32 美元 | 49.64 美元 | 367.92 美元 | 
| r5.xlarge | Windows \$1 SQL 標準 (LI) | 183.96 美元 | 134.32 美元 | 350.4 美元 | 668.68 美元 | 
| r5.xlarge | Windows \$1 SQL Enterprise (LI) | 183.96 美元 | 134.32 美元 | 1095 美元 | 1413.28 美元 | 

**注意**  
上表中的定價是以 `us-east-1` 區域中的隨需定價為基礎。

執行 SQL Server 最經濟實惠的方法是保持在較低層級的版本，直到您需要更高層級版本的功能為止。如需詳細資訊，請參閱本指南的[比較 SQL Server 版本](sql-server-editions.md)一節。從 SQL Server Web Edition 升級至 SQL Server Standard Edition 的費用超過 SQL Server 授權成本的七倍，以及從 Standard Edition 移至 Enterprise Edition 的費用超過三倍。授權成本的差異是需要考慮的主要因素，並在本節的其餘部分中探索。

## 成本最佳化案例
<a name="right-ec2-instance-opt-scenario"></a>

請考慮分析公司追蹤交付工具正在尋求改善 SQL Server 效能的範例案例。MACO 專家審查公司的效能瓶頸後，公司會從 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` 區域中的隨需定價為基礎。

## 成本最佳化建議
<a name="right-ec2-instance-opt-rec"></a>

### 記憶體最佳化執行個體
<a name="right-ec2-instance-memory-opt"></a>

SQL Server 最重要的層面之一是了解其對記憶體的依賴。SQL Server 會嘗試使用作業系統未使用的所有可用 RAM （預設安裝最多 2 TB)。它出於效能原因這樣做。與必須持續從磁碟提取資料、進行變更，然後將其寫入磁碟相比，在記憶體中使用資料的效能更高。反之，SQL Server 會嘗試盡可能從連接的資料庫載入資料，並將該資料保留在 RAM 中。對資料所做的變更會在記憶體中發生，並在稍後強化為磁碟。

**注意**  
如需 SQL Server 如何寫入變更的詳細說明，請參閱 Microsoft 文件中的[寫入頁面](https://learn.microsoft.com/en-us/sql/relational-databases/writing-pages?view=sql-server-ver16)。

由於 SQL Server 在大量 RAM 中表現較佳，因此通常建議從 [Amazon EC2 記憶體最佳化](https://aws.amazon.com/ec2/instance-types/#Memory_Optimized)執行個體類型開始。記憶體最佳化執行個體用途廣泛，提供各種不同的選項。R 系列具有 1 比 8 的 vCPU-to-RAM 比率，並可選擇 Intel 處理器、AMD 處理器、增強型聯網、增強型 EBS 效能、執行個體儲存和增強型處理器速度。對於記憶體密集型工作負載，也有一個 X 系列結合了許多相同的選項，並將 vCPU-to-RAM 的比率擴展至 1 與 32。由於記憶體最佳化執行個體的多樣性，您可以將它們套用至所有形狀和大小的 SQL Server 工作負載。

### 低於最少資源的工作負載 （少於 4 vCPUs)
<a name="min-resources-4"></a>

雖然某些使用案例適用於爆量 (T3) 執行個體，但我們建議您通常避免將爆量執行個體用於 SQL Server 工作負載。SQL Server 的授權是根據指派給執行個體vCPUs 數量。如果 SQL Server 在一天的大部分時間處於閒置狀態並取得爆量額度，您需為未充分利用的 SQL 授權付費。此外，SQL Server 具有每個伺服器 4 個核心的最低授權需求。這表示如果您的 SQL Server 工作負載不需要 4 個 vCPUs的運算能力，則需要支付未使用的 SQL Server 授權。在這些情況下，最好將[多個 SQL Server 執行個體合併](consolidate-instances.md)到較大的伺服器上。

### 使用最少資源的工作負載 （小於 64 GB RAM)
<a name="min-resources-64"></a>

許多 64 GB RAM 以下的 SQL Server 工作負載不會優先考慮高效能或高可用性。對於這些類型的工作負載，如果應用程式涵蓋在 Microsoft 的授權限制中，則 SQL Server Web 版本可能非常適合。

**重要**  
SQL Server Web 版本根據 Microsoft 的授權條款有限制的使用案例。SQL Server Web 版可能僅支援公有和網際網路可存取的網頁、網站、Web 應用程式和 Web 服務。它可能不會用於支援企業營運應用程式 (例如，客戶關係管理、企業資源管理和其他類似的應用程式)。

SQL Server Web 版可擴展至 32 個 vCPUs 和 64 GB RAM，比 SQL Server Standard 版便宜 86%。對於低資源工作負載，使用 r6a 等 AMD 記憶體最佳化執行個體，其運算價格比 Intel 便宜 10%，也是將運算和 SQL 授權成本降至最低的好方法。

### 平均資源的工作負載 （小於 128 GB RAM)
<a name="avg-resources-128"></a>

SQL Server Standard Edition 用於大多數高達 128 GB RAM 的 SQL Server 工作負載。SQL Server Standard 版比 SQL Server Enterprise Edition 便宜 65-75%，可擴展至 48 個 vCPUs和 128 GB RAM。由於 128 GB RAM 限制通常在 48 個 vCPU 限制之前達到，因此大多數想要避免升級至 SQL Server Enterprise Edition 的客戶都重視此限制。

SQL Server 具有稱為[緩衝集區延伸](https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/buffer-pool-extension?view=sql-server-ver16)的功能。此功能可讓 SQL Server 使用磁碟的一部分做為 RAM 的延伸。緩衝集區擴充功能與超快速儲存結合時運作良好，例如 [Amazon EC2 執行個體儲存](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html)中使用的 NVMe SSDs。包含執行個體儲存體的 Amazon EC2 執行個體會以執行個體名稱 （例如 r5d、r6id 和 x2iedn) 中的 "d" 表示。

緩衝集區延伸無法取代一般 RAM。不過，如果您需要超過 128 GB 的 RAM，您可以搭配 r6id.4xlarge 和 x2iedn.xlarge 等 EC2 執行個體使用緩衝集區延伸，以延遲升級至 Enterprise Edition 授權。

### 高效能工作負載 （超過 128 GB RAM)
<a name="high-per-workloads-128"></a>

需要高效能的 SQL Server 工作負載在成本最佳化方面具有挑戰性，因為它們依賴許多資源。不過，了解 EC2 執行個體的差異可能會讓您無法做出錯誤的選擇。

下表顯示各種記憶體最佳化的 EC2 執行個體及其效能限制。


****  

|   | r5b | r6idn | r7iz | x2iedn | x2iezn | 
| --- | --- | --- | --- | --- | --- | 
| 處理器 | 3.1 GHz第二代 Intel Xeon 處理器 | 3.5 GHz第三代 Intel Xeon 處理器 | 3.9 GHz第四代 Intel Xeon 可擴充處理器 | 3.5 GHz第三代 Intel Xeon 處理器 | 4.5 GHz第二代 Intel Xeon 處理器 | 
| CPU：RAM 比率 | 1：8 | 1：8 | 1：8 | 1：32 | 1：32 | 
| 最大 vCPU | 96 | 128 | 128 | 128 | 48 | 
| 最大 RAM | 768 GB | 1，024 GB | 1，024 GB | 4，096 GB | 1，536 GB | 
| 執行個體儲存體 | – | NVMe SSD(4x 1900 GB) | – | NVMe SSD(2x 1900 GB) | – | 
| io2 Block Express | 支援 | 支援 | 支援 | 支援 | – | 
| 最大 EBS IOPS | 260,000 | 350,000 | 160,000 | 260,000 | 80,000 | 
| EBS 輸送量上限 | 60 Gbps | 80 Gbps | 40Gbps | 80 Gbps | 19 Gbps | 
| 網路頻寬上限 | 25 Gbps | 200 Gbps | 50 Gbps | 100 Gbps | 100 Gbps | 

每個執行個體都用於不同的用途。了解 SQL Server 工作負載可協助您選擇最適合您的執行個體類型。

屬性的詳細資訊：
+ **r5b** – r5b 中的「b」屬性表示此執行個體類型著重於高 EBS 效能。在第五代記憶體最佳化執行個體中，r5b 是首選。這是使用 io2 Block Express 磁碟區並達到最大儲存 IOPS 260，000 的第一個執行個體類型。r5b 執行個體類型仍然是符合成本效益的替代方案，可滿足高 EBS 效能需求。
+ **r6idn** – 第六代的記憶體最佳化執行個體提供比上一代大幅改善。r5b 的 EBS 效能增強功能會進一步採用 r6idn，將 IOPS 上限增加到 350，000。r6idn 也有 tempdb 和緩衝集區擴充功能的執行個體存放區磁碟區，可進一步提升 SQL Server 效能。
+ **x2iedn** – x2iedn 類似於 r6idn。它提供類似層級的增強型 EBS、增強型聯網和 NVMe SSD 執行個體儲存體，但高記憶體工作負載和低 CPU 數量 （較低的 SQL Server 授權成本） 的 1：32 vCPU-to-RAM 比率。
+ **x2iezn** – x2iezn 中的 "z" 屬性表示此執行個體類型著重於高處理器效能。Cascade Lake 處理器具有高達 4.5 GHz 的全核心渦輪頻率。在您想要保持低 vCPU 數量的情況下，我們建議您使用此 EC2 執行個體，並搭配 1：32 vCPU 與 RAM 的比率。 vCPU-to-RAM 這反過來可以降低 SQL Server 授權成本。
+ **r7iz** – r7iz 中的 "z" 屬性表示此執行個體類型著重於高處理器效能。Sapphire Fasts 處理器具有高達 3.9 GHz 的全核心渦輪頻率。如同 x2iezn 執行個體，r7iz 會優先考慮高頻率處理器效能，但採用 1：8 vCPU-to-RAM 的比率。

## 其他資源
<a name="right-ec2-instance-resources"></a>
+ [一般用途 Amazon EC2 執行個體](https://aws.amazon.com/ec2/instance-types/) (AWS 文件）
+ [比較工具](https://instances.vantage.sh/) (Vantage)
+ [授權 – SQL Server](https://aws.amazon.com/windows/faq/#licensing-sql) (AWS 文件）

# 合併執行個體
<a name="consolidate-instances"></a>

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

## 概觀
<a name="consolidate-instances-overview"></a>

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

在生產環境中，通常每個伺服器僅使用單一 SQL Server 執行個體，因此「忙碌」執行個體不會過度使用共用硬體資源。為每個 SQL Server 執行個體提供自己的作業系統，以及自己的資源，比依賴資源控管來得好。對於需要大量 RAM 和 CPU 資源的高效能 SQL Server 工作負載尤其如此。

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

如 [Microsoft SQL Server 2019：授權指南](https://download.microsoft.com/download/e/2/9/e29a9331-965d-4faa-bd2e-7c1db7cd8348/SQL_Server_2019_Licensing_guide.pdf)中所述，每個執行 SQL Server 的伺服器必須至少考慮四個 CPU 授權。這表示即使您執行的伺服器只有兩個 vCPUs，您仍然必須為四個 vCPUs 授權 SQL Server。如果您使用 [SQL Server Standard 版，則根據 Microsoft 的公有 SQL Server 定價](https://www.microsoft.com/en-us/sql-server/sql-server-2022-pricing)差異為 \$13，945。對於使用最少資源搭配單一 SQL Server 執行個體執行多個伺服器的組織，必須授權未使用資源的合併成本可能相當龐大。

## 成本最佳化案例
<a name="consolidate-instances-cost-opt-scenario"></a>

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

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


****  

| EC2 執行個體 | vCPUs | RAM | Price | 要授權vCPUs  | SQL Server 授權總成本 | 
| --- | --- | --- | --- | --- | --- | 
| m6i.large | 2 | 8 | 0.096 | 4 | 7，890 美元 | 

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


****  

| EC2 執行個體 | vCPUs | RAM | Price | 要授權vCPUs  | SQL Server 授權總成本 | 
| --- | --- | --- | --- | --- | --- | 
| 4 倍 m6i.large | 2 | 32 | 0.384 | 16 | 31，560 美元 | 

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


****  

| EC2 執行個體 | vCPUs | RAM | Price | 要授權vCPUs  | SQL Server 授權總成本 | 
| --- | --- | --- | --- | --- | --- | 
| m6i.2xlarge | 8 | 32 | 0.384 | 8 | 15，780 美元 | 

**注意**  
在上述表格中，運算成本會顯示 `us-east-1`區域中執行 Windows Server 的 Amazon EC2 伺服器每小時隨需定價。SQL Server Standard Edition 授權成本是指 [Microsoft 的公有 SQL Server 定價](https://www.microsoft.com/en-us/sql-server/sql-server-2022-pricing)。

## 成本最佳化建議
<a name="consolidate-instances-cost-opt-rec"></a>

如果您正在考慮合併 SQL Server 執行個體，最大的考量是您要合併的每個執行個體的資源耗用。請務必長期取得效能指標，以便更深入了解每個伺服器上的工作負載模式。資源耗用量監控的一些常見工具包括 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-metrics-basic-detailed.html)、[Windows Performance Monitor](https://techcommunity.microsoft.com/t5/ask-the-performance-team/windows-performance-monitor-overview/ba-p/375481) (perfmon) 和 SQL Server 的[原生監控工具](https://learn.microsoft.com/en-us/sql/relational-databases/performance/performance-monitoring-and-tuning-tools?view=sql-server-ver16)。

我們建議您在分析 SQL Server 工作負載是否可以合併以使用相同的伺服器資源，而不會互相干擾時，考慮下列問題：
+ 穩定狀態期間會耗用哪些資源 (CPU、記憶體和網路頻寬）？
+ 尖峰期間會耗用哪些資源 (CPU、記憶體和網路頻寬）？
+ 峰值發生的頻率為何？ 峰值是否一致？
+ 一個伺服器的資源峰值是否與另一個伺服器的資源峰值一致？
+ SQL Server 使用的儲存 IOPS 和輸送量是多少？

如果您想要繼續進行合併 SQL Server 執行個體的計劃，請參閱 Cloud Operations & Migrations 部落格上的 AWS [在一個 Amazon EC2 執行個體上執行多個 SQL Server 執行個體](https://aws.amazon.com/blogs/mt/run-multiple-instances-sql-server-on-one-amazon-ec2-instance/)文章。此文章提供如何在 SQL Server 中進行組態變更以新增其他執行個體的指示。開始之前，請考慮在相同伺服器上安裝多個執行個體時的次要差異：
+ 預設 SQL Server 資料庫執行個體名為 `MSSQLSERVER`，並使用連接埠 1433。
+ 安裝在相同伺服器上的每個額外執行個體都是「已命名」的資料庫執行個體。
+ 每個具名執行個體都有唯一的執行個體名稱和唯一的連接埠。
+ [SQL Server 瀏覽器](https://learn.microsoft.com/en-us/sql/tools/configuration-manager/sql-server-browser-service?view=sql-server-ver16)必須執行 來協調指定執行個體的流量。
+ 每個執行個體都可以針對資料庫資料檔案和個別登入使用不同的位置。
+ SQL Server [最大伺服器記憶體設定](https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/server-memory-server-configuration-options?view=sql-server-ver16)必須根據每個執行個體的效能需求進行設定，其總和也為基礎作業系統保留足夠的記憶體。
+ 您可以使用 SQL Server [原生備份和還原](https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/back-up-and-restore-of-sql-server-databases?view=sql-server-ver16)功能，或[AWS DMS](https://aws.amazon.com/blogs/database/consolidate-data-from-identical-sql-server-databases-into-a-single-amazon-rds-for-sql-server-database-using-aws-dms/)用於遷移或整合。

## 其他資源
<a name="consolidate-instances-resources"></a>
+ [SQL Server 授權資料表](https://download.microsoft.com/download/0/5/c/05c60185-ebdd-4472-895a-3d8e8da55682/SQL_Server_2019_Licensing_Datasheet.pdf) (AWS 雲端操作與遷移部落格）
+ [SQL Server 多執行個體設定部落格文章](https://aws.amazon.com/blogs/mt/run-multiple-instances-sql-server-on-one-amazon-ec2-instance/) (AWS Cloud Operations & Migrations 部落格）

# 比較 SQL Server 版本
<a name="sql-server-editions"></a>

## 概觀
<a name="sql-server-editions-overview"></a>

Microsoft SQL Server 授權是 Windows 工作負載環境的最大費用之一。SQL Server 的授權成本可以輕鬆超出執行工作負載的運算成本。如果您選擇了錯誤的版本，您可以支付未使用或甚至不需要的功能。本節會比較下列 SQL Server 版本，包括其功能和相對成本：
+ **企業** – SQL Server Enterprise Edition 為資料中心提供高效能、無限制的虛擬化和數種商業智慧 (BI) 工具。
+ **標準** – SQL Server Standard Edition 為小型組織和部門提供基本資料管理和商業智慧。
+ **Web** – SQL Server Web 版適用於 Web 主機或 Web 加值提供者 (VAPs的公司。此版本提供低總擁有成本，並為中大型 Web 屬性提供可擴展性和可管理性功能。
**重要**  
您可以使用 SQL Server Web Edition 僅支援公有和可存取網際網路的網頁、網站、Web 應用程式和 Web 服務。您無法使用 SQL Server Web Edition line-of-business（例如客戶關係管理或企業資源管理應用程式）。
+ **開發人員** – SQL Server Developer Edition 包含 Enterprise Edition 的所有功能，但僅用於開發目的。
+ **Express** – SQL Server Express Edition 是免費的資料庫，可用於學習或建置桌面應用程式。您可以將 Express Edition 更新為其他版本。

**注意**  
SQL Server 評估版本提供 180 天的試用期。

## 成本影響
<a name="sql-server-editions-cost-impact"></a>

您可以從 Microsoft 經銷商購買 SQL Server 授權，並使用 AWS 軟體保證將授權帶到 。或者，您可以使用 SQL Server 授權搭配pay-as-you-go模型。 Amazon EC2 AMIs

如果您從 Microsoft 經銷商購買 SQL Server 授權，核心授權會以兩個套件的形式販售，而且您必須為每個伺服器授權至少四個核心。下表顯示 Enterprise 和 Standard 版本之間的成本比較。


****  

| 版本 | SQL Server Enterprise Edition (2 個核心套件） | SQL Server Standard Edition (2 個核心套件） | 節省成本 | 
| --- | --- | --- | --- | 
| 2022 | 15，123 美元 | 3，945 美元 | 74% | 
| 2019 | 13，748 美元 | 3，586 美元 | 74% | 

**注意**  
上表中的定價是以 Microsoft 的 [SQL Server 2022 ](https://www.microsoft.com/en-us/sql-server/sql-server-2022-pricing)和 [SQL Server 2019](https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing) 公開定價為基礎。

下列成本比較顯示使用包含授權的 Amazon EC2 AMIs 託管不同版本的 SQL Server。在此比較中，SQL Server 託管在 `us-east-1` 區域中的 r6i.xlarge (4 個 vCPU) 上。


****  

| 執行個體 | 運算成本 | Windows 授權成本 | SQL Server 授權成本 | 總計 | 
| --- | --- | --- | --- | --- | 
| R6i.xlarge (Linux) | 183.96 美元 | – | – | 183.96 美元 | 
| R6i.xlarge \$1 Windows | 183.96 美元 | 134.32 美元 | – | 318.28 美元 | 
| R6i.xlarge \$1 SQL Server Web 版本 | 183.96 美元 | 134.32 美元 | 49.35 美元 | 367.63 美元 | 
| R6i.xlarge \$1 SQL Server Standard 版 | 183.96 美元 | 134.32 美元 | 350.4 美元 | 668.68 美元 | 
| R6i.xlarge \$1 SQL Enterprise 版 | 183.96 美元 | 134.32 美元 | 1，095 美元 | 1，413.28 美元 | 

您可以為您的工作負載選取正確的 SQL Server 版本，以節省高達 95% 的 SQL Server 授權成本。下表比較 r6i.xlarge 執行個體上的 SQL Server 授權成本。


****  

| 版本 | 節省 % | 
| --- | --- | 
| 相較於 Enterprise 的標準 | 68% | 
| Web 與標準相比 | 86% | 
| Web 與 Enterprise 的比較 | 95% | 

在大多數情況下，組織會從 Enterprise 切換到 Standard Edition，但在某些情況下，可以從 Standard 或 Enterprise Edition 切換到 Web Edition。

## 成本最佳化建議
<a name="sql-server-editions-opt-rec"></a>

您可以根據擴展限制、高可用性、效能和安全性，為您的工作負載選擇最佳版本。下表顯示 SQL Server 版本支援的功能。這可協助您決定要使用哪個版本。此比較適用於 [SQL Server 2016 SP1 和更新版本](https://learn.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2022?view=sql-server-ver16)。

### 擴展限制
<a name="sql-server-editions-opt-rec-scaling"></a>

下表比較不同 SQL Server 版本的擴展限制。


****  

| 功能 | 企業版 | 標準版本 | Web 版本 | Express 版本 | 
| --- | --- | --- | --- | --- | 
| SQL Server Database Engine、SQL Server Analysis Services (SSAS) 或 SQL Server Reporting Services (SSRS) 的單一執行個體所使用的最大運算容量 | 作業系統上限 | 限制為小於 4 個通訊端或 24 個核心 | 限制為少於 4 個通訊端或 16 個核心 | 限制為小於 4 個通訊端或 4 個核心 | 
| SQL Server Database Engine 每個執行個體緩衝集區的記憶體上限 | 作業系統上限 | 128 GB | 64 GB | 1410 MB | 
| SQL Server 資料庫引擎每個執行個體的緩衝集區延伸容量上限 | 設定的記憶體上限 32 倍 | 設定的記憶體上限 4 倍 | N/A | N/A | 
| 關聯式資料庫大小上限 | 524 PB | 524 PB | 524 PB | 10 GB | 
| 資料欄存放區快取或記憶體最佳化資料的記憶體上限 | 作業系統上限 | 32 GB | 16 GB | 352 MB | 

如果您的應用程式需要少於 16 個核心 (32 個 vCPUs) 和 64 GB 的 RAM，則您可以從 SQL Server Web 版本開始評估。如果您的工作負載需要超過 64 GB 的記憶體或其他高可用性選項，則必須升級至 SQL Server Standard Edition。

您可以使用 SQL Server Web Edition 來支援公有和網際網路可存取的網頁、網站、Web 應用程式和 Web 服務，但無法使用 SQL Server Web Edition 來支援業務應用程式。如需 SQL Server Web Edition 使用案例的詳細資訊，請聯絡 [Microsoft 授權支援](https://www.microsoft.com/licensing/docs/view/Licensing-Use-Rights)或您的 Microsoft 經銷商。

您可以針對最多 24 個核心 (48 個 vCPUs) 和 128 GB 記憶體的工作負載使用 SQL Server Standard Edition。不過，您可以使用[緩衝集區延伸](https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/buffer-pool-extension?view=sql-server-ver16)，讓 SQL Server Standard Edition 能夠利用[本機執行個體儲存](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html)體，例如 r6id EC2 執行個體中存在的執行個體。這可將記憶體大小擴充至最大記憶體組態的四倍。當記憶體需求開始增加時，這種功能組合可能會延遲伺服器必須升級至 Enterprise Edition。

您可以透過尋找緩衝集區中的資料庫頁面和[頁面預期壽命](https://learn.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-buffer-node?view=sql-server-ver16)計數器來識別記憶體使用率。頁面預期壽命會告訴您頁面在排回磁碟之前，在記憶體中的時間有多長。此計數器預設值為 300。如果頁面位於記憶體中數小時或數天，則有機會減少配置的記憶體。

### 高可用性
<a name="sql-server-editions-opt-rec-avail"></a>

下表比較不同 SQL Server 版本的高可用性功能。


****  

| 功能 | 企業版 | 標準版本 | Web 版本 | Express 版本 | 
| --- | --- | --- | --- | --- | 
| 伺服器核心支援 1 | 是 | 是 | 是 | 是 | 
| 日誌傳送 | 是 | 是 | 是 | 否 | 
| 資料庫鏡像 | 是 | 完整安全模式 | 僅做為見證 | 僅做為見證 | 
| 備份壓縮 | 是 | 是 | 否 | 否 | 
| Always On 容錯移轉叢集執行個體 | 16 個節點 | 2 個節點 | 否 | 否 | 
| Always On 可用性群組 | 最多 8 個次要複本，包括 2 個同步次要複本 | 否 | 否 | 否 | 
| 基本可用性群組 | 否 | 2 個節點 | 否 | 否 | 
| 線上頁面和檔案還原 | 是 | 否 | 否 | 否 | 
| 線上索引 | 是 | 否 | 否 | 否 | 
| 線上結構描述變更 | 是 | 否 | 否 | 否 | 
| 快速復原 | 是 | 否 | 否 | 否 | 
| 鏡像備份 | 是 | 否 | 否 | 否 | 
| 熱新增記憶體和 CPU | 是 | 否 | 否 | 否 | 
| 加密備份 | 是 | 是 | 否 | 否 | 
| 混合備份到 Microsoft Azure （備份到 URL) | 是 | 是 | 否 | 否 | 
| 用於災難復原的容錯移轉伺服器 | 是 | 是 | 否 | 否 | 
| 提供高可用性的容錯移轉伺服器 | 是 | 是 | 否 | 否 | 

### 其他常見功能
<a name="sql-server-editions-opt-rec-features"></a>

下表比較不同 SQL Server 版本的最常見功能。如需廣泛的功能清單，請參閱 Microsoft 文件中的 [SQL Server 2019 版本和支援的功能](https://learn.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2019?view=sql-server-ver16)。


****  

| 功能 | 企業版 | 標準版本 | Web 版本 | Express 版本 | 
| --- | --- | --- | --- | --- | 
| （效能） 資源總監 | 是 | 否 | 否 | 否 | 
| （安全性） 透明資料庫加密 (TDE) | 是 | 是 | 否 | 否 | 
| （安全性） 可擴展金鑰管理 (EKM) | 是 | 否 | 否 | 否 | 
| （複寫） Oracle 發佈 | 是 | 否 | 否 | 否 | 
| （複寫） 點對點交易複寫 | 是 | 否 | 否 | 否 | 
| 變更資料擷取 | 是 | 是 | 否 | 否 | 

### SQL Server 開發人員版本
<a name="sql-server-editions-opt-rec-developer"></a>

所有非生產工作負載，例如開發、QA、測試、預備和 UAT 環境，都可以使用 SQL Server Developer Edition 節省 100% 的 SQL Server 授權成本。[下載 SQL Server](https://www.microsoft.com/en-us/sql-server/sql-server-downloads) 之後，您可以使用共用租用在 EC2 執行個體上安裝 SQL Server Developer Edition。SQL Server Developer Edition 不需要專用基礎設施。如需詳細資訊，請參閱本指南的 [SQL Server 開發人員版本](sql-server-dev.md)建議。

### 切換版本
<a name="sql-server-editions-opt-rec-switching"></a>

對於現有的工作負載，從一個版本切換到另一個版本需要大量測試。最佳實務是檢查在 Enterprise 或 Standard 版本上執行的工作負載，以查看是否使用版本特定的功能，以及這些功能是否有任何替代解決方案。 例如，如果您想要查看資料庫是否使用任何企業級功能，您可以執行動態[管理檢視 (DMV)](https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-persisted-sku-features-transact-sql?view=azuresqldb-current)，如下列範例命令所示。

`SELECT feature_name FROM sys.dm_db_persisted_sku_features; GO`

有些企業版功能無法在 T-SQL 中擷取，例如線上重新索引做為 SQL 維護任務的一部分。這些必須手動驗證。

### 遷移考量事項
<a name="sql-server-editions-opt-rec-migration"></a>

授權 SQL Server 的方式將決定切換版本的選項。AMIs，包括 SQL Server AMIs，其授權成本包含在 EC2 執行個體的價格中，授權成本受限於 AMI。您可以使用[AWS 帳單代碼](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/billing-info-fields.html)來驗證 AMI 中包含的 SQL Server 版本。對於包含 AWS 授權的執行個體，在作業系統內變更 SQL Server 版本不會變更與 AMI 相關聯的帳單。您必須使用執行新版 SQL Server 的 AMI，將資料庫遷移至新的 EC2 執行個體。

如果您使用自己的授權，則有更多彈性。通常仍建議遷移至執行新版本的另一個 EC2 執行個體。如果某件事未按計劃進行，這可讓容錯回復更為簡單。不過，如果您必須使用現有的伺服器，您仍然可以side-by-side安裝 SQL Server，並在執行個體之間遷移資料庫。如需side-by-side版本降級的詳細資訊，請參閱 MSSQLTips 網站上的 [SQL Server 中的版本升級和降級](https://www.mssqltips.com/sqlservertip/6686/edition-upgrade-and-downgrade-in-sql-server/)。

## 其他資源
<a name="sql-server-editions-resources"></a>
+ [SQL Server 2022 的版本和支援的功能 ](https://learn.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2022?view=sql-server-ver16)(Microsoft Learn)
+ [sys.dm\$1db\$1persisted\$1sku\$1features (Transact-SQL)](https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-persisted-sku-features-transact-sql?view=azuresqldb-current) (Microsoft Learn)
+ [您應該使用哪個版本的 SQL Server？](https://www.brentozar.com/archive/2019/01/which-version-of-sql-server-should-you-use/) (Brent Ozar Unlimited)
+ [AWS 定價計算工具](https://calculator.aws/#/estimate?id=e138c18348afd3853a4874681c660bc1947ec5ca) (AWS)

# 評估 SQL Server 開發人員版本
<a name="sql-server-dev"></a>

## 概觀
<a name="sql-server-dev-overview"></a>

[SQL Server Developer Edition](https://www.microsoft.com/en-us/sql-server/sql-server-downloads) 是 SQL Server 的免費版本，其中包含 Enterprise Edition 的所有功能，可用於任何非生產環境。在無法使用 Microsoft Developer Network (MSDN) 授權的雲端中，SQL Server Developer Edition 是節省成本的好方法，無需提供開發和測試工作負載的授權。對於執行大型開發和測試環境，並尋求降低不必要成本的團隊來說尤其如此。

生產環境定義為由應用程式最終使用者 （例如網際網路網站） 存取的環境，其用途不只是收集該應用程式的意見回饋或接受測試。構成生產環境的其他案例包括：
+ 連線至生產資料庫的環境
+ 支援生產環境災難復原或備份的環境
+ 至少部分時間用於生產的環境，例如在活動尖峰期間輪換至生產環境的伺服器

如需授權的詳細資訊，請參閱 文件中的 AWS [Amazon Web Services 和 Microsoft：常見問答集](https://aws.amazon.com/windows/faq/)。

## 成本影響
<a name="sql-server-dev-cost-impact"></a>

如果您將 SQL Server Developer Edition 用於非生產工作負載，則可以為開發和測試環境節省 100% 的目前 SQL Server 授權成本。


****  

| SQL Server 版本 | SQL Server Enterprise Edition (2 個核心套件） | SQL Server Standard 版 (2 個核心套件） | SQL Server 開發人員版本 | 
| --- | --- | --- | --- | 
| 2022 | 15，123 美元 | 3，945 美元 | 免費 | 
| 2019 | 13，748 美元 | 3，586 美元 | 免費 | 

**注意**  
上表中的定價是以 Microsoft 的 [SQL Server 2022 ](https://www.microsoft.com/en-us/sql-server/sql-server-2022-pricing)和 [SQL Server 2019](https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing) 公開定價為基礎。

下表比較在 `us-east-2` 區域中執行 4 個 vCPUs 和使用隨需定價的不同 SQL Server 版本的成本。這適用於依賴包含授權之執行個體的案例 AWS。


****  

| EC2 執行個體 | AMI | 運算價格 | Windows 授權價格 | SQL Server 授權價格 | 總價 | 
| --- | --- | --- | --- | --- | --- | 
| r5.xlarge | Linux （運算定價） | 183.96 美元 | – | – | 183.96 美元 | 
| r5.xlarge | Linux \$1 SQL Server 開發人員版本 | 183.96 美元 | 0 USD | 0 USD | 183.96 美元 | 
| r5.xlarge | Windows Server (LI) | 183.96 美元 | 134.32 美元 | – | 318.28 美元 | 
| r5.xlarge | Windows \$1 SQL Server 開發人員版本 | 183.96 美元 | 134.32 美元 | 0 USD | 318.28 美元 | 
| r5.xlarge | Windows \$1 SQL Server Web 版本 (LI) | 183.96 美元 | 134.32 美元 | 49.64 美元 | 367.92 美元 | 
| r5.xlarge | Windows \$1 SQL Server Standard Edition (LI) | 183.96 美元 | 134.32 美元 | 350.4 美元 | 668.68 美元 | 
| r5.xlarge | Windows \$1 SQL Server Enterprise Edition (LI) | 183.96 美元 | 134.32 美元 | 1095 美元 | 1413.28 美元 | 

### 成本最佳化案例
<a name="sql-server-dev-opt-scenario"></a>

資料完整性公司進行新的取得後，想要將新取得的工作負載從受管託管供應商的目前位置遷移，以與 中的其他工作負載合併 AWS 雲端。初始定價顯示，與目前的受管服務供應商 AWS 相比，公司的 SQL Server 工作負載在 上執行的成本高出 60%。MACO SME 評估了預估值，發現客戶實際在受管託管供應商為開發和測試環境支付 SQL Server 授權的費用。透過在遷移期間將非生產工作負載切換到 SQL Server 開發人員版本，公司減少了 40% 的 SQL Server 授權。

### Amazon EC2 上包含的 SQL Server 授權
<a name="sql-server-dev-opt-scenario-li"></a>

如果您的 EC2 執行個體上有使用[包含授權的 AMIs](https://docs.aws.amazon.com/sql-server-ec2/latest/userguide/sql-server-on-ec2-amis.html)的 SQL Server，則無法從 Enterprise Edition 直接轉換為 Developer Edition。包含授權之執行個體的授權成本受限於 AMI。即使 SQL Server 從作業系統內解除安裝，EC2 執行個體仍需支付授權成本。

若要轉換為 Developer Edition，您必須[下載 SQL Server Developer Edition](https://download.microsoft.com/download/c/c/9/cc9c6797-383c-4b24-8920-dc057c1de9d3/SQL2022-SSEI-Dev.exe)，將其安裝在新的 EC2 執行個體上，然後遷移資料庫。您可以使用各種方法在 EC2 執行個體之間遷移 SQL Server 資料庫。如需詳細資訊，請參閱*將 Microsoft AWS 雲端* [SQL Server 資料庫遷移至指南中的 SQL Server 資料庫遷移方法](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/methods.html)。您也可以使用[自動化 SQL Server Developer 解決方案](https://aws.amazon.com/blogs/modernizing-with-aws/automating-sql-server-developer-deployments/)來準備您計劃遷移到的新執行個體。

### Amazon EC2 上的 SQL Server BYOL
<a name="sql-server-dev-opt-scenario-byol"></a>

如果您有使用 BYOL 的 SQL Server 執行個體，您可以選擇下列就地轉換或side-by-side降級選項：
+ 從 Microsoft 網站下載 [SQL Server 開發人員版本](https://www.microsoft.com/en-us/sql-server/sql-server-downloads)。如需手動或自動安裝說明，請參閱 AWS 部落格上的[自動化 SQL Server 開發人員部署](https://aws.amazon.com/blogs/modernizing-with-aws/automating-sql-server-developer-deployments/)文章。
+ 使用 [SQL Server 原生備份和還原](https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/back-up-and-restore-of-sql-server-databases?view=sql-server-ver16)來遷移資料庫，或從一個 SQL 執行個體分離/連接資料庫。
+ 使用 [自動化工具](https://github.com/aws-samples/ssm-automation-deploy-sql-developer)進行大量部署。

**注意**  
SQL Server Developer Edition 僅適用於非生產環境。

## 其他資源
<a name="additional-resources"></a>
+ [自動化 SQL Server Developer 部署，以在 EC2 上部署 SQL Server Developer Edition](https://aws.amazon.com/blogs/modernizing-with-aws/automating-sql-server-developer-deployments/) (AWS 部落格）
+ [SQL 2022 定價](https://www.microsoft.com/en-us/sql-server/sql-server-2022-pricing) (Microsoft)
+ [SQL 2019 定價](https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing) (Microsoft)
+ [授權選項](https://docs.aws.amazon.com/sql-server-ec2/latest/userguide/sql-server-on-ec2-licensing-options.html) (Amazon EC2 上的 SQL Server)
+ [AWS 定價計算工具](https://calculator.aws/#/addService/ec2-enhancement) (Amazon EC2 上的 SQL Server 文件）
+ [Microsoft SQL Server 2019 授權指南](https://download.microsoft.com/download/e/2/9/e29a9331-965d-4faa-bd2e-7c1db7cd8348/SQL_Server_2019_Licensing_guide.pdf) （從 Microsoft 下載）
+ [SQL Server 2022 開發人員版本](https://download.microsoft.com/download/c/c/9/cc9c6797-383c-4b24-8920-dc057c1de9d3/SQL2022-SSEI-Dev.exe) （從 Microsoft 下載）

# 評估 Linux 上的 SQL Server
<a name="sql-server-linux"></a>

## 概觀
<a name="sql-server-linux-overview"></a>

自 SQL Server 2017 起，可以在 Linux 作業系統上安裝 SQL Server。Linux 上的 SQL Server 已就緒，可提供彈性、高效能、安全功能、降低 TCO、HA/DR 功能，以及絕佳的使用者體驗。您可以從 Windows Server 上的 SQL Server 切換至 Linux 上的 SQL Server，以節省 Windows Server 授權成本。

對於 Linux，SQL Server 可在 Red Hat Enterprise Linux (RHEL)、SUSE Linux Enterprise Server (SLES)、Ubuntu 和 Amazon Linux 2 上部署。SQL Server 資料庫引擎在 Windows Server 和 Linux 上執行的方式相同，但在使用 Linux 時，某些任務有一些基本變更。在 Linux 和 Windows 上執行 SQL Server Always On 應用程式與容錯移轉叢集之間的一個主要差異。如果您在 Windows Server 主機上部署 Always On 可用性群組，則可以利用 [Windows Server 容錯移轉叢集 (WSFC)](https://learn.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/windows-server-failover-clustering-wsfc-with-sql-server?view=sql-server-ver16) 和 Active Directory 作為支援容錯移轉叢集的內建功能。不過，WSFC 和 Active Directory 都不支援 Linux 上的容錯移轉叢集。如果您想要在 Linux 上啟動 SQL Server 的容錯移轉叢集，您可以使用 [ClusterLabs Pacemaker](https://aws.amazon.com/blogs/opensource/deploying-a-highly-available-microsoft-sql-server-on-linux-on-aws/) [AWS Launch Wizard](https://aws.amazon.com/launchwizard/) 來簡化 Linux 執行個體上的叢集設定和 SQL 安裝。

Windows 和 Linux 上的 SQL Server 共用共同的程式碼基底。也就是說，SQL Server 核心引擎完全未變更為在 Linux 上執行。SQL Server 推出平台抽象層 (SQLPAL)，如下圖所示。

![\[Sequel 伺服器平台抽象層 (SQLPAL)\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/sql_pal.png)


SQLPAL 負責抽象化 SQL Server 與基礎作業系統之間的呼叫和通訊。主機擴充功能只是原生 Linux 應用程式。低階作業系統函數是原生呼叫，可最佳化 I/O、記憶體和 CPU 用量。當主機延伸項目啟動時，它會載入並初始化 SQLPAL，然後引發 SQL Server。SQLPAL 會啟動隔離的軟體程序，提供其餘程式碼所需的翻譯。將此新 layer 新增至 SQL Server 架構表示無論作業系統為何，都可以使用讓 SQL Server 在 Windows 上如此強大的相同企業級核心功能和優點。

## 成本影響
<a name="sql-server-linux-cost-impact"></a>

對於 r5.2xlarge 執行個體，每個案例中的 Windows Server 授權成本降低約為 268 USD。與使用價格較低的 SQL Server 版本相比，減少是伺服器總成本的較高百分比。下表顯示節省的成本。


****  

| 執行個體 | 版本 | Windows 上的 SQL Server 每月成本 | Linux 上的 SQL Server 每月成本 | 節省成本 | 
| --- | --- | --- | --- | --- | 
| r5.2xlarge | Web | 735 美元 | 466 美元 | 37% | 
| r5.2xlarge | 標準 | 1，337 美元 | 1，068 美元 | 20% | 
| r5.2xlarge | Enterprise | 2，826 美元 | 2，558 美元 | 10% | 

**注意**  
上表中的價格估算是根據 `us-east-1`區域中的隨需定價，並且可以直接在 中檢視[AWS 定價計算工具](https://calculator.aws/#/estimate?id=fd37122637710aa7ba46d1949e8b6a15f68d3c0f)。

考慮一個範例案例，其中 SMB 客群中的 ISV 客戶希望為其開發環境節省成本。他們已在一組 Windows 伺服器上使用 SQL Server Developer Edition。透過從 Windows with SQL Server Developer Edition 切換到 Linux with SQL Server Developer Edition，ISV 客戶可以在其開發工作負載上節省 33%。下表顯示此案例的下列預估成本。


****  

| 預估 | 每月成本 | 
| --- | --- | 
| [Windows \$1 SQL Server](https://calculator.aws/#/estimate?id=da0a0f5f58ddf91aa3398af3a78691cfa2204673) | 9，307.72 美元 | 
| [Linux \$1 SQL Server](https://calculator.aws/#/estimate?id=131966c579020eaec957f441c67e9aa0bfd32411) | 6，218.36 美元 | 
| 預估節省成本 | 3，089.36 美元 (33%) | 

在另一個範例案例中，公司會將包含授權的 SQL Server EC2 執行個體從 Windows 遷移至 Linux。該公司每年省下總計 300，000 USD 的 Windows Server 授權成本，大約是總 AWS 帳單的 20%。

## 成本最佳化建議
<a name="sql-server-linux-optrec"></a>

我們建議您考慮下列事項：
+ 從 SQL Server 2017 開始支援 Linux 上的 SQL Server。
+ 若要協助進行切換，您可以使用[適用於 Microsoft SQL Server 資料庫的 Windows 到 Linux 轉換助理](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/replatform-sql-server.html)。重建助理是一種指令碼工具，可協助您將現有的 SQL Server 工作負載從 Windows 移至 Linux 作業系統，方法是檢查是否有常見的不相容、從 Windows 主機匯出資料庫，然後將資料庫匯入在 Ubuntu 16.04 上執行 Microsoft SQL Server 2017 的 EC2 執行個體。
+ 您也可以使用 SQL Server 中的[備份和還原](https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/back-up-and-restore-of-sql-server-databases?view=sql-server-ver16)功能，從 Windows 上的 SQL Server 切換到 Linux。
+ 您可以使用 輕鬆快速地部署到 Linux 或 Ubuntu 上的 SQL Server[AWS Launch Wizard](https://docs.aws.amazon.com/launchwizard/latest/userguide/what-is-launch-wizard.html)。啟動精靈可以根據您的應用程式需求，在獨立和高可用性案例中部署 Linux 或 Ubuntu 上的 SQL Server。如需詳細資訊，請參閱 AWS 部落格 Microsoft 工作負載中的[部署至 SQL Server Always on Linux AWS Launch Wizard](https://aws.amazon.com/blogs/modernizing-with-aws/deploy-microsoft-sql-server-always-on-to-linux-with-aws-launch-wizard/) 中的文章。

下圖顯示 解決方案的架構，該解決方案使用適用於 Microsoft SQL Server 資料庫的 Windows 到 Linux 轉換助理。

![\[Windows 到 Linux 轉換助理架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/replatforming_assistant.png)


## 其他資源
<a name="sql-server-linux-resources"></a>
+ [Linux 上的 SQL Server 概觀 ](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-overview?view=sql-server-ver16)(Microsoft Learn)
+ [Linux 上的 SQL Server 安裝指南](https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-setup?view=sql-server-ver16) (Microsoft Learn)
+ [使用 部署至 SQL Server Always on Linux AWS Launch Wizard](https://aws.amazon.com/blogs/modernizing-with-aws/deploy-microsoft-sql-server-always-on-to-linux-with-aws-launch-wizard) ( AWS 部落格上的 Microsoft 工作負載）
+ [Linux 上的高可用性 SQL Server](https://aws.amazon.com/blogs/opensource/deploying-a-highly-available-microsoft-sql-server-on-linux-on-aws/) (AWS 開放原始碼部落格）

# 最佳化 SQL Server 備份策略
<a name="sql-server-backup"></a>

## 概觀
<a name="sql-server-backup-overview"></a>

大多數組織正在尋找正確的解決方案來保護 [Amazon EC2](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/ec2-sql.html) 上的 SQL Server 上的資料，以滿足其目前對復原點目標 (RPO)、自上次備份以來可接受的時間上限，以及復原時間目標 (RTO)，以及服務中斷和服務還原之間的可接受延遲上限的需求。如果您在 EC2 執行個體上執行 SQL Server，您有多個選項可建立資料的備份並還原資料。保護 Amazon EC2 上 SQL Server 資料的備份策略包括：
+ 使用已啟用 Windows 磁碟區陰影複製服務 (VSS) 的 [Amazon Elastic Block Store (Amazon EBS)](https://learn.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service) 快照或 [AWS Backup](https://aws.amazon.com/backup/) 的伺服器層級備份
+ 在 SQL Server 中使用[原生備份和還原的資料庫層級備份](https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/back-up-and-restore-of-sql-server-databases) 

您具有下列[資料庫層級原生備份](https://docs.aws.amazon.com/prescriptive-guidance/latest/sql-server-managing-on-aws/database-level-backup.html)的儲存選項：
+ 具有 [Amazon EBS 磁碟區的](https://docs.aws.amazon.com/prescriptive-guidance/latest/sql-server-managing-on-aws/database-level-backup.html#ebs-volumes)本機備份
+ 使用 [Amazon FSx for Windows File Server 或 Amazon FSx for NetApp ONTAP 進行網路檔案](https://docs.aws.amazon.com/prescriptive-guidance/latest/sql-server-managing-on-aws/database-level-backup.html#amazon-fsx)系統備份 FSx NetApp 
+ 使用 將網路備份至 Amazon Simple Storage Service (Amazon S3) [AWS Storage Gateway](https://docs.aws.amazon.com/prescriptive-guidance/latest/sql-server-managing-on-aws/database-level-backup.html#storage-gateway)
+ 直接備份至 Amazon S3 for SQL Server 2022

本節執行下列動作：
+ 反白顯示可協助您節省儲存空間的功能
+ 比較不同後端儲存選項之間的成本
+ 提供深入文件的連結，以協助實作這些建議

## 使用啟用 VSS 的快照進行伺服器層級備份
<a name="sql-server-backup-vss"></a>

啟用 VSS 的快照架構會使用 AWS Systems Manager [執行命令](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html)，在您的 SQL Server 執行個體上安裝 VSS 代理程式。也可以使用執行命令，調用將作業系統和應用程式緩衝區清空至磁碟、暫停 I/O 操作、獲取 EBS 磁碟區的時間點快照、然後恢復 I/O 的整個工作流程。

此執行命令會建立附接至目標執行個體之所有 EBS 磁碟區的自動快照。也可以選擇排除根磁碟區，因為使用者資料庫檔案通常儲存在其他磁碟區上。如果分割多個 EBS 磁碟區，以便為 SQL Server 檔案建立單一檔案系統，Amazon EBS 也支援使用單一 API 命令建立當機一致的多磁碟區快照。如需啟用應用程式一致 [VSS 的 EBS 快照](https://aws.amazon.com/blogs/mt/take-microsoft-vss-enabled-snapshots-using-amazon-ec2-systems-manager/)的詳細資訊，請參閱 Amazon EC2 文件中的[建立 VSS 應用程式一致快照](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/application-consistent-snapshots.html)。

下圖顯示使用已啟用 VSS 的快照進行伺服器層級備份的架構。



![\[啟用 VSS 的快照架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/snapshots_backup_arch.png)


請考慮下列使用具備 VSS 功能的快照的優點：
+ 資料庫執行個體的第一個快照會包含完整的資料庫執行個體資料。相同資料庫執行個體的後續快照均採用[遞增](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html#how_snapshots_work)處理，這表示系統僅會儲存上次執行快照後有所變更的資料。
+ EBS 快照提供point-in-time復原。
+ 可以[從快照還原到新的 SQL Server EC2 執行個體](https://docs.aws.amazon.com/prescriptive-guidance/latest/backup-recovery/restore.html)。
+ 如果執行個體是使用 Amazon EBS 加密，或者如果資料庫是使用 TDE 在執行個體中加密，則該執行個體或資料庫會使用相同的加密自動還原。
+ 您可以複製[跨區域的自動備份](https://docs.aws.amazon.com/ebs/latest/userguide/event-policy.html)。
+ 當您從快照還原 EBS 磁碟區時，應用程式可立即存取該磁碟區。這表示您可以在從快照還原一個或多個基礎 EBS 磁碟區之後，立即讓 SQL Server 上線。
+ 依預設，還原的磁碟區會在應用程式第一次嘗試讀取時，從 Amazon S3 中擷取基礎區塊。這表示從快照還原 EBS 磁碟區後，效能可能會存在延遲。音量最終達到標稱性能。但是，可以透過使用[快速快照還原 (FSR)](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-fast-snapshot-restore.html) 快照來避免這種延遲。
+ 可以使用 [EBS 快照的生命週期管理](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/)。

請考慮下列使用已啟用 VSS 快照的限制：
+ 您無法使用 SQL Server 執行個體的加密快照執行跨區域point-in-time復原。
+ 您無法建立未加密執行個體的加密快照。
+ 您無法還原個別資料庫，因為快照是在 EBS 磁碟區層級拍攝。
+ 您無法將執行個體還原至 本身。
+ 資料庫執行個體的快照必須使用與資料庫執行個體相同的 AWS Key Management Service (AWS KMS) 金鑰加密。
+ 在快照備份過程中，儲存 I/O 會暫停幾秒鐘 (約 10 毫秒)。

## 使用 的 SQL Server 備份 AWS Backup
<a name="sql-server-backup-aws-backup"></a>

您可以使用 來[AWS Backup](https://aws.amazon.com/backup/)集中和自動化跨 的資料保護 AWS 服務。 AWS Backup 提供具成本效益、全受管、以政策為基礎的解決方案，可簡化大規模的資料保護。 AWS Backup 也可協助您支援法規合規義務，並實現業務持續性目標。與 一起 AWS Organizations， AWS Backup 可讓您集中部署資料保護 （備份） 政策，以設定、管理和管理整個組織 AWS 帳戶 和資源的備份活動。

下圖顯示 EC2 上 SQL Server 備份和還原解決方案的架構 AWS Backup。

![\[AWS Backup 架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/aws_backup_arch.png)


請考慮使用 備份 SQL Server 的下列優點 AWS Backup：
+ 可自動化備份排程、保留管理和生命週期管理。
+ 您可以集中整個組織的備份策略，橫跨多個帳戶和 AWS 區域。
+ 您可以集中監控備份活動，並跨 發出提醒 AWS 服務。
+ 可以為災難復原規劃實作跨區域備份。
+ 該解決方案可支援跨帳戶備份。
+ 可以使用次要備份加密執行安全備份。
+ 所有備份都支援使用加密金鑰進行 AWS KMS 加密。
+ 該解決方案可於 TDE 搭配使用。
+ 可以從 AWS Backup 主控台還原至特定復原點。
+ 可以備份整個 SQL Server 執行個體，其中包括所有 SQL Server 資料庫。

## 資料庫層級備份
<a name="sql-server-backup-database"></a>

這些方法使用原生 Microsoft SQL Server 備份功能。您可以對 SQL Server 執行個體上的個別資料庫進行備份，並還原個別資料庫。

原生 SQL Server 備份和還原的每個選項還支援下列各項：
+ 壓縮和多檔案備份
+ 完整、差異和 T 日誌備份
+ TDE 加密的資料庫

### SQL Server 原生備份和還原至 Amazon S3
<a name="sql-server-backup-native-s3"></a>

Amazon EC2 上的 SQL Server 支援 SQL Server 資料庫的原生備份和還原。您可以對 SQL Server 資料庫進行備份，然後將備份檔案還原到現有的資料庫或新的 SQL Server EC2 執行個體、Amazon RDS for SQL Server 或內部部署伺服器。

Storage Gateway 是一種混合雲端儲存服務，可讓內部部署應用程式存取幾乎無限制的雲端儲存。您可以使用 Storage Gateway 將 Microsoft SQL Server 資料庫直接備份到 Amazon S3，減少內部部署儲存體使用量，並使用 Amazon S3 提供持久、可擴展且符合成本效益的儲存體。

下圖顯示使用 Storage Gateway 和 Amazon S3 的原生備份和還原解決方案的架構。

![\[Storage Gateway 和 Amazon S3 架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/storage_gateway_backup_arch.png)


考慮將原生 SQL Server 備份與 Storage Gateway 搭配使用的下列優點：
+ 您可以將儲存閘道映射為 EC2 執行個體上的 Server Message Block (SMB) 檔案共用，然後將備份傳送至 Amazon S3。
+ 備份會直接前往 S3 儲存貯體或透過 Storage Gateway 檔案快取。
+ 支援多檔案備份。

考慮使用 Storage Gateway 進行原生備份的下列限制：
+ 必須為每個單獨的資料庫設定備份和還原。
+ 必須管理備份檔案的 [Amazon S3 生命週期政策](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)。

如需如何設定 Storage Gateway 的詳細資訊，請參閱 AWS 部落格上的[使用文章在 Amazon S3 中存放 SQL Server 備份 AWS Storage Gateway](https://aws.amazon.com/blogs/database/storing-sql-server-backups-in-amazon-s3-using-aws-storage-gateway/)。

### SQL Server 原生備份至 EBS 磁碟區
<a name="sql-server-backup-native-ebs"></a>

您可以對 SQL Server 資料庫進行原生備份，並將檔案存放在 Amazon EBS 磁碟區中。Amazon EBS 是高效能的區塊儲存服務。EBS 磁碟區是彈性的，支援加密。它們可以分離並連接到 EC2 執行個體。您可以在相同 EBS 磁碟區類型或不同 EBS 磁碟區類型上的 EC2 執行個體上備份 SQL Server。備份至不同 EBS 磁碟區的優點之一是節省成本。

下圖顯示原生備份至 EBS 磁碟區的架構。



![\[Amazon EBS 磁碟區架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/ebs_backup_arch.png)


請考慮使用 SQL Server 原生備份到 EBS 磁碟區的下列優點：
+ 您可以備份 SQL Server EC2 執行個體上的單獨資料庫，並還原單獨資料庫，而不必還原整個執行個體。
+ 支援多檔案備份。
+ 可以使用 SQL Server Agent 和 SQL Server 作業引擎來排程備份作業。
+ 可以透過硬體選擇獲得效能優勢。例如，可以使用 st1 儲存磁碟區來達到更高的輸送量。

考慮使用原生備份至 EBS 磁碟區的下列限制：
+ 必須從 EBS 磁碟區手動將備份移至 Amazon S3。
+ 對於大型備份，您必須管理 Amazon EC2 上的磁碟空間。
+ 在 EC2 執行個體上，Amazon EBS 輸送量可能成為瓶頸。
+ 在 Amazon EBS 上儲存備份需要額外的儲存空間。

### SQL Server 原生備份至 Amazon FSx for Windows File Server
<a name="sql-server-backup-native-fsx"></a>

[Amazon FSx for Windows File Server](https://aws.amazon.com/fsx/windows/) 是全受管的原生 Windows 檔案系統，提供高達 64 TB 的儲存體，旨在提供快速、可預測且一致的效能。 AWS 入門的[原生支援，可在 FSx for Windows File Server 上部署異地同步備份檔案系統](https://aws.amazon.com/blogs/aws/amazon-fsx-for-windows-file-server-update-new-enterprise-ready-features/)。 FSx 原生支援可讓您更輕鬆地在 上部署 Windows 檔案儲存 AWS 體，並跨多個可用區域提供高可用性和備援。 AWS 也推出對 [SMB 持續可用 (CA) 檔案共用](https://aws.amazon.com/about-aws/whats-new/2019/11/amazon-fsx-for-windows-file-server-adds-support-for-high-availability-microsoft-sql-server-deployments/)的支援。您可以使用 FSx for Windows File Server 做為 SQL Server 資料庫的備份儲存。

下圖顯示 FSx for Windows File Server 的原生 SQL Server 備份架構。

![\[FSx for Windows File Server 備份架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/fsx_backup_arch.png)


考慮使用原生 SQL Server 備份至 FSx for Windows File Server 的下列優點：
+ 您可以將 SQL Server 資料庫備份到 Amazon FSx 檔案共用。
+ 您可以備份 SQL Server 執行個體上的單獨資料庫，並還原單獨資料庫，而不必還原整個執行個體。
+ 支援分段備份。
+ 可以使用 SQL Server Agent 和作業引擎來排程備份作業。
+ 相較於 Amazon EBS，執行個體的網路頻寬較高。

考慮使用原生 SQL Server 備份至 FSx for Windows File Server 的下列限制：
+ 您必須使用 AWS Backup 或 ，手動將備份從 Amazon FSx 移至 Amazon S3 AWS DataSync。
+ 在 Amazon FSx 上，大型備份可能需要額外的磁碟空間管理開銷。
+ EC2 執行個體網路輸送量可能是瓶頸。
+ 需要額外的儲存空間才能將備份儲存在 FSx for Windows File Server 上。

### SQL Server 備份至 Amazon FSx for NetApp ONTAP
<a name="sql-server-backup-fsx-netapp"></a>

FSx for ONTAP 的快照一律會一致當機，但需要您查詢資料庫 （或暫停資料庫的輸入/輸出），才能建立應用程式一致快照。您可以使用 NetApp SnapCenter （一種具有特定應用程式的外掛程式的協同運作工具，包括 SQL Server) 搭配 FSx for ONTAP 來建立應用程式一致的快照，並保護、複寫和複製資料庫，無需額外費用。

#### NetApp SnapCenter
<a name="sql-server-backup-netapp-snapcenter"></a>

NetApp SnapCenter 是應用程式一致資料保護的統一平台。SnapCenter 將快照稱為備份。本指南採用相同的命名慣例。SnapCenter 提供單一窗格，用於管理應用程式一致的備份、還原和複製。您可以為特定資料庫應用程式新增 SnapCenter 外掛程式，以建立應用程式一致的備份。SQL Server 的 SnapCenter 外掛程式提供下列功能，可簡化資料保護工作流程。
+ 完整備份和日誌備份的精細程度備份和還原選項
+ 就地還原和還原至替代位置

如需 SnapCenter 的詳細資訊，請參閱 AWS 儲存部落格上的[使用 NetApp SnapCenter 搭配 Amazon FSx for NetApp ONTAP 保護 SQL Server 工作負載](https://aws.amazon.com/blogs/storage/using-netapp-snapcenter-with-amazon-fsx-for-netapp-ontap-to-protect-your-sql-server-workloads/)文章。

### 備份的成本最佳化
<a name="sql-server-backup-cost-opt"></a>

下列選項可協助您降低儲存 SQL Server 備份的成本 AWS。
+ 在建立備份檔案期間啟用 [SQL Server 壓縮](https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/backup-compression-sql-server?view=sql-server-ver16)，並將最小的檔案傳送至儲存體。例如，3：1 壓縮率表示您在磁碟空間上儲存約 66%。若要查詢這些資料欄，您可以使用下列 Transact-SQL 陳述式：`SELECT backup_size/compressed_backup_size FROM msdb..backupset;` 。
+ 對於前往 S3 儲存貯體的備份，啟用 [Amazon S3 Intelligent-Tiering](https://aws.amazon.com/s3/storage-classes/intelligent-tiering/) 儲存類別，將儲存成本降低 30%。 
+ 對於前往 FSx for Windows File Server 或 FSx for ONTAP 的備份，請使用單一可用區域節省 50% 的成本 （相較於使用多個可用區域）。如需定價資訊，請參閱 [Amazon FSx for Windows File Server 定價](https://aws.amazon.com/fsx/windows/pricing/)和 [Amazon FSx for NetApp ONTAP 定價](https://aws.amazon.com/fsx/netapp-ontap/pricing/)。
+ SQL Server 2022 最有效率的選項是直接備份到 Amazon S3。您可以避免 Storage Gateway 來節省額外的成本。

### 備份的基準測試結果
<a name="sql-server-backup-benchmark"></a>

本節根據本指南涵蓋的備份解決方案的效能基準測試結果，比較範例 1 TB 資料庫的成本和效能觀點的下列選項。
+ **EC2 執行個體規格 **– r5d.8xlarge 搭配 Windows Server 2019 和 SQL Server 2019 開發人員版本
+ **資料庫規格** – 1 TB 大小，停用 TDE

測試是以 r5d.8xlarge 執行個體和 1 TB SQL Server 資料庫做為來源來執行。來源系統是根據最佳實務設定，而來源資料庫包含四個資料檔案 （每個 250 GB) 和一個分散在個別 gp3 磁碟區的日誌檔案 (50 GB)。SQL Server 原生`BACKUP`命令包含寫入 10 個備份檔案、使用壓縮來最佳化備份效能，並減少透過網路傳送並寫入目標的資料量。在所有測試案例中，儲存效能是瓶頸。

對於這些類型的測試，有各種各樣的可能組態。此測試著重於最佳化效能、成本、可擴展性和實際使用案例。下表顯示針對備份目標選項擷取的效能指標。


****  

| 備份選項 | Level | 執行持續時間 (Appx) | 備份速率 | 每月成本 USD\$1 | 
| --- | --- | --- | --- | --- | 
| 本機 EBS st1 HDD 的原生備份，2 TB | 資料庫 | 最低 00：30：46 | 554.7 Mbps | 92.16 美元 | 
| 本機 EBS SSD gp3 的原生備份，2 TB | 資料庫 | 最低 00：22：00 | 512 Mbps | 193.84 美元 | 
| 原生備份至 FSx for Windows File Server HDD，2 TB @512 Mbps 輸送量 | 資料庫 | 最低 00：20：58 | 814.0 Mbps | [1，146 美元](https://calculator.aws/#/estimate?id=e13d8a385d25b2d4f1320c5b1156b953355b7c13) | 
| FSx for Windows File Server SSD 的原生備份，2 TB @512 Mbps 輸送量 | 資料庫 | 最低 00：20：00 | 814.0 Mbps | [1，326 美元](https://calculator.aws/#/estimate?id=e13d8a385d25b2d4f1320c5b1156b953355b7c13) | 
| 原生備份至具有 2 TB gp3 的 S3 檔案閘道 m6i.4xlarge (16 vCPU，64 GB) | 資料庫 | 00：23：20 分鐘 | 731.5 Mbps | 470.42 美元 | 
| EBS VSS 快照 | EBS 磁碟區 | 00：00：02 秒00：00：53 秒 | 不適用快照 | [51 美元](https://calculator.aws/#/estimate?id=e13d8a385d25b2d4f1320c5b1156b953355b7c13) | 
| AWS Backup (AMI 備份） | AMI | 00：00：04 秒最低 00：08：00 | 不適用快照 | [75 美元](https://calculator.aws/#/estimate?id=e13d8a385d25b2d4f1320c5b1156b953355b7c13) | 
| 直接原生 SQL Server 備份至 Amazon S3 (SQL Server 2022) | 資料庫 | 最低 00：12：00 | 731.5 Mbps | [前 50 TB/月，每 GB \$10.023/月 \$123.55](https://calculator.aws/#/estimate?id=e13d8a385d25b2d4f1320c5b1156b953355b7c13) | 
| ONTAP 的 FSx 原生備份 （使用 SnapCenter) | 資料庫 | – | – | [440.20 美元](https://calculator.aws/#/estimate?id=8c9a0b2c296f9839f3ca16bdc2dcd9a6f52f1faf) | 

上表假設下列事項：
+ 不包括資料傳輸和 Amazon S3 成本。
+ 儲存體價格包含在執行個體定價中。
+ 成本以 `us-east-1` 區域為基礎。
+ 輸送量和 IOPS 成長 10%，而多個備份的整體變化率為當月的 10%。

測試結果顯示最快的選項是原生 SQL Server 資料庫備份至 FSx for Windows File Server。對 Storage Gateway 和本機連接的 EBS 磁碟區的備份是更具成本效益的選項，但效能較慢。對於伺服器層級備份 (AMI)，我們建議使用 AWS Backup 以獲得最佳效能、成本和管理性。

## 成本最佳化建議
<a name="sql-server-backup-opt-rec"></a>

了解在 Amazon EC2 上備份 SQL Server 的可能解決方案，是保護資料、確保您符合備份需求，以及制定計畫以從關鍵事件中復原的關鍵。本節中探索的備份和還原 SQL Server 執行個體和資料庫的不同方式，可協助您設計備份和還原策略，以保護資料並滿足組織的需求。

本節涵蓋下列備份選項：
+ 壓縮
+ Amazon S3 Intelligent-Tiering
+ 單一可用區域
+ 備份至 URL

每個選項所提供的指引都是高階。如果您想要在您的組織中實作任何這些建議，我們建議您聯絡您的客戶團隊。然後，團隊可以與 Microsoft 專家 SA 互動以領導對話。您也可以傳送電子郵件至 optimize-microsoft@amazon.com 來聯絡 。

總而言之，我們建議下列事項：
+ 如果您使用的是 SQL Server 2022，則備份到 Amazon S3 是最符合成本效益的選項。
+ 如果您使用的是 SQL Server 2019 和舊版 SQL Server，請考慮將 Amazon S3 支援的 Storage Gateway 備份為最具成本效益的選項。

### 壓縮
<a name="sql-server-backup-opt-rec-compression"></a>

壓縮的目標是減少每個備份耗用的儲存空間，這有利於各種儲存選項。您必須在 SQL Server [執行個體層級啟用 SQL Server](https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/view-or-configure-the-backup-compression-default-server-configuration-option?view=sql-server-ver16) 備份的壓縮。下列範例示範如何使用備份資料庫新增壓縮關鍵字：

`BACKUP DATABASE <database_name> TO DISK WITH COMPRESSION (ALGORITHM = QAT_DEFLATE)`

### Amazon S3 Intelligent-Tiering
<a name="sql-server-backup-opt-rec-tiering"></a>

對於前往 Amazon S3 儲存貯體的備份，您可以啟用 [Amazon S3 Intelligent-Tiering](https://aws.amazon.com/s3/storage-classes/intelligent-tiering/) 做為 Amazon S3 File Gateway [儲存類別](https://docs.aws.amazon.com/filegateway/latest/files3/storage-classes.html#ia-file-gateway)。這可降低高達 30% 的儲存成本。然後，您可以使用可與 [Active Directory 網域](https://docs.aws.amazon.com/filegateway/latest/files3/CreatingAnSMBFileShare.html#configure-SMB-settings)整合的 SMB 檔案共用，將 S3 檔案閘道掛載到您的 SQL 伺服器。這為您提供共享的存取控制、利用現有服務帳戶的能力，以及使用常見 Microsoft 聚焦檔案通訊協定存取 Amazon S3。對於可能沒有直接連線至網域控制站的帳戶，您可以使用 [Active Directory Connector](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_ad_connector.html) 來促進與內部部署或雲端中 Active Directory 的通訊。若要在閘道上設定 Active Directory 設定，您必須指定網域控制器的 Active Directory Connector IPs，以將請求代理至 Active Directory。

下圖顯示以 S3 Intelligent-Tiering 為基礎的解決方案架構。

![\[S3 Intelligent-Tiering 架構\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/ad_connector_arch.png)


根據預設，寫入 S3 儲存貯體的備份檔案會使用 Standard 層。若要將備份檔案從標準層轉換為 S3 Intelligent-Tiering，您必須[建立生命週期規則](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html)。您也可以使用 [AWS 管理主控台](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-intelligent-tiering.html#enable-auto-archiving-int-tiering)來啟用 S3 Intelligent-Tiering。如需詳細資訊，請參閱 文件中的 AWS [開始使用 Amazon S3 Intelligent-Tiering](https://aws.amazon.com/getting-started/hands-on/getting-started-using-amazon-s3-intelligent-tiering/)。

### 單一可用區域
<a name="sql-server-backup-opt-rec-singleAZ"></a>

若要建立單一可用區域檔案系統，請在[建立 FSx for Windows File Server 檔案系統](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started.html)時選擇單一可用區域選項。Amazon FSx 也會每天使用 Windows Volume Shadow Copy Service 對您的檔案系統進行高耐用性備份 （存放在 Amazon S3 中），並可讓您隨時進行額外的備份。請記住使用單一可用區域的一些問題。例如，如果佈建檔案系統的受影響可用區域一次中斷數小時，則無法存取 SMB 檔案共用。如果您需要存取資料，則必須從來源區域內可用可用區域中的備份還原資料。如需詳細資訊，請參閱本指南[的使用單一可用區域](storage-fsx-single-az.md)一節。

### 備份至 URL
<a name="sql-server-backup-opt-rec-url"></a>

針對 SQL Server 2022，[備份至 URL](https://www.microsoft.com/en-us/sql-server/blog/2022/09/29/backup-and-restore-to-url-for-s3-compatible-object-storage/) 功能允許直接備份至 Amazon S3。這是在 中執行 SQL Server 2022 的理想備份方法， AWS 因為您在儲存層取得 Amazon S3 的完整功能集，並移除先前版本所需的設備成本 AWS Storage Gateway ，以促進此功能。實作此功能時，需要考慮兩個主要成本：資料傳輸成本和選擇的 S3 儲存體方案。如果您想要 Amazon S3 的原生災難復原功能，則必須考量[該跨區域複寫](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html#crr-scenario)會產生跨區域[資料輸出成本](https://aws.amazon.com/s3/pricing/?p=pm&c=s3&z=4)。若要進一步了解如何設定此選項，請參閱部落格 Microsoft 工作負載 AWS 上的將 [SQL Server 資料庫備份至 Amazon S3](https://aws.amazon.com/blogs/modernizing-with-aws/backup-sql-server-to-amazon-s3/) 文章。

## 其他資源
<a name="sql-server-backup-resources"></a>
+ [Amazon EC2 上 SQL Server 的備份和還原選項](https://docs.aws.amazon.com/prescriptive-guidance/latest/sql-server-managing-on-aws/welcome.html) (AWS 方案指引）
+ [使用 的 Amazon RDS Point-in-time復原和持續備份 AWS Backup](https://aws.amazon.com/blogs/storage/point-in-time-recovery-and-continuous-backup-for-amazon-rds-with-aws-backup/) (AWS 儲存部落格）
+ [使用 NetApp SnapCenter 搭配 Amazon FSx for NetApp ONTAP 保護您的 SQL Server 工作負載](https://aws.amazon.com/blogs/storage/using-netapp-snapcenter-with-amazon-fsx-for-netapp-ontap-to-protect-your-sql-server-workloads/) (AWS 儲存部落格）
+ [開始使用 Amazon S3 Intelligent-Tiering](https://aws.amazon.com/getting-started/hands-on/getting-started-using-amazon-s3-intelligent-tiering/) (AWS 入門資源中心）
+ [Amazon RDS for SQL Server 的備份和還原策略](https://aws.amazon.com/blogs/database/backup-and-restore-strategies-for-amazon-rds-for-sql-server/) (AWS 資料庫部落格）
+ [將內部部署 Microsoft SQL Server 資料庫遷移至 Amazon EC2](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.html) (AWS 方案指引）
+ [在 Amazon EC2 上部署 Microsoft SQL Server 的最佳實務](https://docs.aws.amazon.com/whitepapers/latest/best-practices-for-deploying-microsoft-sql-server/best-practices-for-deploying-microsoft-sql-server.html) (AWS 白皮書）

# 現代化 SQL Server 資料庫
<a name="modernize-sql-server"></a>

## 概觀
<a name="modernize-sql-server-overview"></a>

如果您開始將舊版資料庫現代化以實現可擴展性、效能和成本最佳化，您可能會面臨 SQL Server 等商業資料庫的挑戰。商業資料庫非常昂貴、鎖定客戶，並提供懲罰性授權條款。本節提供從 SQL Server 遷移和現代化至開放原始碼資料庫的選項的高階概觀，以及為工作負載選擇最佳選項的相關資訊。

您可以將 SQL Server 資料庫重構為開放原始碼資料庫，例如 Amazon Aurora PostgreSQL，以節省 Windows 和 SQL Server 授權成本。Aurora 等雲端原生現代資料庫結合了開放原始碼資料庫的彈性和低成本，以及商業資料庫的強大企業級功能。如果您有可變工作負載或多租戶工作負載，您也可以遷移至 [Aurora 無伺服器 V2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html)。視工作負載特性而定，這可將成本降低 90%。此外， AWS 提供 [Babelfish for Aurora PostgreSQL](https://aws.amazon.com/rds/aurora/babelfish/) 等功能、 [AWS Schema Conversion Tool (AWS SCT)](https://aws.amazon.com/dms/schema-conversion-tool/) 等工具，以及 [AWS Database Migration Service (AWS DMS)](https://aws.amazon.com/dms/) 等服務，以簡化 SQL Server 資料庫的遷移和現代化 AWS。

## 資料庫產品
<a name="modernize-sql-server-database"></a>

從 Windows 上的 SQL Server 遷移到開放原始碼資料庫，例如 Amazon Aurora、Amazon RDS for MySQL 或 Amazon RDS for PostgreSQL，可以大幅節省成本，而不會犧牲效能或功能。考慮下列各項：
+ 從 Amazon EC2 上的 SQL Server Enterprise Edition 切換到 Amazon RDS for PostgreSQL 或 Amazon RDS for MySQL 可以節省高達 80% 的成本。
+ 從 Amazon EC2 上的 SQL Server Enterprise Edition 切換至 Amazon Aurora PostgreSQL 相容版本或 Amazon Aurora MySQL 相容版本，可節省高達 70% 的成本。

對於傳統資料庫工作負載，Amazon RDS for PostgreSQL 和 Amazon RDS for MySQL 地址要求，並為關聯式資料庫提供經濟實惠的解決方案。Aurora 新增了許多先前僅限於昂貴商業廠商的可用性和效能功能。Aurora 中的彈性功能是增加的成本。不過，相較於其他商業廠商的類似功能，Aurora 的彈性成本仍然比相同類型功能的商業軟體費用便宜。Aurora 架構經過最佳化，相較於標準 MySQL 和 PostgreSQL 部署，可大幅改善效能。

由於 Aurora 與開放原始碼 PostgreSQL 和 MySQL 資料庫相容，因此具有額外的可攜性優勢。無論最佳選項是 Amazon RDS for PostgreSQL、Amazon RDS for MySQL 或 Aurora，都是為了了解業務需求，並將必要的功能映射到最佳選項。

## Amazon RDS 和 Aurora 比較
<a name="modernize-sql-server-rds-aurora"></a>

下表摘要說明 Amazon RDS 和 Amazon Aurora 之間的主要差異。


****  

| Category | Amazon RDS for PostgreSQL 或 Amazon RDS for MySQL | Aurora PostgreSQL 或 Aurora MySQL | 
| --- | --- | --- | 
| 效能 | 良好的效能 | 效能提升 3 倍以上 | 
| 容錯移轉 | 通常為 60–120 秒\$1 | 通常為 30 秒 | 
| 可擴展性 | 最多 5 個僅供讀取複本以秒為單位的延遲 | 最多 15 個僅供讀取複本以 毫秒為單位的延遲 | 
| 儲存 | 高達 64 TB | 高達 128 TB | 
| 儲存 HA | 具有一或兩個待命的異地同步備份，每個都有資料庫副本 | 根據預設，跨 3 個可用區域 6 個資料複本 | 
| 備份 | 每日快照和日誌備份 | 連續、非同步備份至 Amazon S3 | 
| Aurora 的創新 | NA | 100 GB快速資料庫複製 | 
|   | 自動擴展僅供讀取複本 |   | 
|   | 查詢計劃管理 |   | 
|   | Aurora Serverless |   | 
|   | 具有全域資料庫的跨區域複本 |   | 
|   | 叢集快取管理\$1\$1 |   | 
|   | 平行查詢 |   | 
|   | 資料庫活動串流 |   | 

\$1大型交易可能會增加容錯移轉時間

\$1\$1可在 Aurora PostgreSQL 中使用

下表顯示本節涵蓋的不同資料庫服務的預估每月成本。


****  

| 資料庫服務 | 每月成本 USD\$1 | AWS 定價計算工具 （需要 AWS 帳戶) | 
| --- | --- | --- | 
| Amazon RDS for SQL Server Enterprise Edition | 3，750 美元 | [預估](https://calculator.aws/#/estimate?id=16f190d818045bb99fb59659cecca80f92db4bbc) | 
| Amazon RDS for SQL Server Standard 版 | 2，318 美元 | [預估](https://calculator.aws/#/estimate?id=5a5e9832ae80fd9ad9e8010c9a17f57d5a0415ca) | 
| Amazon EC2 上的 SQL Server Enterprise Edition | 2，835 美元 | [預估](https://calculator.aws/#/estimate?id=0976f53e9b1b55d5475dc394c8caae9d5581183b) | 
| Amazon EC2 上的 SQL Server Standard 版 | 1，345 美元 | [預估](https://calculator.aws/#/estimate?id=3cada8ab6d72b68a2eb3bc92927990c9f7e264ca) | 
| Amazon RDS for PostgreSQL | 742 美元 | [預估](https://calculator.aws/#/estimate?id=bd825d40c79c0df8f0cf053d55ca39acc8a927fe) | 
| Amazon RDS for MySQL | 712 美元 | [預估](https://calculator.aws/#/estimate?id=c0f61d7b67652e58df5bf6cb244e9455ff4a8558) | 
| Aurora PostgreSQL | 1，032 美元 | [預估](https://calculator.aws/#/estimate?id=a557d7d740e5d87c9764bd369de81a5873dad053) | 
| Aurora MySQL | 1，031 美元 | [預估](https://calculator.aws/#/estimate?id=5924d827c98beadda65368c8e64eb249c001afd6) | 

\$1 儲存體價格包含在執行個體定價中。成本以 `us-east-1`區域為基礎。輸送量和 IOPS 是假設。計算適用於 r6i.2xlarge 和 r6g.2xlarge 執行個體。

## 成本最佳化建議
<a name="modernize-sql-server-opt-rec"></a>

異質資料庫遷移通常需要將資料庫結構描述從來源轉換為目標資料庫引擎，並將資料從來源遷移至目標資料庫。遷移的第一步是評估 SQL Server 結構描述和程式碼物件並將其轉換為目標資料庫引擎。

您可以使用 [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 來評估資料庫與各種目標開放原始碼資料庫選項的相容性，例如 Amazon RDS for MySQL 或 Amazon RDS for PostgreSQL、Aurora MySQL 和 PostgreSQL。您也可以使用 Babelfish Compass 工具來評估與 Babelfish for Aurora PostgreSQL 的相容性。這可讓 AWS SCT 和 Compass 強大的工具了解在決定遷移策略之前涉及的前期工作。如果您決定繼續， 會自動 AWS SCT 執行結構描述所需的變更。Babelfish Compass 背後的核心理念是允許 SQL 資料庫移至 Aurora，無需或很少修改。Compass 將評估現有的 SQL 資料庫，以確定是否可以完成此操作。如此一來，在將資料從 SQL Server 遷移到 Aurora 之前，就會知道結果。

AWS SCT 會自動將資料庫結構描述和程式碼轉換和遷移至目標資料庫引擎。您可以使用 Babelfish for Aurora PostgreSQL 將資料庫和應用程式從 SQL Server 遷移至 Aurora PostgreSQL，而不需要變更結構描述或變更最少。這可以加速遷移。

遷移結構描述之後，您可以使用 AWS DMS 遷移資料。 AWS DMS 可以執行完整資料載入並複寫變更，以盡可能減少停機時間來執行遷移。

本節會更詳細地探索下列工具：
+ AWS Schema Conversion Tool
+ Babelfish for Aurora PostgreSQL
+ Babelfish Compass
+ AWS Database Migration Service

### AWS Schema Conversion Tool
<a name="modernize-sql-server-opt-rec-schema"></a>

您可以使用 AWS SCT 來評估現有的 SQL Server 資料庫，並評估與 Amazon RDS 或 Aurora 的相容性。若要簡化遷移程序，您也可以使用 在異質資料庫遷移中，將結構描述從一個資料庫引擎 AWS SCT 轉換為另一個資料庫引擎。您可以使用 AWS SCT 來評估您的應用程式，並針對撰寫 C\$1、C\$1\$1、Java 和其他語言的應用程式轉換內嵌應用程式程式碼。如需詳細資訊，請參閱 文件中的 AWS SCT [使用 轉換應用程式 SQL AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.App.html)。

AWS SCT 是支援許多資料庫[來源](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.html)的免費 AWS 工具。若要使用 AWS SCT，請將其指向來源資料庫，然後執行評估。然後， 會[AWS SCT](https://aws.amazon.com/blogs/database/convert-database-schemas-and-application-sql-using-the-aws-schema-conversion-tool-cli/)評估結構描述並產生評估報告。評估報告包括執行摘要、複雜性和遷移工作、適合的目標資料庫引擎，以及轉換的建議。若要下載 AWS SCT，請參閱 文件中的 AWS SCT [安裝、驗證和更新 AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html)。

下表顯示 AWS SCT 產生的範例執行摘要，以顯示將資料庫變更為不同目標平台所涉及的複雜性。


|  |  |  | 
| --- |--- |--- |
| **目標平台** | **自動或最小變更** | **複雜動作** | 
|  | **儲存物件** | **程式碼物件** | **轉換動作** | **儲存物件** | **程式碼物件** | 
| Amazon RDS for MySQL | 60 (98%) | 8 (35%) | 42 | 1 (2%) | 1 | 15 (65%) | 56 | 
| Amazon Aurora MySQL-Compatible Edition | 60 (98%) | 8 (35%) | 42 | 1 (2%) | 1 | 15 (65%) | 56 | 
| Amazon RDS for PostgreSQL | 60 (98%) | 12 (52%) | 54 | 1 (2%) | 1 | 11 (48%) | 26 | 
| Amazon Aurora PostgreSQL-Compatible Edition | 60 (98%) | 12 (52%) | 54 | 1 (2%) | 1 | 11 (48%) | 26 | 
| Amazon RDS for MariaDB | 60 (98%) | 7 (30%) | 42 | 1 (2%) | 1 | 16 (70%) | 58 | 
| Amazon Redshift | 61 (100%) | 9 (39%) | 124 | 0 (0%) | 0 | 14 (61%) | 25 | 
| AWS Glue | 0 (0%) | 17 (100%) | 0 | 0 (0%) | 0 | 0 (0%) | 0 | 
| Babelfish | 59 (97%) | 10 (45%) | 20 | 2 (3%) | 2 | 12 (55%) | 30 | 

 AWS SCT 報告也提供無法自動轉換之結構描述元素的詳細資訊。您可以參考[AWS 遷移手冊](https://aws.amazon.com/blogs/database/the-database-migration-playbook-has-landed/)來關閉 AWS SCT 轉換差距並最佳化目標結構描述。有許多資料庫遷移手冊可協助異質遷移。

### Babelfish for Aurora PostgreSQL
<a name="modernize-sql-server-opt-rec-babelfish"></a>

Babelfish for Aurora PostgreSQL 擴展了 Aurora PostgreSQL，能夠接受來自 SQL Server 用戶端的資料庫連線。Babelfish 可讓最初為 SQL Server 建置的應用程式直接與 Aurora PostgreSQL 搭配使用，無需變更程式碼，也無需變更資料庫驅動程式。Babelfish 將 Aurora PostgreSQL 轉換為雙語，以便 Aurora PostgreSQL 可以使用 T-SQL 和 PL/pgSQL 語言。Babelfish 會將從 SQL Server 遷移到 Aurora PostgreSQL 的工作量降至最低。這可加速遷移、將風險降至最低，並大幅降低遷移成本。您可以繼續使用 T-SQL 後遷移，但也可以[選擇使用 PostgreSQL 原生工具](https://aws.amazon.com/blogs/database/category/database/amazon-aurora/babelfish-for-aurora-postgresql/)進行開發。

下圖說明使用 T-SQL 的應用程式如何連接到 SQL Server 中的預設連接埠 1433，並使用 Babelfish 轉譯器與 Aurora PostgreSQL 資料庫通訊，而使用 PL/pgSQL 的應用程式可以使用 Aurora PostgreSQL 中的預設連接埠 5432 直接並同時連接到 Aurora PostgreSQL 資料庫。

![\[Babelfish for Aurora PostgreSQL。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/images/babelfish_tsql.png)


Babelfish 不支援特定 SQL Server T-SQL 功能。因此，Amazon 提供評估工具，對您的 SQL 陳述式進行line-by-line分析，並判斷 Babelfish 是否不支援其中任何陳述式。

Babelfish 評估有兩個選項。 AWS SCT 可以評估 SQL Server 資料庫與 Babelfish 的相容性。另一個選項是 Babelfish Compass 工具，這是建議的解決方案，因為 Compass 工具會根據 Babelfish for Aurora PostgreSQL 的新版本進行更新。

### Babelfish Compass
<a name="modernize-sql-server-opt-rec-babelfish-compass"></a>

[Babelfish Compass](https://github.com/babelfish-for-postgresql/babelfish_compass) 是免費下載的工具，符合 Babelfish for Aurora PostgreSQL 的最新版本。相反地， AWS SCT 會在一段時間後支援較新的 Babelfish 版本。[Babelfish Compass](https://github.com/babelfish-for-postgresql/babelfish_compass/blob/main/README.md) 會針對 SQL Server 資料庫結構描述執行。您也可以使用 SQL Server Management Studio (SSMS) 等工具來擷取來源 SQL Server 資料庫結構描述。然後，您可以透過 Babelfish Compass 執行結構描述。這會產生報告，詳細說明 SQL Server 結構描述與 Babelfish 的相容性，以及在遷移之前是否需要任何變更。Babelfish Compass 工具也可以自動化許多這些變更，最終加速遷移。

評估和變更完成後，您可以使用 SSMS 或 sqlcmd 等 SQL Server 原生工具，將結構描述遷移至 Aurora PostgreSQL。如需說明，請參閱 AWS 資料庫部落格上的[使用 Babelfish 文章從 SQL Server 遷移至 Amazon Aurora](https://aws.amazon.com/blogs/database/migrate-from-sql-server-to-amazon-aurora-using-babelfish/)。

### AWS Database Migration Service
<a name="modernize-sql-server-opt-rec-database-migration"></a>

遷移結構描述之後，您可以使用 AWS Database Migration Service (AWS DMS) 以最短 AWS 的停機時間將資料遷移至 。 AWS DMS 不僅會執行完整的資料載入，還會在來源系統啟動和執行時，將變更從來源複寫至目的地。在來源和目標資料庫都同步之後，切換活動可能會發生，其中應用程式指向完成遷移的目標資料庫。 AWS DMS 目前， 只會針對 Aurora PostgreSQL 目標使用 Babelfish 執行完整資料載入，而不會複寫變更。如需詳細資訊，請參閱 AWS DMS 文件中的[使用 Babelfish 做為 的目標 AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Babelfish.html)。

AWS DMS 可以同時執行同質 （跨同一資料庫引擎） 和異質 （跨不同資料庫引擎） 遷移。 AWS DMS 支援許多來源和目的地資料庫引擎。如需詳細資訊，請參閱 資料庫部落格中的[使用文章將 SQL Server 資料庫遷移至 Amazon RDS for SQL Server AWS DMS](https://aws.amazon.com/blogs/database/migrating-your-sql-server-database-to-amazon-rds-for-sql-server-using-aws-dms/)。 AWS 

## 其他資源
<a name="modernize-sql-server-resources"></a>
+ [再見 Microsoft SQL Server、Hello Babelfish](https://aws.amazon.com/blogs/aws/goodbye-microsoft-sql-server-hello-babelfish/) (AWS 新聞部落格）
+ [使用 AWS Schema Conversion Tool CLI 轉換資料庫結構描述和應用程式 SQL ](https://aws.amazon.com/blogs/database/convert-database-schemas-and-application-sql-using-the-aws-schema-conversion-tool-cli/)(AWS 資料庫部落格）
+ [使用最佳實務和從 欄位學到的經驗，將 SQL Server 遷移至 Amazon Aurora PostgreSQL ](https://aws.amazon.com/blogs/database/migrate-sql-server-to-amazon-aurora-postgresql-using-best-practices-and-lessons-learned-from-the-field/) (AWS 資料庫部落格）
+ [驗證從 Microsoft SQL Server 遷移到 Amazon RDS for PostgreSQL 和 Amazon Aurora PostgreSQL 的資料庫物件](https://aws.amazon.com/blogs/database/validate-database-objects-post-migration-from-microsoft-sql-server-to-amazon-rds-for-postgresql-and-amazon-aurora-postgresql/) (AWS 資料庫部落格）

# 最佳化 SQL Server 的儲存體
<a name="storage-sql-server"></a>

## 概觀
<a name="storage-sql-server-overview"></a>

本節著重於 EC2 工作負載上 SQL Server 適用的 Amazon Elastic Block Store (Amazon EBS) SSD 儲存體的成本最佳化。

您有多種用於部署和執行 SQL Server 工作負載的儲存選項 AWS。選取正確的儲存體應以用途、架構、耐用性、效能、容量和成本為基礎。執行 SQL Server 工作負載 AWS 的客戶通常會使用 Amazon EBS、NVMe、Amazon FSx 和 Amazon Simple Storage Service (Amazon S3) 儲存體的組合。

Amazon EBS 是連接至 EC2 運算執行個體的網路連接儲存體，用於存放和處理一般作業系統、應用程式、資料庫和備份檔案。Amazon EBS 固態硬碟 (SSD) 儲存包含一般用途 SSD (gp2 和 gp3) 和佈建 IOPS SSD (io1、io2 和 io2BX)。考慮下列各項：
+ 有些 EC2 執行個體，例如 r5d，具有實體連接至主機執行個體的本機 NVMe SSDs。這些磁碟區提供常用於 SQL Server tempdb 或緩衝集區延伸的區塊層級儲存。
+ Amazon FSx for Windows File Server 是全受管檔案儲存服務，而 Amazon FSx for NetApp ONTAP 是建置在 NetApp 熱門 ONTAP 檔案系統上的全受管共用儲存。Amazon FSx 經常用於在高可用性、SQL Server 容錯移轉叢集執行個體 (FCI) 組態中執行 SQL Server 工作負載。此解決方案託管 SQL Server 資料和日誌檔案，可減少 EC2 執行個體上的 EBS 效能需求。
+ Amazon S3 是一種物件儲存服務，提供業界領先的可擴展性、資料可用性、安全性和效能。您可以在 Amazon S3 上存放 SQL Server 原生備份檔案、AMIs、EBS 快照、應用程式日誌等。

## Amazon EBS 的 SSD 儲存類型、效能和成本
<a name="ssd-storage-types-performance-and-cost-for-amazon-ebs"></a>

Amazon EBS 的 SSD 儲存成本通常會隨著耐用性和效能的增加而增加。儲存目前有五種磁碟區類型，每個類型都有[自己的唯一效能指標](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html)。如需 SSD 後端磁碟區的使用案例和特性摘要，請參閱 Amazon EBS 文件[的固態硬碟 (SSD) 磁碟區](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html#vol-type-ssd)一節中的表格。

您可以使用 Amazon CloudWatch 來監控 SSD 效能、擷取趨勢資料，以及在達到特定閾值時設定警示。如果您在 上執行 SQL Server 工作負載 AWS，請考慮啟用[詳細的監控](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-metrics-basic-detailed.html)和部署 [CloudWatch 自訂指標](https://aws.amazon.com/blogs/database/monitor-your-microsoft-sql-server-using-custom-metrics-with-amazon-cloudwatch-and-aws-systems-manager/)，以擷取詳細的磁碟效能指標，例如磁碟延遲、IOPS、輸送量、磁碟佇列長度、已使用容量與可用容量等。您可以使用這些 CloudWatch 效能指標來識別佈建不足和過度佈建的儲存，並提供歷史資料點來準確定義儲存需求。

Amazon EBS 的 SSD 儲存成本也會因配置的容量而有所不同。下表顯示不同磁碟區的比較。所有磁碟區類型都有 1 TB 的容量和類似的效能組態。


****  

| 磁碟區類型 | 最大 IOPS (16 KiB I/O) | 最大輸送量 (128 KiB I/O) | 每 1TB 的價格 | 節省成本百分比 | 
| --- | --- | --- | --- | --- | 
| gp2 | 3,000 | 250 | 102.40 美元 |   | 
| gp3 | 3,000 | 250 | 86.92 美元 | 15% | 
| io1 | 16,000 | 500 | 1，168 美元 |   | 
| io2 | 16,000 | 500 | 1，168 美元 |   | 
| gp3 | 16,000 | 500 | 146.92 美元 | 87% | 
| io2bx | 16,000 | 4,000 | 1，168 美元 |   | 
| gp3 | 16,000 | 1,000 | 181.92 美元 | 84% | 

**注意**  
上表中的效能和成本指標是根據 的[預估](https://calculator.aws/#/estimate?id=b637bb9c21ae8ad62f440e349dd2067de80e76b2)，以每個磁碟區為依據 AWS 定價計算工具。 AWS 帳戶 需要 才能存取 中的預估值 AWS 定價計算工具。

Amazon EBS SSD gp3 磁碟區以低成本提供絕佳的效能。對於需要低於 16，000 IOPS 和 500 MiBps 輸送量的工作負載，如果您透過 io1 或 io2 磁碟區選擇 gp3 磁碟區，則最多可節省 87%。

io2 Block Express (io2BX) 磁碟區比一般 io2 磁碟區提供更高的效能。在 16，000 IOPS 時，io1 或 io2 磁碟區只能傳輸 500 MiBps，而 io2BX 磁碟區最多可設定 4，000 MiBps 傳輸量。相較於 io1 和 io2 磁碟區，io2BX 磁碟區以完全相同的價格提供介於 16，000 到 64，000 IOPS 之間的輸送量四倍以上。將一般 io2 磁碟區連接至 io2BX io2BX-supported 磁碟區。 EC2 如需 io2BX-supported EC2 執行個體清單，請參閱 Amazon EBS 文件中的[佈建 IOPS SSD 磁碟區](https://docs.aws.amazon.com/ebs/latest/userguide/provisioned-iops.html#io2-block-express)。在部署新的儲存體之前，您可以使用 [AWS 定價計算工具](https://calculator.aws/)來估算每月成本，並根據耐久性、效能和容量之間的權衡，了解對成本的影響。

## Amazon EBS 的一般 SSD 成本最佳化
<a name="storage-sql-server-overview-ssd-ebs"></a>

我們建議您評估要儲存的內容，並確保您使用的是正確的儲存類型和類別。例如，Amazon S3 提供絕佳的價位、內建生命週期政策和複寫選項，非常適合 SQL Server 備份。SQL Server 2022 能夠直接備份到 Amazon S3，而舊版的 SQL Server 依賴原生本機備份。如果您正在執行舊版 SQL Server，請考慮備份至 Amazon EBS HDD 磁碟區，然後將備份複製到 Amazon S3。此解決方案可以節省 53%，而不是使用 gp3 磁碟區進行備份。

下表顯示 Amazon EBS gp3、Amazon EBS HDD st1 和 Amazon S3 上 1 TB 儲存體的價格差異。


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/storage-sql-server.html)

**注意**  
上表中的成本指標是根據 中的[預估](https://calculator.aws/#/estimate?id=ba6032e10a5f8a82807c1e3b7d5a64ceb2cdcbde) AWS 定價計算工具值。 AWS 帳戶 需要 才能存取 中的預估值 AWS 定價計算工具。

我們建議您考慮下列事項：
+ 啟用詳細的監控和部署 CloudWatch 自訂指標，以準確擷取其儲存效能需求。
+ 將 Amazon EBS 儲存體從 gp2 升級到 gp3，以降低成本、提高靈活性並改善效能。
+ 將 Amazon EBS 儲存體從 io1 升級到 io2，以提高耐用性和效能彈性。
+ 盡可能使用 io2BX 而非 io1 或 io2，以提高耐用性和效能。
+ 選擇儲存體時，請考慮mix-and-match方法，以協助減少容量需求和高效能磁碟區的成本。例如，您可以將低成本 gp3 磁碟區用於根磁碟區 （作業系統）、SQL Server 安裝、系統資料庫 （不包括 tempdb)，以及效能較低的使用者資料庫。這有助於降低 io2 磁碟區的容量和成本，這可以專用於高效能使用者資料庫。
+ 如果您要在 上託管 SQL Server 資料庫 AWS，建議您在每個資料庫使用多個 SQL Server 資料檔案。這可讓 有機會將讀取/寫入工作負載分散到多個磁碟區，進而降低每個磁碟區的效能和容量需求，進而降低成本。
+ 即使生產工作負載需要更高效能的儲存，例如 io1 或 io2/io2BX，請考慮非生產工作負載的 gp3 磁碟區，以協助降低成本。
+ 隨著時間的推移追蹤和趨勢儲存使用率，以輕鬆識別使用量峰值和意外成本。
+ [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 用於根據實際使用率向上或向下擴展 EBS 磁碟區的建議。
+ 使用 的彈性 AWS 來調整 Amazon EBS SSD 磁碟區的效能和容量需求。與內部部署環境不同，您不需要為未來的工作負載過度佈建儲存效能和容量。您可以將現有的 SQL Server 工作負載遷移至 AWS ，並視需要調整效能或容量，同時保持資料庫在線上。

## 其他資源
<a name="storage-sql-server-resources"></a>
+ [Amazon EBS 磁碟區類型](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) (Amazon EBS 文件）
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html) (Amazon EBS 文件）
+ [佈建 IOPS SSD 磁碟區](https://docs.aws.amazon.com/ebs/latest/userguide/provisioned-iops.html) (Amazon EBS 文件）
+ [SSD 執行個體存放區磁碟區](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html) (Amazon EC2 文件）
+ [Amazon EBS 的 Amazon CloudWatch 指標](https://docs.aws.amazon.com/ebs/latest/userguide/using_cloudwatch_ebs.html) (Amazon EBS 文件）
+ [Amazon EC2 儲存最佳化執行個體的規格](https://docs.aws.amazon.com/ec2/latest/instancetypes/so.html) (Amazon EC2 文件）
+ [使用 NetApp SnapCenter 搭配 Amazon FSx for NetApp ONTAP 保護您的 SQL Server 工作負載](https://aws.amazon.com/blogs/storage/using-netapp-snapcenter-with-amazon-fsx-for-netapp-ontap-to-protect-your-sql-server-workloads/) (AWS 儲存部落格）
+ [Amazon EC2 常見問答集](https://aws.amazon.com/ec2/faqs/) (AWS 產品頁面）

# 使用 Compute Optimizer 最佳化 SQL Server 授權
<a name="sql-server-compute-optimizer"></a>

如何使用 最佳化 SQL Server 授權的指引 AWS Compute Optimizer。

## 概觀
<a name="sql-server-compute-optimizer-overview"></a>

[AWS Compute Optimizer](https://docs.aws.amazon.com/compute-optimizer/latest/ug/what-is-compute-optimizer.html) 可以在 Amazon Elastic Compute Cloud (Amazon EC2) 上建議 Microsoft SQL Server 工作負載的授權最佳化機會。Compute Optimizer 可以提供自動化建議，以降低授權成本。來自 Compute Optimizer 的建議會列在具有 Microsoft SQL Server 授權的每個 EC2 執行個體旁。提供的資訊包括建議的儲存機會、EC2 執行個體隨需價格，以及每小時自帶授權 (BYOL) 價格。此資訊可協助您決定是否應該降級授權版本。

Compute Optimizer 會根據推斷的工作負載類型自動探索 Amazon EC2 上的 SQL Server 執行個體。若要檢視授權建議，您可以在 Compute Optimizer 中選取 SQL Server 執行個體，然後使用唯讀資料庫憑證向 [Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) 進行驗證。Compute Optimizer 會分析您是否使用任何 SQL Server Enterprise Edition 功能。如果未使用 Enterprise Edition 功能，Compute Optimizer 建議您降級至 Standard Edition，以降低授權成本。

您也可以使用 Compute Optimizer 為執行 SQL Server 工作負載的 Amazon EC2 執行個體提出調整大小建議。如需詳細資訊，請參閱本指南中的[使用 Compute Optimizer 最佳化 SQL Server 大小](sql-server-sizing-compute-optimizer.md)。

## 成本最佳化建議
<a name="sql-server-compute-optimizer-recommendations"></a>

Compute Optimizer 中的授權建議可協助您評估在 Microsoft SQL Server 中使用的功能，並為工作負載選擇最具成本效益的版本。SQL Server Enterprise Edition 比 Standard Edition 更昂貴。如需詳細資訊，請參閱本指南中的[比較 SQL Server 版本](sql-server-editions.md)，並參閱 Microsoft [網站上的 SQL Server 2022 定價](https://www.microsoft.com/en-us/sql-server/sql-server-2022-pricing)。投資時間來設定 Compute Optimizer 以評估 SQL Server 機群並提供建議，可以大幅降低授權成本。

**授權詳細資訊**頁面提供下列資訊：
+ 使用 資料表來比較您目前的授權設定 （例如版本、模型和執行個體核心數量） 與 Compute Optimizer 建議。
+ 使用使用率圖表來檢閱在分析期間使用的企業版功能數量。

如需詳細資訊，請參閱 Compute Optimizer 文件中的[檢視商業軟體授權建議的詳細資訊](https://docs.aws.amazon.com/compute-optimizer/latest/ug/view-license-recommendations.html#license-viewing-details)。

## 設定運算最佳化工具
<a name="sql-server-compute-optimizer-configuration"></a>

Compute Optimizer 使用 `mssql_enterprise_features_used` 指標來分析商業軟體授權。如需此指標的詳細資訊，請參閱[商業軟體授權的指標](https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#license-metrics-analyzed)。

1. 請確定您擁有選擇加入 Compute Optimizer 的適當許可。如需詳細資訊，請參閱下列內容：
   + [選擇加入 Compute Optimizer 的政策](https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#opting-in-access)
   + [授予獨立運算最佳化工具存取權的政策 AWS 帳戶](https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#standalone-account-access)
   + [授予組織管理帳戶 Compute Optimizer 存取權的政策](https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#organization-account-access)

1. 連接 CloudWatch Application Insights 所需的執行個體角色和政策。如需說明，請參閱[政策以啟用商業軟體授權建議](https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#license-access)。

1. 使用您的 Microsoft SQL Server 資料庫登入資料啟用 CloudWatch Application Insights。如需說明，請參閱 CloudWatch 文件中的[設定應用程式以進行監控](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-setting-up.html)。
**注意**  
若要產生商業軟體授權的建議，至少需要 連續 30 小時的 CloudWatch 指標資料。如需詳細資訊，請參閱 [CloudWatch 指標需求](https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html#requirements-metrics)。

1. 使用下列 SQL 查詢來設定 CloudWatch Application Insights 的最低權限存取。

   ```
   GRANT VIEW SERVER STATE TO [LOGIN];
   GRANT VIEW ANY DEFINITION TO [LOGIN];
   ```

   這可啟用新的服務 PrometheusSqlExporterSQL。

1. 從目標 AWS 帳戶 或組織管理帳戶中，選擇加入 Compute Optimizer。如需說明，請參閱[選擇加入您的帳戶](https://docs.aws.amazon.com/compute-optimizer/latest/ug/getting-started.html#account-opt-in)。
**注意**  
選擇加入後，問題清單和最佳化建議最多可能需要 24 小時才會產生。

1. 在 [Compute Optimizer 主控台](https://console.aws.amazon.com/compute-optimizer/)****中，選擇導覽窗格中的授權。

1. 在**調查結果**欄中，搜尋指標調查結果**不足**的任何執行個體。如果 Compute Optimizer 偵測到 CloudWatch Application Insights 未啟用或許可不足，則會傳回此調查結果。如需詳細資訊，請參閱[尋找原因](https://docs.aws.amazon.com/compute-optimizer/latest/ug/view-license-recommendations.html#license-finding-reasons)。執行下列動作來解決這些問題清單：

   1. 選擇執行個體。

   1. 新增秘密。

   1. 確認已連接執行個體角色和政策。

   1. 選擇**啟用授權建議**。

1. 在**調查結果**欄中，搜尋任何具有**未最佳化**調查結果的執行個體。如果 Compute Optimizer 偵測到您的 Amazon EC2 基礎設施未使用您支付的任何 Microsoft SQL Server 授權功能，則會傳回此調查結果。如需詳細資訊，請參閱[尋找原因](https://docs.aws.amazon.com/compute-optimizer/latest/ug/view-license-recommendations.html#license-finding-reasons)。執行下列動作來解決這些問題清單：

   1. 選擇執行個體。

   1. 比較目前的授權版本與建議的版本。

   1. 檢閱目前的授權使用率圖表。

   1. 如果您想要降級授權，請選擇**實作建議**。

   1. 檢閱需求並依照指示降級授權。如果您想要自動化程序，請參閱[使用 AWS Systems Manager 文件降級 SQL Server Enterprise Edition 以降低成本](https://aws.amazon.com/blogs/mt/downgrade-sql-server-enterprise-edition-using-aws-systems-manager-document-to-reduce-cost/) (AWS 部落格）。

## 其他資源
<a name="sql-server-compute-optimizer-resources"></a>
+ [使用 降低 Microsoft SQL Server 授權成本 AWS Compute Optimizer](https://aws.amazon.com/blogs/modernizing-with-aws/reduce-microsoft-sql-server-licensing-costs-with-aws-compute-optimizer/) (AWS 部落格）
+ [什麼是 AWS Compute Optimizer？](https://docs.aws.amazon.com/compute-optimizer/index.html) (AWS 文件）
+ [檢視商業軟體授權建議 ](https://docs.aws.amazon.com/compute-optimizer/latest/ug/view-license-recommendations.html)(AWS 文件）
+ [降級 Microsoft SQL Server 版本](https://docs.aws.amazon.com/sql-server-ec2/latest/userguide/downgrade-sql-server-on-ec2.html) (AWS 文件）
+ (AWS) [上的 Microsoft SQL Server AWS](https://aws.amazon.com/sql/) 
+ [上的 Microsoft 授權 AWS](https://aws.amazon.com/windows/resources/licensing/) (AWS)
+ [Microsoft SQL Server 2019 定價](https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing) (Microsoft)
+ [Microsoft SQL Server 2022 定價](https://www.microsoft.com/en-us/sql-server/sql-server-2022-pricing) (Microsoft)

# 使用 Compute Optimizer 最佳化 SQL Server 大小
<a name="sql-server-sizing-compute-optimizer"></a>

## 概觀
<a name="sql-server-sizing-compute-optimizer-overview"></a>

[AWS Compute Optimizer](https://docs.aws.amazon.com/compute-optimizer/latest/ug/what-is-compute-optimizer.html) 協助資料庫管理員 (DBAs) 探索 Amazon Elastic Compute Cloud (Amazon EC2) 上的 Microsoft SQL Server 工作負載，並授權 EC2 執行個體，將授權成本降低高達 25%。Compute Optimizer 中的[推斷工作負載類型](https://docs.aws.amazon.com/compute-optimizer/latest/ug/inferred-workload-type.html)功能會使用機器學習 (ML)，並自動偵測可能在 AWS 資源上執行的應用程式。Compute Optimizer 包含 SQL Server 做為推斷工作負載類型的支援。透過使用推斷的工作負載類型功能，您可以根據在 Amazon EC2 執行個體上執行的特定工作負載，精確找出節省成本的機會。

使用此功能，您可以透過 SQL Server 等支援的推斷工作負載類型來分類節省成本的機會。Compute Optimizer 可以自動探索過度佈建的 SQL Server EC2 執行個體。您可以切換到 EC2 主控台來縮減執行個體的大小，這有助於降低授權和基礎設施成本。

您也可以使用 Compute Optimizer 提出 SQL Server 授權建議。如需詳細資訊，請參閱本指南中的[使用 Compute Optimizer 最佳化 SQL Server 授權](sql-server-compute-optimizer.md)。

## 設定運算最佳化工具
<a name="sql-server-sizing-compute-optimizer-configuration"></a>

如需將 Compute Optimizer 與 SQL Server 推斷工作負載搭配使用的說明，請參閱[最佳化效能和降低授權成本：利用 AWS Compute Optimizer Amazon EC2 SQL Server 執行個體](https://aws.amazon.com/blogs/modernizing-with-aws/optimizing-performance-and-reducing-licensing-costs-leveraging-aws-compute-optimizer-for-ec2-sql-server-instances/) (AWS 部落格）。您可以選擇加入獨立帳戶、屬於組織成員的帳戶，以及組織的管理帳戶。對於獨立和成員帳戶，選擇加入只會啟用該帳戶的 Compute Optimizer。對於組織管理帳戶，您可以選擇是否僅在該帳戶中啟用 Compute Optimizer，還是為組織的所有成員帳戶啟用 Compute Optimizer。

Compute Optimizer 選擇加入程序會自動建立 AWS Identity and Access Management (IAM) 服務連結角色。如需詳細資訊，請參閱[使用 AWS Compute Optimizer的服務連結角色](https://docs.aws.amazon.com/compute-optimizer/latest/ug/using-service-linked-roles.html)。

Compute Optimizer 會根據 Amazon CloudWatch 指標分析您的資源，例如 CPU、I/O、網路和 Amazon Elastic Block Store (Amazon EBS) 用量。若要產生建議，在過去 14 天內至少需要 連續 30 小時的 CloudWatch 指標資料。如果您啟用增強型基礎設施指標功能，則會將使用率指標 延長至 93 天。如需詳細資訊，請參閱 Compute Optimizer 文件中的 [CloudWatch 指標需求](https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html#requirements-metrics)和[增強型基礎設施指標](https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html)。

Compute Optimizer 會根據 vCPU、記憶體、儲存體、網路、風險和遷移工作，提供與每個選項相關的選項和節省成本。您可以使用 CloudWatch 指標儀表板來分析用於提出建議的資料。使用此資料，您可以授權正在執行 SQL Server 工作負載的 EC2 執行個體。如需如何變更執行個體類型的詳細資訊，請參閱 Amazon EC2 文件中的[變更執行個體類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html)。

## 其他資源
<a name="sql-server-sizing-compute-optimizer-resources"></a>
+ [AWS Compute Optimizer 識別和篩選 Microsoft SQL Server 工作負載](https://aws.amazon.com/about-aws/whats-new/2023/05/aws-compute-optimizer-identifies-filters-sql-server-workloads/) (AWS)
+ [最佳化效能並降低授權成本：利用 AWS Compute Optimizer Amazon EC2 SQL Server 執行個體 ](https://aws.amazon.com/blogs/modernizing-with-aws/optimizing-performance-and-reducing-licensing-costs-leveraging-aws-compute-optimizer-for-ec2-sql-server-instances/)(AWS 部落格）
+ [什麼是 AWS Compute Optimizer？](https://docs.aws.amazon.com/compute-optimizer/latest/ug/what-is-compute-optimizer.html) (AWS 文件）
+ [檢視 EC2 執行個體建議](https://docs.aws.amazon.com/compute-optimizer/latest/ug/view-ec2-recommendations.html) (AWS 文件）

# 檢閱 SQL Server 工作負載 Trusted Advisor 的建議
<a name="sql-server-trusted-advisor"></a>

## 概觀
<a name="sql-server-trusted-advisor-overview"></a>

[AWS Trusted Advisor](https://docs.aws.amazon.com/awssupport/latest/user/trusted-advisor.html) 提供建議，協助您遵循 AWS 最佳實務。透過分析您的用量、組態和支出， Trusted Advisor 提供可行的建議來降低成本、改善系統可用性和效能，或協助彌補安全漏洞。本節著重於可協助您降低在 中操作 SQL Server 工作負載成本的 Trusted Advisor 檢查 AWS 雲端。

## 成本最佳化建議
<a name="sql-server-trusted-advisor-recommendations"></a>

Trusted Advisor 提供建議，協助您最佳化 Amazon Elastic Compute Cloud (Amazon EC2) 上的 SQL Server 工作負載。檢查會檢查您的 SQL Server 工作負載，並自動列出需要最佳化的執行個體。操作化 Trusted Advisor 建議可以降低成本並改善組織的安全狀態。

以下是著重於 Microsoft SQL Server 的 Trusted Advisor 檢查：
+ Microsoft [SQL Server 過度佈建的 Amazon EC2 執行個體](https://docs.aws.amazon.com/awssupport/latest/user/cost-optimization-checks.html#ec2-instance-over-provisioned-microsoft-sql-server) – 此檢查會分析執行 SQL Server 的 Amazon EC2 執行個體，並在執行個體超過 SQL Server 軟體 vCPU 限制時提醒您。例如，具有 SQL Server Standard Edition vCPUs。具有 SQL 伺服器 Web 版的執行個體最多可以使用 32 個 vCPUs。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/sql-server-trusted-advisor.html)
+ Microsoft [SQL Server 的 Amazon EC2 執行個體整合](https://docs.aws.amazon.com/awssupport/latest/user/cost-optimization-checks.html#ec2-instances-consolidation-sql-server) – 此檢查會分析您的 Amazon EC2 執行個體，並在執行個體少於 SQL Server 授權數量下限時提醒您。您可以合併較小的 SQL 伺服器執行個體，以協助降低成本。如果您有許多小型、包含授權的 SQL Server 執行個體，請考慮合併。根據 [Microsoft SQL Server 2019 授權指南](https://download.microsoft.com/download/e/2/9/e29a9331-965d-4faa-bd2e-7c1db7cd8348/SQL_Server_2019_Licensing_guide.pdf)，SQL Server 每個執行個體至少需要 4 個 vCPU 授權。如果您合併這些資料庫，則可以節省授權成本。您可以根據執行個體上的資料庫數量、資料庫大小上限和資料庫大小總計來做出決策。SQL Server 的 Web、Standard 和 Enterprise 版本支援合併。如需詳細資訊，請參閱[合併 SQL Server 資料庫 ](https://learn.microsoft.com/en-us/archive/blogs/mvpawardprogram/consolidating-sql-server-databases)(Microsoft 部落格文章）。

  AWS 不建議僅在一個伺服器上放置大型生產資料庫。不過，您可以合併用於非生產環境的較小環境，例如用於開發、測試和預備環境。這取決於您目前的 SQL Server 用量；如果您有低用量資料庫，您可以將 合併在一個伺服器上。

## 設定 Trusted Advisor
<a name="sql-server-trusted-advisor-configuration"></a>

執行下列動作來評估以 SQL Server 為重心的檢查 Trusted Advisor。

1. 登入 AWS 管理主控台。

1. 開啟 [AWS Trusted Advisor 主控台](https://console.aws.amazon.com/trustedadvisor/home)。

1. 在導覽窗格中的建議下****，選擇**成本最佳化**。

1. 在**成本最佳化檢查**清單中，檢閱 **Microsoft SQL Server 的 Amazon EC2 執行個體整合**狀態，以及**針對 Microsoft SQL Server 檢查過度佈建的 Amazon EC2 執行個體**狀態。
   + 綠色檢查符號表示您的 Amazon EC2 執行個體已進行最佳設定。
   + 橘色提醒符號表示有改進的機會。

1. 選擇檢查以查看其詳細資訊和建議。

1. 遵循檢查提供的指示，最佳化執行 SQL Server 工作負載的 Amazon EC2 執行個體。

1. 定期監控您的執行個體，並定期重新整理檢查。

## 其他資源
<a name="sql-server-trusted-advisor-resources"></a>
+ [Trusted Advisor 檢查參考](https://docs.aws.amazon.com/awssupport/latest/user/trusted-advisor-check-reference.html) (AWS 文件）
+ (AWS) [上的 Microsoft SQL Server AWS](https://aws.amazon.com/sql/) 
+ [上的 Microsoft 授權 AWS](https://aws.amazon.com/windows/resources/licensing/) (AWS)
+ [SQL Server 2019 定價](https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing) (Microsoft)
+ [AWS Launch Wizard for SQL Server](https://docs.aws.amazon.com/launchwizard/latest/userguide/launch-wizard-sql.html) (AWS 文件）