本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon FSx 为 SQL Server Always On FCI 设置多可用区基础设施
由 Manish Garg (AWS)、T.V.R.L.Phani Kumar Dadi (AWS)、Nishad Mankar (AWS) 和 RAJNEESH TYAGI (AWS) 编写
代码存储库:aws-windows-failover-cluster-自动化 | 环境:PoC 或试点 | 来源:本地 Microsoft SQL Server 数据库 |
目标: EC2 上的 Microsoft SQL Server | R 类型:更换主机 | 工作负载:Microsoft |
技术:迁移;基础架构; DevOps | Amazon Web Services: AWS Managed Microsoft AD;Amazon EC2;Amazon FSx;AWS Systems Manager |
Summary
如果您需要快速迁移大量 Microsoft SQL Server Always On 失效转移群集实例 (FCI),此模式可以帮助您最大限度地缩短配置时间。通过使用自动化和 适用于 Windows File Server 的 Amazon FSx,它可以减少手动工作、人为错误以及部署大量集群所需时间。
这种模式在 Amazon Web Services (AWS) 的多可用区(多可用区)部署中为 SQL Server FCI 设置基础设施。使用 AWS CloudFormation 模板可以自动配置该基础设施所需的 AWS 服务。使用命令在亚马逊弹性计算云 (Amazon EC2) 实例上安装 SQL Server 和创建集群节点是通过 PowerShell 命令执行的。
该解决方案使用高可用性多可用区 Amazon FSx for Windows 文件系统作为存储 SQL Server 数据库文件的共享见证。托管 SQL Server 的 Amazon FSx 文件系统和 EC2 Windows 实例加入到同一个 AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) 域。
先决条件和限制
先决条件
一个有效的 Amazon Web Services account
具有足够权限的 AWS 用户,可以使用 AWS CloudFormation 模板配置资源
AWS Directory Service for Microsoft Active Directory
AWS Secrets Manager 中用于向键值对中的 AWS Managed Microsoft AD 进行身份验证的凭证:
ADDomainName
: <域名>ADDomainJoinUserName
: <域用户名>ADDomainJoinPassword
:<域用户密码>TargetOU
: <目标 OU 值>
注意:在 AWS Systems Manager Automation 中,您将在 AWS 托管 Microsoft AD 加入活动中使用相同的密钥名称。
用于创建 SQL Server 安装和 Windows 服务或域账户的 SQL Server 媒体文件,这些文件将在集群创建期间使用
虚拟私有云(VPC),具有位于不同可用区的两个公有子网、可用区中的两个私有子网、一个互联网网关、NAT 网关、路由表关联和一个跳转服务器
产品版本
Windows Server 2012 R2 和 Microsoft SQL Server 2016
架构
源技术堆栈
本地 SQL Server 与 FCI 使用共享驱动程序
目标技术堆栈
AWS EC2 实例
适用于 Windows File Server 的 Amazon FSx
AWS Systems Manager Automation 运行手册
网络配置(VPC、子网、互联网网关、NAT 网关、跳转服务器、安全组)
AWS Secrets Manager
AWS 托管的 Microsoft AD
Amazon EventBridge
AWS Identity and Access Management (IAM)
目标架构
下图显示了单个 AWS 区域中的 Amazon Web Services account,其 VPC 包括两个可用区、两个带 NAT 网关的公有子网、第一个公有子网中的跳转服务器、两个私有子网,每个子网都有一个用于 SQL 的 EC2 实例 节点安全组中的服务器节点以及连接到每个 SQL Server 节点的 Amazon FSx 文件系统。还包括 AWS Directory Service EventBridge、亚马逊、AWS Secrets Manager 和 AWS Systems Manager。
![多可用区架构,资源位于公有子网和私有子网中,并带有节点安全组。](images/pattern-img/f09c0164-be2d-4665-a574-7ec29fd25082/images/543829a9-e130-4542-9c4e-7518c6cbe967.png)
自动化和扩缩
您可以使用 AWS Systems Manager 加入 AWS 托管 Microsoft AD 并执行 SQL Server 安装。
工具
Amazon Web Services
AWS CloudFormation 可帮助您设置 AWS 资源,快速一致地配置这些资源,并在 AWS 账户和区域的整个生命周期中对其进行管理。
AWS Directory Service 提供多种方式将 Microsoft Active Directory (AD) 与其他 Amazon Web Services 结合使用,例如 Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Relational Database Service (Amazon RDS) for SQL Server 和适用于 Windows File Server 的 Amazon FSx。
Amazon Elastic Compute Cloud (Amazon EC2) 在 Amazon Web Services Cloud 中提供可扩展的计算容量。您可以根据需要启动任意数量的虚拟服务器,并快速扩展或缩减它们。
Amazon EventBridge 是一项无服务器事件总线服务,可帮助您将应用程序与来自各种来源的实时数据连接起来。例如,AWS Lambda 函数、使用 API 目标的 HTTP 调用端点或其他 Amazon Web Services account 中的事件总线。
AWS Identity and Access Management (AWS IAM) 通过控制验证和授权使用您 AWS 资源的用户,帮助您安全地管理对您 AWS 资源的访问。
AWS Secrets Manager 帮助您将代码中的硬编码凭证(包括密码)替换为对 Secrets Manager 的 API 调用,以便以编程方式检索密钥。
AWS Systems Manager 可帮助您管理在 Amazon Web Services Cloud 中运行的应用程序和基础设施。它简化了应用程序和资源管理,缩短了检测和解决操作问题的时间,并帮助您大规模安全地管理 AWS 资源。
其他工具
PowerShell
是一款在 Windows、Linux 和 macOS 上运行的微软自动化和配置管理程序。此模式使用 PowerShell 脚本。
代码存储库
此模式的代码可在 GitHub aws-windows-failover-cluster-automat
最佳实践
用于部署此解决方案的 IAM 角色应遵守最低权限原则。有关更多信息,请参阅 IAM 文档。
遵循 A WS CloudFormation 最佳实践。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
部署 Systems Manager CloudFormation 堆栈。 |
| AWS DevOps, DevOps 工程师 |
部署基础设施堆栈。 | 成功部署 Systems Manager 堆栈后,创建
| AWS DevOps, DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
安装 Windows 工具。 |
| AWS DevOps, DevOps 工程师,数据库管理员 |
在 Active Directory 域服务中预存集群计算机的对象。 | 要在 Active Directory 域服务 (AD DS) 中预存集群名称对象 (CNO) 并为集群角色预留虚拟计算机对象 (VCO),请按照 Windows Server 文档 | AWS DevOps、数据库管理员、工程师 DevOps |
创建 WSFC。 | 要创建 Windows Server Failover Clustering (WSFC) 集群,请执行以下操作:
| AWS DevOps、数据库管理员、工程师 DevOps |
安装 SQL Server 失效转移群集。 | 设置 WSFC 集群后,在主实例 (节点 1) 上安装 SQL Server 集群。
| AWS DevOps、数据库管理员、工程师 DevOps |
向集群添加一个辅助节点。 | 要将 SQL Server 添加到辅助节点(节点 2),请运行以下PowerShell 命令。
| AWS DevOps、数据库管理员、工程师 DevOps |
测试 SQL Server FCI。 |
| 数据库管理员、工程师 DevOps |
任务 | 描述 | 所需技能 |
---|---|---|
清理资源。 | 要清理资源,请使用 AWS CloudFormation 堆栈删除流程:
堆栈删除过程完成之后,堆栈将处于 如果删除失败,则堆栈将处于 | AWS DevOps、数据库管理员、工程师 DevOps |
故障排除
问题 | 解决方案 |
---|---|
AWS CloudFormation 模板失败 | 如果 CloudFormation 模板在部署期间失败,请执行以下操作:
|
AWS Managed Microsoft AD | 若要解决加入问题,请执行以下步骤:
|