在AWS上部署Microsoft SQL Server的最佳實踐

  • 本白皮書說明瞭如何最大程度地降低成本,最大程度地提高SQL Server數據庫的可用性以及優化基礎結構以實現最佳性能。
  • Microsoft SQL Server提供了幾種高可用性/災難恢復(HA / DR)解決方案,每種解決方案都適合特定的需求。
  • 根據特定的HA / DR要求,這些服務器可以彼此靠近或相距很遠。

本白皮書重點介紹在AWS平台上運行Microsoft SQL Server時以最低成本實現最大價值的最佳實踐。 儘管對於許多通用用例而言,用於Microsoft SQL Server的Amazon Relational Database Service(Amazon RDS)提供了一種簡便快捷的解決方案,但在本文中,我們重點關注需要突破限制以滿足特殊要求的場景。

AWS服務的靈活性與Microsoft SQL Server的強大功能相結合,可以為尋求創新方法來優化其應用程序和轉變其業務的人們提供擴展的功能。

特別是,本白皮書解釋瞭如何最大程度地降低成本,最大程度地提高SQL Server數據庫的可用性以及優化基礎結構以實現最佳性能。 AWS服務的靈活性與Microsoft SQL Server的強大功能相結合,可以為尋求創新方法來優化其應用程序和轉變其業務的人們提供擴展的功能。

本文的主要重點是Microsoft SQL Server 2017中可用的功能,該功能是發佈時的最新版本。 可以將在早期版本(即2008、2012、2014和2016)上運行的現有數據庫遷移到SQL Server 2017並以兼容模式運行。

Microsoft SQL Server提供了幾種高可用性/災難恢復(HA / DR)解決方案,每種解決方案都適合特定的需求。 這些包括:

  • 日誌傳送•鏡像(不建議使用,而是使用可用性組)
  • 永遠在線的可用性組(企業版)
  • 永遠在線的基本可用性組(標準版)
  • 永遠在線的故障轉移群集實例
  • 分佈式可用性組

這些解決方案依賴於一台或多台輔助服務器,其中SQL Server作為主動或被動備用服務器運行。 根據特定的HA / DR要求,這些服務器可以彼此靠近或相距很遠。

可用區和多可用區部署

AWS可用區(AZ)旨在提供單獨的故障域,同時將工作負載保持在相對較近的位置,以實現低延遲的內部通信。 AZ是使用鏡像,始終在線可用性組或基本可用性組同步複製數據庫的很好的解決方案。 SQL Server提供了零數據丟失,並且與AWS可用區的低延遲基礎架構結合使用時,可以提供高性能。

這是大多數本地部署和AWS之間的主要區別之一。 例如,始終在故障轉移群集實例(FCI)上經常在單個數據中心內使用。 這是因為FCI群集中的所有節點都必須有權訪問相同的共享存儲。 將這些節點放在不同的數據中心中可能會對性能產生不利影響。 但是,使用AWS,FCI節點可以位於單獨的可用區中,並且由於區域內所有可用區之間的低延遲網絡鏈接而仍可以提供良好的性能。

群集放置組和增強型網絡

Amazon EC2使您可以在集群放置組內部署許多EC2實例。 這意味著這些EC2實例不僅位於單個可用區中,而且還可以確保在同一數據中心內緊密物理接近的情況下確保最小的網絡延遲。 要在AWS上獲得最大帶寬,您可以利用增強型網絡和Elastic Network Adapter(ENA)。 為了最大程度地減少延遲,您可以在EC2群集放置組中運行的實例上部署Always On故障轉移群集實例或Always On可用性組。

此外,如果AZ發生故障,您可以手動將數據庫故障轉移到第二個AZ。 AZ之間相對較低的延遲提供了接近零的數據丟失,即使使用了異步複製也是如此。 這是HA對延遲非常敏感的應用程序的性能損失幾乎為零的示例,並與同一AWS區域內的DR解決方案結合使用以最大程度地減少恢復點目標(RPO)。

多區域部署

對於那些需要對意外事件具有更大彈性的工作負載,您可以利用AWS的全球規模來確保在任何情況下的可用性。 由於Amazon Virtual Private Cloud(Amazon VPC)限制在單個區域內,因此對於多區域部署,您將需要在不同區域的VPC之間建立連接。

儘管有許多方法可以做到這一點,但在大多數情況下,最好的方法是使用區域間VPC對等。 此方法通過確保對VPC之間的所有流量進行加密,保持在AWS全局網絡主幹上並且永不穿越Internet來提供安全性,優化的性能和增強的吞吐量。

儘管可以在多區域SQL Server部署中進行同步複製,但是所選區域的距離越遠,同步複製的性能損失就越嚴重。 通常,多區域部署的最佳實踐是建立異步複製,尤其是對於地理位置較遠的區域。

對於具有強烈RPO要求的工作負載,可以將異步多區域部署與多可用區或單可用區同步複製結合在一起。 您還可以將所有三種方法組合為一個解決方案。 但是,這些組合將帶來大量額外的SQL Server許​​可成本,這需要作為超前計劃的一部分來考慮。

性能優化

在某些情況下,最大限度地提高性能可能是您的首要任務。 SQL Server和AWS都有多種選擇,可以顯著提高工作負載的性能。

改善工作負載性能的第一個也是最有效的方法是優化應用程序和數據庫架構。 通過將應用程序更改為使用NoSQL而不是標準關係數據庫,您還可以顯著提高應用程序性能。 AWS和SQL Server均提供NoSQL功能。

Amazon DynamoDB是一項託管的NoSQL數據庫服務,可提供預配置的吞吐量。 您還可以使用Microsoft SQL Server的功能,例如內存優化表,XML和JSON功能。 Microsoft SQL Server允許您混合使用關係查詢和NoSQL查詢,並為複雜的問題量身定制高性能的解決方案。

使用Amazon Elastic Block Store(Amazon EBS)

Amazon EBS是一種單可用區存儲服務,具有多種靈活選項,可滿足各種需求。 當要使性能最大化時,使用預配置IOPS卷類型(io1)是最佳選擇。 每個io32,000 EBS卷最多可配置1 IOPS(基於16 KiB I / O大小),吞吐量為500 MB / s。

實例存儲

經過存儲優化的EC2實例類型使用固定大小的本地磁盤,並且可以使用多種不同的存儲技術。 其中,非易失性存儲器Express(NVMe)是最快的技術,具有最高的IOPS和吞吐量。 i3類實例類型提供NVMe SSD驅動器,例如i3.16xlarge,帶有8個磁盤,每個磁盤具有1.9 TB的存儲。

選擇存儲優化的EC2實例類型以實現最佳性能時,必須了解一些較小的實例類型提供了與其他實例共享的實例存儲。 這些是駐留在連接到物理主機的物理磁盤上的虛擬磁盤。 通過選擇更大的實例類型,例如i3.2xlarge,可以確保實例存儲磁盤與基礎物理磁盤之間存在1:1對應。 這樣可確保一致的磁盤性能,並消除了嘈雜的鄰居問題。

橫向擴展文件服務器

Windows Server 2016引入了一項稱為存儲空間直接(S2D)的新服務。 S2D允許將連接到Windows Server故障轉移群集(WSFC)實例的所有磁盤或選定的磁盤群集到存儲池中,並可供該群集的所有成員使用。 S2D具有靈活的選項,可以最大限度地提高性能,存儲空間和耐用性。 它消除了管理不同磁盤技術以及創建分佈在網絡中多個服務器上的RAID群集的複雜性。

安全優化

安全是AWS的首要任務,您可以使用許多AWS安全功能。 這些功能可以與Microsoft SQL Server的內置安全功能結合使用,甚至可以滿足最嚴格的要求和期望。

Amazon EBS加密

如果使用EBS卷存儲SQL Server數據庫文件,則可以選擇啟用塊級加密。 Amazon EBS透明地為您處理加密和解密。 可通過一個簡單的複選框來使用它,而無需採取進一步的措施。

AWS密鑰管理服務(KMS)

AWS KMS是用於創建和存儲加密密鑰的完全託管服務。 您可以使用KMS生成的密鑰,也可以使用自己的密鑰。 無論哪種情況,密鑰都永遠不會離開KMS,並且受到保護,不會受到任何未經授權的訪問。

透明數據加密(TDE)

TDE是Microsoft SQL Server中提供的一項功能,可為您的靜止數據提供透明加密。 TDE在Amazon RDS for SQL Server上可用,您也可以在EC2實例上的SQL Server工作負載上啟用TDE。

始終加密

Always Encrypted(始終加密)是一項允許數據所有者和數據管理者分開的功能。 使用始終加密存儲在Microsoft SQL Server中的敏感數據即使在查詢處理期間也保持加密狀態。 加密密鑰保留在數據所有者手中,不會顯示給數據庫引擎。

行級安全性

SQL Server中的行級安全性(RLS)使您可以在行級控制數據庫訪問。 此功能可通過直接從數據庫中篩選出源自應用程序任何層的所有未經授權的訪問嘗試來減少攻擊面。 它可能會簡化您的應用程序,但是您需要以在數據庫級別區分用戶的方式設計應用程序。 例如,如果您的Web應用程序為所有數據庫操作共享相同的連接字符串,則此功能將不適用。 在應用程序設計時需要考慮這種情況。

AWS可用區,區域,EC2群集和擴展放置組,VPC對等以及區域間AWS Direct Connect可用於實施涵蓋幾乎所有類型的HA要求的各種解決方案。

成本優化

可以通過包含的許可證(LI)以及自帶許可證(BYOL)許可模型將SQL Server託管在AWS上。 使用LI,您可以在AWS上運行SQL Server並支付許可費用,作為AWS每小時使用費賬單的一部分。 此模型的優點是您不需要任何長期承諾,並且可以隨時停止使用該產品並停止為使用付費。

但是,許多企業已經在SQL Server許​​可證上進行了大量投資,並且可能希望在AWS上重用其現有許可證。 使用BYOL可以實現:

  1. 如果您擁有軟件保障(SA),則好處之一就是許可證移動性。 許可證移動性使您可以在任何地方(包括Amazon EC2實例)上運行的服務器實例上使用許可證。
  2. 如果沒有SA,您仍然可以在AWS上使用自己的許可證。 但是,在專用硬件上運行SQL Server實例有一些特定要求。 因此,您需要使用Amazon EC2專用主機來確保許可證合規性。 AWS是唯一提供此選項的主要公共雲。

在本白皮書中,我們描述了在AWS上部署SQL Server工作負載的許多最佳實踐。 我們看到瞭如何使用AWS服務來補充Microsoft SQL Server功能以解決不同的需求。

可以根據特定的業務要求包含每種解決方案和方法。 SQL Server容器可以與EC2專用主機一起使用,以解決超額訂購許可問題。 AWS可用區,區域,EC2群集和擴展放置組,VPC對等以及區域間AWS Direct Connect可用於實施涵蓋幾乎所有類型的HA要求的各種解決方案。 可以將不同的Microsoft Windows,Linux和SQL Server功能與AWS服務結合使用,以創建可擴展的基礎架構,從而滿足高性能要求。

每次$ 1美元

在這裡提交廣告

傑克·蘇里

在Tech Cloud Link上可以免費下載各種格式的技術白皮書,包括流行文章技術摘要,技術白皮書的PDF版本以及在IT領域內範圍廣泛的研究文章。 在這裡,您將解決與IT趨勢相關的趨勢,這些問題涉及–網絡通信–存儲–數據中心–服務器–網絡安全。 白皮書準確地解決了工業和企業網絡之間的融合以及有關企業IT,業務和領導力戰略的文章,功能,幻燈片和分析的集合
https://techcloudlink.com/

發表評論