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.
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.
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.
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.
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 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.
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.
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.
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.
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.
On the security front, both services seem to offer similar capabilities.
Also, both allow Active Directory integration with certain limitations.
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.
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.
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.
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.