Is Microsoft’s licensing scheme getting you down? It’s 2020 and there are now plenty of data platforms that are good for running your enterprise data workloads. Amazon’s Aurora PaaS service runs either MySQL or PostgreSQL.
I’ve been supporting SQL Server for nearly 22 years and I’ve seen just about everything when it comes to bugs or performance problems and am quite comfortable with SQL Server as a data platform; so, why migrate to something new?
Amazon’s Aurora has quite a bit to offer and they are constantly improving the product. Since there’s no license costs its operating expenditures are much more reasonable. Let’s take a quick look to compare a 64 core Business Critical Azure Managed Instance with a 64 core instance of Aurora MySQL.
What about Aurora?
Two nodes of Aurora MySQL are less than half the cost of Azure SQL Server Managed Instances.It’s also worth noting that Azure Managed Instances only support 100 databases and only have 5.1 GB of RAM per vCore. Given the 64 GB example there’s only 326.4 GB of RAM compared to the 512 GB selected in the Aurora Instance.
This post wasn’t intended to be about the “Why” of migrating; so, let’s talk about the “How”.
Migration at the high level takes two steps.
- Schema Conversion
- Data Migration
Schema Conversion is made simple with AWS SCT (Schema Conversion Tool).
Walking through a simple conversion. Note that the JDBC drivers for SQL Server are required.
You can’t use “.” for a local host, which is a little annoying but typing the servername is easy enough.
The dark blue items in the graph represent complex actions, such as converting triggers, since triggers aren’t a concept used in MySQL they aren’t a simple 1:1 conversion.
Migrating to Aurora from SQL Server can be simple with AWS SCT and a cost saving move that also modernizes your data platform. Next we’ll look at AWS DMS (Data Migration Service).
Thanks to the engineers at AWS, migrating to Aurora PostgreSQL is even easier. Recently Babelfish for Aurora PostgreSQL was announced, which is a product that allows SQL Server’s T-SQL code to run on PostgreSQL.