AWS Database Blog
Implement high availability in Amazon RDS for SQL Server Web Edition using block-level replication
Amazon Relational Database Service (Amazon RDS) for SQL Server has enhanced SQL Server 2022 Web Edition by introducing high availability through block-level replication in Multi-AZ deployments. Previously, high availability features were limited to Enterprise and Standard Editions through technologies like Always On availability groups or Database Mirroring. This new capability brings enterprise-grade availability to SQL Server Web Edition, which is designed for Web hosters and Web value-added providers (VAPs) to host public and Internet-accessible web pages, websites, web applications, and web services.
With this release, you can quickly set up and maintain highly available databases while significantly reducing operational overhead. In this post, we discuss the benefits of block-level replication and how to get started. For more information, see Licensing Microsoft SQL Server on Amazon RDS.
Solution overview
Multi-AZ deployments in Amazon RDS achieve high availability by maintaining a synchronized standby database instance. While Amazon RDS for SQL Server has historically supported various replication technologies, this new solution specifically leverages block-level replication to synchronize storage between primary and standby instances. This approach provides a more streamlined and efficient method for maintaining database redundancy.
Supported versions for Multi-AZ on SQL Web edition:
- SQL Server 2022: Web Edition 16.00.4215.2.v1 and above
Note that for Microsoft SQL Server Web Edition, only new DB instances created or upgraded to 16.00.4215.2.v1 or higher versions are eligible for Multi-AZ deployments using block level replication.
Refer to the RDS documentation to stay updated with the latest version support.
In a Multi-AZ deployment, Amazon RDS automatically provisions and maintains a synchronous standby replica in a different Availability Zone. The time it takes for a failover to complete depends on the database activity and other conditions at the time the primary DB instance became unavailable. Failover times are typically 60 –120 seconds. However, large transactions or a lengthy recovery process can increase failover time.
The primary instance’s data is synchronously replicated at the block level to the standby instance, providing complete data redundancy including server-level objects and configurations. During an unplanned service disruption, Amazon RDS automatically fails over to the standby instance. Your database operations can resume with minimal interruption because the same DNS endpoint is maintained throughout the failover process, alleviating the need to reconfigure application connection strings.
You can create a new RDS SQL Server Web Edition database instance with Multi-AZ option or modify an existing Web Edition database instance from Single-AZ to Multi-AZ, by using the AWS Management Console, AWS Command Line Interface (AWS CLI), or AWS SDKs
Prerequisites
To get started, you must have the following resources:
- An AWS account with appropriate permissions
- A Windows EC2 instance with SQL Server Management Studio (SSMS) installed and security group rules allowing communication with Amazon RDS
- (optional) The AWS CLI installed and configured
This solution requires new AWS resources and will incur costs. Review AWS Pricing before implementation.
We strongly recommend testing this setup in a non-production environment and performing complete validation before production deployment.
Create Multi-AZ DB instance
Before you create your DB instance, verify the AWS Region and version availability to make sure the combination of SQL Server editions and versions are enabled for you in the Region where you want to host the RDS instance.
To create your Multi-AZ Amazon RDS instance, complete the following steps:
- On the Amazon RDS console, choose Databases in the navigation pane.
- Choose Create database.
- Choose Standard create.
- Configure the basic settings:
- For Engine type, choose Microsoft SQL Server.
- For Database management type, choose Amazon RDS.
- For Edition, choose SQL Server Web Edition.
- For Version, choose 16.00.4215.2.v1
- For Instance identifier, enter a name for your instance.
- Under Settings, configure the following:
- Enter your primary user name and password.
- Specify the DB instance class as needed.
- Set the storage type and size.
- Under Availability & durability, for Multi-AZ deployment, select Yes (Block Level Replication).

- Under Configure connectivity, choose your virtual private cloud (VPC) and subnet group.
- For Public access, select No.
- For VPC security group, choose existing and choose the security group you created.
- Choose Create database.
Wait for Amazon RDS to provision the Multi-AZ Amazon RDS instance.
Alternatively, you can deploy a Multi-AZ instance using the AWS CLI.Use the following command to create an RDS for SQL Server Web edition instance using the AWS CLI on Windows:
Use the following command to create an RDS for SQL Server Web edition instance using the AWS CLI on MacOS/Linux:
Connect and verify configuration
Complete the following steps to verify your configuration:
- Connect to your Amazon EC2 instance using Session Manager
- Launch SSMS and connect with the following information:
- Server name: Your Amazon RDS for SQL Server instance endpoint
- Authentication: SQL Server authentication
- Login credentials: As specified during creation
- Open a new query window and run the following query to create a database and table:
You will see the database being created and data inserted into the table with 50 records.
Perform a failover
You can test the failover functionality using the console. The failover process promotes the secondary node as the new primary instance. You will notice the change of the primary Availability Zone as well. Complete the following steps:
- On the Amazon RDS console, select your instance.
- On the Actions menu, choose Reboot.
- Choose Reboot with failover.
- Confirm the reboot.
The reboot with failover operation will cause a brief downtime. Schedule this during off-peak hours to minimize impact on your applications.
Alternatively, you can initiate a failover using the AWS CLI:
Verify the post-failover status
After you complete the failover process, you can connect to the new primary instance to verify the database that was created earlier is in the available state and you can query it. Complete the following steps:
- Remote Desktop to your Windows EC2 instance (if the previous connection closed).
- In the search window, search for SSMS, choose Connect, and choose Database Engine.
- For Server name, enter the RDS for SQL Server endpoint.
- Enter the login and password details you specified when you created the RDS for SQL Server instance.
- Choose Connect.
- Open a new query window and verify data accessibility:
You should see 50 rows returned.
It takes a few minutes for the console to reflect the new Availability Zone.
Limitations
For more information about the limitations of this solution, refer to Limitations for Microsoft SQL Server DB instances.
Clean up
To avoid ongoing charges, delete the resources you created as part of this post:
Conclusion
In this post, we showed how to set up a Multi-AZ RDS for SQL Server Web Edition instance and validate its high availability capabilities through failover testing.
This new feature simplifies the process of implementing high availability for your databases while reducing operational overhead. By minimizing the need for manual configuration and maintenance, you can better meet your business continuity and application availability requirements.
We encourage you to implement this solution in your AWS account. If you have questions or want to share your experience, Leave a comment.