How Geopits migrated an HRMS platform's 1 TB MySQL database from AWS RDS to Azure PaaS with 20 minutes of downtime
1 TB
20+ Hrs to 20 Min
12
Same Day
About
The client is an HRMS platform that helps organizations manage and retain talent, providing end to end support across employee onboarding, payroll, performance reviews, and employee benefits. The client was running its production database on AWS RDS MySQL, with data volume around 1 TB, and wanted to move to Azure on a serverless PaaS architecture based on performance benchmarking.
Business Challenges
A 1 TB production database, a hard limit on acceptable downtime, and no built-in migration path stood between the client and a serverless Azure architecture.
The client's AWS RDS MySQL database held around 1 TB of data supporting live HR workflows for organizations across the globe.
Azure Database Migration Service does not support online migration from AWS RDS MySQL, ruling out the standard built-in tooling.
An offline migration would have required roughly 18 to 20+ hours of downtime, which the client could not accept for a live HR platform.
The migration needed to remain as seamless as possible for end users throughout the cutover
Project Objectives
Geopits was asked to migrate the client's production MySQL database from AWS RDS to Azure Database for MySQL on a serverless PaaS architecture, with minimal downtime and no disruption to live HR operations.
Key Goals:
- Migrate approximately 1 TB of production data from AWS RDS to Azure PaaS
- Keep cutover downtime to minutes, not hours
- Validate data integrity before and after cutover
Solution Provided by Geopits
Geopits ran a proof of concept before executing the migration on production, using a data-in replication approach to keep source and destination continuously synchronized ahead of a single, short cutover window.
Geopits validated a data-in replication approach, synchronizing data from the AWS RDS MySQL server into Azure Database for MySQL as an external source, before running the process on the production environment.
A read replica was created in AWS, replication was stopped once fully in sync at a known binary log position, and a full backup was taken from the read replica using an EC2 Windows server before being moved to Azure and restored.
After restoring the backup in Azure, a replication user was created on the AWS source and data-in replication was started from AWS RDS to Azure PaaS, keeping the two environments continuously synchronized.
Replication lag and table and row counts were monitored to confirm the destination was fully in sync,before cutting over the client’s IP from AWS RDS to Azure PaaS and decommissioning the source database.
Key outcomes
Downtime cut from 20+ hours to 20 minutes
Client live on Azure the same day
Continuous replication kept the migration fail-safe
Faster, more cost-effective migration
Conclusion
Geopits migrated the client's approximately 1 TB production MySQL database from AWS RDS to Azure Database for MySQL using a live data-in replication approach, reducing downtime from an estimated 18 to 20+ hours to roughly 20 minutes, enabling the client to go live on Azure PaaS on the same day.
Ready to Transform Your Data?
Geopits works alongside your team as a strategic partner, starting with stabilizing your current databases, then modernizing your data infrastructure, and ultimately helping you unlock the full potential of AI.
Happy Clients so far
Databases Managed
Successful Migrations
