ASP had a need to modernise their Microsoft workload. The RDS SQL Server costs were a huge fraction of the monthly bill. There were two main reasons for this: the Microsoft license costs (including in the RDS pricing) are huge; and the limit of 50 databases per RDS SQL Server instance meant that ASP's 350+ customer websites needed to be sharded across multiple RDS instances.
There were thus two drivers for the modernisation: firstly cost-savings; and secondly simplified operations by consolidating to use a single AWS Aurora database cluster. Cost savings were about 65% moving from 4 RDS MSSQL instances to 1 Aurora instance.
Cloudsoft worked with ASP to plan, test and execute the migration from SQL Server to AWS Aurora. During the assessment and testing phase, it was identified that MySQL 5.7 was the best choice due to compatibility requirements with components in the current technology stack. Aurora was chosen over vanilla RDS MySQL for its excellent high-availability, read-replicas and performance. The data was migrated from SQL Server to Aurora using the Database Migration Service (DMS). During the final cutover, the sites were put into read-only mode, the data was replicated, new version of the code deployed to move to work with Aurora, and then the sites were brought back to full read / write. There was zero downtime for the websites. There were about 11,000 minor code changes to the application required (e.g. to handle case-sensitive table names, etc), made over the course of 3-4 months building up to the migration. Monitoring and alerting, through CloudWatch, was updated to follow Aurora best practices. Also, the operations runbooks and playbooks required significant updates, along with learning new tools such as MySQL Workbench.
The following AWS services were used:
RDS SQL Server (pre-modernisation).
AWS Aurora (MySQL compatible).
Secrets Manager for storing and accessing the database credentials.
CloudWatch Metrics and Alarms (combined with SNS) for monitoring and alerting.
Database Migration Service (DMS).
EC2 instances for the front-end and back-end services.
Application Load Balancers (ALBs).
Data storage in EFS and in S3.
GuardDuty, CloudTrail, and access/flow logs for automated security checks.
CloudFormation, in automating the resource provisioning and cutover.
The Results and Benefits
The ASP modernisation was a success - the planning, testing and dry-runs paid off with a smooth cutover. The cost savings made an immediate dent in the AWS bill (reducing database costs by 65%), and ASP continues to further modernise and improve their applications on AWS.