My organization is considering moving our current SQL Server RDS instance to an AWS Aurora instance. Our motivation is solely to cut down on costs. I have run some successful tests using the MySQL Workbench Database Migration tool to move the SQL Server db to an Aurora instance. The database is about 4GB, has about 100 tables, about a dozen views and stored procedures. I am already using a MySQL copy of the database for development on a local machine, so all SQL syntax differences are already handled.
Are there any serious downsides to this migration project? Anything we should consider before making the switch?
This is a really series step. You should consider a few key things while migrating:
- Performance: for simple request Aurora (improved MySQL) can be faster than MS SQL, but:
a) MS SQL has smarter query analyzer and in order to take good Aurora (MySQL) performance you need to understand how it works very well. SQL Server can “excuse” a lot of developer things.
b) For such big databases SQL Server in Enterprise edition has a few great features: partitioning, data compressions, online rebuild indexes, always on. But Enterprise edition can be expensive enough. That’s true.
- Development: MySQL (Aurora) syntax is really poor comparing to SQL Server. MySQL doesn’t support many many things like HierarchyID, recurrent CTE, included column in indexes, index filtering, change tracking, XML, JSON and so on. It even limites systax for nested queries a lot. Many thing you need to implement yourself. Also, SQL Server has more professional development tools like SQL Server Management Tool, SQL Profiler, and Tuning Adviser and so on.
- Different implementations: Some things in Aurora work differently. For instance, unique index in Aurora allows having many null values but SQL Server doesn’t allow this. And so on.
- Priсe: For good performance for now you need to rent at least large Aurora instance which costs about $210 p/m + replica = about $420 – not so cheap. Amazon Aurora Pricing
So, I’d recommend calculating all pros and cons while migrating because you can reduce resource cost but spend additional time and affords (so money) on development and maintenance.