

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

# Amazon EC2 上的 SQL Server 单节点架构
<a name="single-node"></a>

下图说明了在添加对高可用性 (HA) 和灾难恢复 (DR) 的支持之前，Amazon Elastic Compute Cloud (Amazon EC2) 上的单节点 SQL Server 的建议架构。

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

![\[HA/DR 之前的 Amazon EC2 上的单节点 SQL Server 架构\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/sql-server-ec2-ha-dr/images/single-node.png)


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


****  

|  |  | 
| --- |--- |
| 实例类型/AMI | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/sql-server-ec2-ha-dr/single-node.html) | 
| SQL Server 版本 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/sql-server-ec2-ha-dr/single-node.html) | 
| 存储类型 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/sql-server-ec2-ha-dr/single-node.html) | 
| 卷 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/sql-server-ec2-ha-dr/single-node.html) | 
| 灾难恢复选项 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/sql-server-ec2-ha-dr/single-node.html) | 

## 实例类型
<a name="instance-type"></a>

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

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

亚马逊还在[微软 Windows Server 上提供AMIs专用 SQL Server](https://aws.amazon.com/windows/resources/amis/) 的服务，以帮助你在亚马逊 EC2 上托管最新的 SQL Server 版本。

## 仓储服务
<a name="storage"></a>

某些实例类型提供 NVMe [实例存储量](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)。NVMe 是一种临时（短暂）存储选项。此存储直接附加到 EC2 实例。尽管 NVMe 存储是临时的，并且在重启时会丢失数据，但它可以提供最佳性能。因此，它适用于具有高 I/O 随机数据访问模式的 SQL Server tempdb 数据库。使用 tempdb 的 NVMe 实例存储无需支付额外费用。

Amazon EBS 是一种持久存储解决方案，可满足 SQL Server 对快速、可用存储的要求。Microsoft 建议将数据卷和日志卷分开以获得最佳性能。这种分离的原因包括以下几点：
+ 不同的数据访问方法。数据卷使用联机事务处理 (OLTP) 随机数据访问，而日志卷使用串行访问。
+ 更好的恢复选项。一个卷的丢失不会影响另一个卷，并且有助于恢复数据。
+ 不同的工作负载类型。数据卷用于 OLTP 工作负载，而日志卷面向联机分析处理 (OLAP) 系统工作负载。
+ 不同的性能要求。数据卷和日志卷具有不同的 IOPS 和延迟要求、最低吞吐率以及类似的性能基准。

要选择正确的 [Amazon EBS 卷类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html)，您应分析数据库访问方法、IOPS 和吞吐量。在标准工作时间和高峰使用期间收集指标。SQL Server 使用数据区来存储数据。SQL Server 中的原子存储单元是一个页面，大小为 8 KB。八个物理上连续的页面组成一个范围，大小为 64 KB。因此，在 SQL Server 计算机上，用于托管 SQL 数据库文件（包括 tempdb）的 NTFS 分配单位大小应为 64 KB。

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


****  

| Amazon EBS 资源 | Type | 说明 | 
| --- | --- | --- | 
| 操作系统磁盘 | `gp3` | 通用存储。 | 
| 数据盘 | `io1`/`io2` | 写入密集型存储。 | 
| 日志磁盘 | `gp3` 或 `io2` | 适用于密集型工作负载的通用存储。 | 
| 备份磁盘 | `st1` | 更便宜的归档存储。为了获得更好的性能，如果定期将备份复制到 Amazon Simple Storage Service (Amazon S3)，也可以将备份存储在速度更快的磁盘上。 | 

## Amazon EBS 和 Amazon S3 注意事项
<a name="ebs-s3"></a>

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


****  

| 服务 | 可用性 | 持久性 | 注意 | 
| --- | --- | --- | --- | 
| Amazon EBS | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/sql-server-ec2-ha-dr/single-node.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/sql-server-ec2-ha-dr/single-node.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/sql-server-ec2-ha-dr/single-node.html) | 
| Amazon S3 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/sql-server-ec2-ha-dr/single-node.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/sql-server-ec2-ha-dr/single-node.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/sql-server-ec2-ha-dr/single-node.html) | 

## 亚马逊上适用于 Windows 文件服务器 FSx 的 SQL Server
<a name="fsx"></a>

[Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/sql-server.html) 提供了快速的性能， GB/second 每个文件系统的基准吞吐量高达 2 个，IOPS 可达数十万，延迟始终如一，亚毫秒级延迟。要为 SQL Server 实例提供适当的性能，您可以选择与文件系统大小无关的吞吐量级别。更高级别的吞吐容量还附带更高级别的 IOPS，文件服务器可以为访问它的 SQL Server 实例提供服务。存储容量不仅决定您可以存储多少数据，还决定每秒可以对存储执行多少次 I/O 操作 (IOPS) ——每 GB 的存储可提供 3 个 IOPS。您可以将每个文件系统的大小配置为最大 64 TiB（相比之下，Amazon EBS 为 16 TiB）。您还可以使用亚马逊 FSx 系统作为 Windows 服务器故障转移群集 (WSFC) 部署的文件共享见证。