亚马逊上的 SQL Server EC2 单节点架构 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊上的 SQL Server EC2 单节点架构

下图说明了在增加对高可用性 (HA) 和灾难恢复 (DR) 的支持之前,亚马逊弹性计算云 (Amazon EC2) 上单节点 SQL Server 的推荐架构。

在此架构中,SQL Server 数据库部署到 EC2 实例,使用适用于 SQL Server 的 Amazon 系统映像 (AMI) 以及单独的操作系统、数据、日志和备份卷。非易失性内存 express (NVMe) 存储直接连接到 EC2 实例并用于 SQL Server tempdb 数据库。 AWS Directory Service 用于为 SQL Server 数据库设置 Windows 身份验证。您还可以使用 AWS Systems Manager 来检测和安装 SQL Server 修补程序和更新。

在 HA/DR EC2 之前,亚马逊上的单节点 SQL Server 架构

下表总结了有关配置此体系结构的建议。以下各节将详细讨论这些建议。

实例类型/AMI
SQL Server 版本
  • SQL Server 开发人员版(非生产)

  • SQL Server 标准版和企业版(生产)

存储类型
  • OS

  • DATA

  • LOG

  • tempdb

  • 用于存储和下载备份的暂存空间

灾难恢复选项
  • Amazon EC2

  • Amazon EBS 快照

  • SQL Server 本机备份

实例类型

AWS 为您的 SQL Server 工作负载提供了一系列实例类。您可以在计算优化型、内存优化型、存储优化型、通用型和其他类型之间进行选择,具体取决于数据库服务器上的预期工作负载、版本、HA/DR 选项、所需的内核和许可注意事项。我们建议您为 SQL Server 选择经 Amazon EBS 优化的实例类型。这些卷通过专用网络中的附加 EBS 卷提供最佳吞吐量,这对于可能具有繁重数据访问要求的 SQL Server 工作负载至关重要。对于标准数据库工作负载,您可以运行内存优化型实例类,例如 R5、R5b、R5d 和 R5n。您还可以包括实例存储或存 NVMe 储。这两者都是 tempdb 的理想选择,并为数据库工作负载提供平衡的性能。

对于关键工作负载,高性能 z1d 实例针对许可成本较高的工作负载(如 SQL Server)进行了优化。z1d 实例采用定制的英特尔至强可扩展处理器构建,可提供高达 4.0 的持续全核 turbo 频率 GHz,明显快于其他实例。对于需要更快顺序处理的工作负载,您可以使用 z1d 实例运行更少的核心,并获得与具有更多核心的其他实例相同或更好的性能。

亚马逊还在微软 Windows Server 上提供AMIs专用 SQL Server 的服务,以帮助你在亚马逊上托管最新的 SQL Server 版本 EC2。

存储

某些实例类型提供 NVMe 实例存储量。 NVMe 是一种临时(短暂的)存储选项。此存储直接连接到实 EC2 例。尽管 NVMe 存储是临时的,并且在重启时会丢失数据,但它可以提供最佳性能。因此,它适用于具有高 I/O 和随机数据访问模式的 SQL Server tempdb 数据库。使用 tempdb 的 NVMe 实例存储无需支付额外费用。有关其他指导,请参阅《亚马逊上部署 SQL Server 的最佳实践》指南中的 “将 tempdb 放入实例存储” 部分。 EC2

Amazon EBS 是一种持久存储解决方案,可满足 SQL Server 对快速、可用存储的要求。Microsoft 建议将数据卷和日志卷分开以获得最佳性能。这种分离的原因包括以下几点:

  • 不同的数据访问方法。数据卷使用联机事务处理 (OLTP) 随机数据访问,而日志卷使用串行访问。

  • 更好的恢复选项。一个卷的丢失不会影响另一个卷,并且有助于恢复数据。

  • 不同的工作负载类型。数据卷用于 OLTP 工作负载,而日志卷面向联机分析处理 (OLAP) 系统工作负载。

  • 不同的性能要求。数据卷和日志卷具有不同的 IOPS 和延迟要求、最低吞吐率以及类似的性能基准。

要选择正确的 Amazon EBS 卷类型,您应分析数据库访问方法、IOPS 和吞吐量。在标准工作时间和高峰使用期间收集指标。SQL Server 使用数据区来存储数据。SQL Server 中的原子存储单元是一个页面,大小为 8 KB。八个物理上连续的页面组成一个范围,大小为 64 KB。因此,在 SQL Server 计算机上,用于托管 SQL 数据库文件(包括 tempdb)的 NTFS 分配单位大小应为 64 KB。有关如何检查驱动器的 NTFS 分配大小的信息,请参阅指南在 Amazon EC2 上部署 SQL Server 的最佳实践

EBS 卷的选择取决于工作负载,也就是说,数据库是读取密集型还是写入密集型数据库,都需要高 IOPS、存档存储和类似的注意事项。下表显示了一个示例配置。

Amazon EBS 资源 类型 描述
操作系统磁盘

gp3

通用存储。

数据盘

io1/io2

写入密集型存储。

日志磁盘

gp3io2

适用于密集型工作负载的通用存储。

备份磁盘

st1

更便宜的归档存储。为了获得更好的性能,如果定期将备份复制到 Amazon Simple Storage Service (Amazon S3),也可以将备份存储在速度更快的磁盘上。

Amazon EBS 和 Amazon S3 注意事项

下表显示了用于存储的 Amazon EBS 和 Amazon S3 的比较。使用此信息了解这两种服务之间的差异,并为您的用例选择最佳方法。

服务 可用性 持久性 备注
Amazon EBS
  • 所有 EBS 卷类型都提供持久的快照功能,旨在实现 99.999% 的可用性。

  • 在发生灾难时,您可以使用快照在不同 AWS 区域配置新实例。

  • EBS 卷数据在单个可用区中的多个服务器之间复制,以防止任何单个组件故障导致数据丢失。

  • EBS 卷的年故障率 (AFR) 设计为 0.1% 到 0.2% 之间,其中故障是指卷完全或部分丢失,具体取决于卷的大小和性能。

  • Amazon EBS 优化型实例使用经过优化的配置堆栈,并为 Amazon EBS I/O 提供额外的专用带宽。这种优化通过最小化 Amazon EBS I/O 与来自您实例的其他流量之间的争用,为您的 EBS 卷提供最佳性能。

  • 最多同时支持 50 个快照的快速快照恢复。您必须在每个快照的基础上显式启用此功能。

  • Amazon EBS 优化实例在初始化时提供完全预置的性能,因此不涉及预热时间。

Amazon S3
  • 高度可用。

  • 设计用于在给定的一年内实现 99.99% 的可用性。

  • 提供多种存储类别,例如 S3 标准和 S3 标准-不频繁访问 ((S3 标准-IA))。您可以根据保留期限将备份文件移动到存储类别。

  • Amazon S3、Amazon S3 Glacier 和 S3 Glacier Deep Archive 旨在实现 99.999999999%(11 个 9)的持久性。Amazon S3 和 S3 Glacier 都提供可靠的数据备份,并可在至少三个地理位置分散的可用区之间复制对象。

  • 您可以使用 Amazon S3 进行长期 SQL Server 文件级备份(包括完整备份和事务日志)。

  • Amazon S3 支持:

  • Amazon S3 提供成本最低的存储。跨区域数据传输费用适用。

亚马逊上适用于 Windows 文件服务器 FSx 的 SQL Server

Amazon FSx for Windows File Server 提供快速性能,基准吞吐量最高可达每秒 2 次GB/second per file system, hundreds of thousands of IOPS, and consistent sub-millisecond latencies. To provide the right performance for your SQL Server instances, you can choose a throughput level that is independent of your file system size. Higher levels of throughput capacity also come with higher levels of IOPS that the file server can serve to the SQL Server instances accessing it. The storage capacity determines not only how much data you can store, but also how many I/O操作 (IOPS),您可以在存储上执行每秒 2 次操作 (IOPS),每 GB 存储可提供 3 个 IOPS。您可以将每个文件系统的大小配置为最大 64 TiB(相比之下,Amazon EBS 为 16 TiB)。您还可以使用亚马逊 FSx 系统作为 Windows 服务器故障转移群集 (WSFC) 部署的文件共享见证。