reference deployment

SQL Server Failover Cluster Instance on AWS

Always-on FCI and Windows Server failover clustering with Amazon FSx

This AWS Solution builds a highly available Microsoft SQL Server environment, which includes Microsoft Windows Server and SQL Server running on Amazon Elastic Compute Cloud (Amazon EC2), on the Amazon Web Services (AWS) Cloud. It uses AWS Systems Manager Automation, AWS CloudFormation, and Windows PowerShell Desired State Configuration (DSC) to deploy a multi-node SQL Always On Failover Cluster Instance (FCI) and Amazon FSx for Windows File Server.

This architecture uses Windows Server Failover Clustering (WSFC) to increase application availability. WSFC provides infrastructure features that complement the high availability and disaster recovery scenarios supported in the AWS Cloud.

This solution is for IT infrastructure architects, administrators, and DevOps professionals who want to deploy and customize their own SQL Server environment. If you want a more guided deployment option, consider AWS Launch Wizard.

This solution requires that you deploy into a Region that supports Amazon FSx and that you use the Bring Your Own License model for Microsoft SQL. For a similar architecture that does not have these requirements, refer to the AWS Solution for SQL Server with Always On Replication.

This solution was developed by AWS.

  •  What you'll build
  • Use this solution to automatically set up the following SQL Server environment on AWS:

    • A highly available architecture that spans two Availability Zones.*
    • A virtual private cloud (VPC) configured with public and private subnets, according to AWS best practices, to provide you with your own virtual network on AWS.*
    • In the public subnets:
      • Managed network address translation (NAT) gateways to allow outbound internet access for resources in the private subnets.*
      • A Remote Desktop Gateway (RD Gateway) host in an Auto Scaling group to allow inbound Remote Desktop Protocol (RDP) access to Amazon EC2 instances in public and private subnets.*
    • In the private subnets:
      • Two Amazon EC2 instances running Microsoft Windows with SQL Server. These instances are installed as nodes in a WSFC cluster in an Always On FCI configuration across the Availability Zones. Each node contains an Amazon Elastic Block Store (Amazon EBS) root volume.
    • An Amazon FSx file system, which the FCI nodes share. SQL Server is installed in this file system. This file system also stores all SQL database and log files, and it acts as the WSFC cluster’s file-share witness.*
    • AWS Directory Service with a managed directory. The Amazon FSx file system and the Amazon EC2 Windows instances that host this architecture’s nodes are joined to the same Active Directory domain.
    • AWS Secrets Manager keys to store credentials.
    • An AWS Systems Manager automation document to automate the deployment.

    *  The template that deploys the solution into an existing VPC skips the components marked by asterisks and prompts you for your existing VPC configuration.

  •  How to deploy
  • To build your SQL Server FCI environment on AWS, follow the instructions in the deployment guide. The deployment process includes these steps:

    1. If you don't already have an AWS account, sign up at https://aws.amazon.com, and sign in to your account.
    2. Launch the solution. Each deployment takes about 2.25 hours. Choose the Region from the top toolbar before creating the stack. You can choose from three options:
    3. Test the deployment.

    Amazon may share user-deployment information with the AWS Partner that collaborated with AWS on this solution.  

  •  Costs and licenses
  • You are responsible for the cost of the AWS services and any third-party licenses used while running this solution reference deployment. There is no additional cost for using this solution.

    The AWS CloudFormation template for this solution includes configuration parameters that you can customize. You can choose different instance types for your resources, configure CIDR blocks and IP addresses, and customize your Active Directory and SQL Server configuration. Some of these settings, such as instance type, or volume size affect the cost of deployment. For cost estimates, refer to the pricing pages for each AWS service you use. Prices are subject to change.

    This solution requires a license for Microsoft SQL Server 2019 and a copy of the SQL 2019 installation media. You can obtain a trial license from the Microsoft Evaluation Center.

    Alternatively, if you’re not using the software for a production environment, you can use the MSSQL Developer Edition. This edition provides the full capabilities of Enterprise Edition without requiring license costs.

    This solution deploys MSSQL in Bring-Your-Own-License mode. It does not support deployment of MSSQL license-included Amazon Machine Images (AMIs).

    You are responsible for the cost of the AWS services and any third-party licenses used while running this solution. There is no additional cost for using the solution.

    This solution includes configuration parameters that you can customize. Some of these settings, such as instance type, affect the cost of deployment. For cost estimates, refer to the pricing pages for each AWS service you use. Prices are subject to change.

    Tip: After you deploy a solution, create AWS Cost and Usage Reports to track associated costs. These reports deliver billing metrics to an Amazon Simple Storage Service (Amazon S3) bucket in your account. They provide cost estimates based on usage throughout each month and aggregate the data at the end of the month. For more information, refer to What are AWS Cost and Usage Reports?