PROS and CONS – AWS RDS SQL Server vs. Azure SQL Database

Amazon AWS and Microsoft Azure are great options for deploying MS SQL Server databases.

Some use both clouds to get each cloud’s unique feature set.

However, we need to compare the features, advantages, and limitations between AWS and Azure before deciding migrating SQL to AWS vs Azure.

Lets take a look at high-level differences how to chose between AWS & Azure.

Offerings

Both are considered Platform as a Service (PaaS).

Microsoft ensures that your application always runs on the latest binaries available (SQL Server 2022) which is pretty cool, since all the newest features will be available.

There are two implementations of Azure SQL Database – single instance/elastic pools and Managed Instance.

Amazon offers a version oriented model (so you’d get 2012 to 2019 – still no 2022) as a dedicated instance.

AWS allows you to choose which version and edition of SQL Server (express, web, standard, and enterprise) to use.

There are advantages to each approach.

The AWS RDS service gives organizations more flexibility,  since some legacy applications cannot always run on the latest database engine.

Microsoft Azure model drives you to a VM + SQL install, if you need to use older version of SQL Server.

Comparing prices is a challenge because the services are not very similar. Its like comparing apples to oranges.

Both providers Azure SQL Databases and Amazon AWS RDS have pricing calculators to help estimate the cost.

Connectivity

The databases cloud services offer a different connectivity architecture.

AWS RDS SQL Server uses direct connectivity. It mirrors what most developers would expect in a traditional data center.

On the other end, Azure single databases can be deployed on the same server, coexisting with other customer databases with a high degree of isolation while ensuring security.

Therefore, the Azure single databases service needs a gateway mechanism to correctly identify which database your application is attempting to connect to, and on which server.

It means that the primary db can be hosted on any server at any point in time.

However, this gateway routing architecture can also have a noticeable negative impact on applications that require fast response times.

This connectivity model does not apply to Managed Instances, which uses direct DNS name connectivity (similar to AWS).

While the gateway approach seems unnecessary at first glance, it offers management and scalability capabilities that are only possible in this architecture.

The method allows Azure Platform to move dbs transparently when it is necessary for examples during environment upgrades.

Figure 1 – AWS RDS SQL vs Azure SQL – connectivity differences

Availability

From an availability point of view, the AWS RDS SQL Server service offers a tier without High Availability (with no SLA) and another with a single standby server. This can be used to failover automatically with a 99.95% availability (monthly).

The ability to choose an AWS RDS SQL Server without an SLA seems to provide a cost advantage for development and testing environments.

The Amazon RDS service does not provide a secondary read replica. Not yet. The secondary only can be used with AlwaysOn or log shipping.

The Azure SQL Database provides 99.99% uptime (monthly) and two high availability models.
This option also offers a pricing model for Development and Testing environments which offers up to 55% savings for licensing for Visual Studio subscribers.

The premium tier availability implements AlwaysOn Availability Groups (for up to four nodes).

It also provides a secondary readable replica that allows reports to access a read-only version of a db without impacting the primary database which is in read/write mode.

Figure 2 – AWS RDS SQL Server vs Azure SQL DB – Availability differences.

Licensing

From a licensing aspect, both cloud services provide a license-included fee model (you do not need to purchase extra licenses).

You only pay to license for the amount of time you have a running database.

However, for particular companies, it may be beneficial to leverage a BYOL (bring your own license) model, which can provide big savings.

Only the Azure SQL Database service offers a BYOL model for Managed Instances.

Amazon RDS SQL Server currently does not provide a BYOL licensing model due to restrictions imposed by Microsoft.

Figure 3 AWS RDS vs Azure SQL DB – Licensing differences

T-SQL Limitations

AWS RDS SQL Server and Azure SQL DB there are limitations, some are inherent to the db version.

At the same time, other features are unavailable due to management or security concerns on each platform.

The Amazon AWS RDS SQL Server implementation offered the closest compatibility to an on-premise deployment.

Microsoft release of the Azure SQL Managed Instance competes feature wise and provides near compatibility.

On the other end, the Azure SQL single database offers a pure PaaS implementation designed explicitly for cloud-born applications.

For a complete list of T-SQL features that are not supported by Microsoft Azure, please see the documentation for Single Databases and Managed Instances.

The Amazon has significantly less detailed documentation for the AWS RDS limitations.

In the table below, you can see a partial overview of the key feature differences of the services.

Azure SQL DB vs Amazon RDS - TSQL feature comparison
Figure 4 – Azure SQL DB vs Amazon RDS – TSQL feature comparison

Backup

Both services offer a robust backup and restore capability.

Azure Platform provides automated backups with point-in-time restores (5-minute increment).
The backups are kept between 7-35 days, depending on the service level purchased.

Also, there are long term retention options available for storing backups for up to 10 years (for Single Databases and Elastic Pools).

Only Azure managed instances supports the BACKUP operation (which is not supported for Single Databases).
The COPY_ONLY backup is the unique option available. Differential and log backups are not supported.

Amazon RDS SQL Server will also backup your database daily (automatic snapshot) with a 5-minute log backup increment. Backup retention is also 35 days.

AWS RDS provides support for manual DB snapshots. Like automated backups, a DB snapshot create a backup of an entire SQL Server instance, not just a database.

Finally, RDS also provides native support for the BACKUP command (full backups of individual databases).
It allows backup your RDS SQL Server databases to S3 buckets that you can then restore to a local SQL Server.

Security

On the security front, both services seem to offer similar capabilities.

Both cloud vendors provide the ability to use a service-generated encryption certificate or allow customers to provide their own through the  KMS (Amazon) or the Azure Key Vault (Azure) Service.

Also, both allow Active Directory integration with certain limitations.

The Azure SQL Database service only works with the Azure Directory Service, while the AWS RDS SQL Server service requires a service called Microsoft Active Directory (MAD).

Only Azure SQL Database service provides advanced options that are not part of the database engine itself, such as Data Masking and Advanced Threat Protection.

Worth mentioning is that Azure service forces encryption in transit and at rest, while the AWS service makes those that an option which is configured separately.

Figure 4 – Security differences.

Scalability

In AWS, you can quickly scale up by adding RAM, IOPS, and CPU cores.

The AWS RDS SQL Server service will scale up to the limits of hardware.

Amazon tries to make this process as smooth as possible, but it may require few minutes of downtime.

To minimize the impact on consumers, the AWS RDS service provides specific maintenance windows during which these changes can be done.

There are various hardware options for the AWS RDS SQL Server service.
Your options vary based on the edition of SQL Server you choose.

AWS RDS SQL Server scalability options are well understood and easy from a capacity planning standpoint. This makes it particularly easy to fork and lift existing workloads and predict what size you will need in AWS.

On the Microsoft Azure service, things are a bit different. There are two sizing units for a SQL Database: DTU and vCore.

The DTU (Database Transaction Unit) model applies to the Single Instance model, while the vCore model (more closely aligned to the AWS RDS offering) is only available for Managed Instances.

Where the Azure SQL DB offering shines is in the granularity of its scalability options.

The DTU models allow you to be precise on the overall performance needs of your database.
You can fine-tune your performance requirements at will with minimum impact on your service.

Also, the Azure SQL Database service allows you to create an elastic pool (only for the Single Instance model).

It will enable you to co-locate databases under a single Azure SQL Database server, allowing share the overall resources of the instance.

Microsoft recently introduced the concept of a serverless database for the vCore offering.
With a serverless database, the service itself is paused after a configurable period of inactivity.

That means you will only pay for storage. This option is excellent for development and testing environments.

Figure 5 – Scalability differences.

Conclusion

AWS RDS and Azure SQL Database services compete on how to deliver the best experience for customers.

AWS RDS provides a more server-oriented model that offers strong backward compatibility for applications that need earlier versions of SQL Server.

On the other hand, Azure offers a dynamic platform that is always running the latest version of SQL Server.

From data protection and secure points,  both services offer robust capabilities.

However, the scalability options for AWS RDS and Azure SQL databases are very different. Both offer to scale up and down options, with AWS RDS being somewhat limited.

A business that uses Microsoft technologies will find Azure a more familiar environment. You’ll get Visual Studio integration, support for .NET applications, T-SQL, etc.

If you’re still not sure which to use, consider what is your primary motivation to move your database to the Cloud.

Let our expert SQL Server Consulting team handle the technical complexities, so you can focus on driving your business forward with confidence.

Mark Varnas

Mark Varnas

Hey I'm Mark, one of the guys behind Red9. I make a living performance tuning SQL Servers and making them more stable. I channel my SQL into our SQL Managed Services, SQL Consulting and our internal database products.

Leave a Reply

Your email address will not be published. Required fields are marked *