SAA - C03 Certification: Disaster Recovery and Migrations
I am a dedicated software engineer with a deep passion for security and a commitment to developing robust and scalable solutions. With over three years of hands-on experience in the .NET ecosystem, I have built, maintained, and optimized various software applications, demonstrating my ability to adapt to diverse project needs. In addition to my expertise in .NET, I have six months of specialized experience working with Spring Boot and ReactJS, further broadening my skill set to include full-stack development and modern web technologies. My professional journey includes deploying small to medium-sized systems to cloud platforms and on-premises environments, where I have ensured reliability, scalability, and efficient resource utilization. This combination of skills and experience reflects my versatility and commitment to staying at the forefront of the ever-evolving tech landscape.
Disaster Recovery in AWS
There are different kinds of Disaster Recovery
On-premise → On-premise: traditional DR, and very expensive
On-premise → AWS Cloud: hybrid recovery
AWS Cloud Region A → AWS Cloud Region B
RPO and RTO
RPO
- How much of a data loss
RTO
- The amount of downtime of the application
Pilot Light
A small version of the app is always running in the cloud
Useful for the critical core (pilot light)
Very similar to Backup and Restore
Faster than Backup and Restore
Warm Standby
The full system is up and running but at a minimum size
Upon disaster, we can scale to production load
Multi-Site / Hot Site Approach
Very low RTO (minutes or seconds) - very expensive
Full Production Scale is running AWS and On-Premise
Disaster Recovery Tips
Backup
EBS Snapshots, RDS Automated backups / Snapshots,…
Regular pushes to S3/S3 IA/Glacier, LifeCycle Policy, Cross Region Replication
From On-Premise: Snowball or Storage Gateway
HA
Use Route53 to migrate DNS over from Region to Region
RDS Multi-AZ, ElasticCache Multi-AZ, EFS, S3
Site to Site VPN as a recovery from Direct Connect
Replication
RDS Replication, AWS Aurora + Global Database
Database replication from on-premise to RDS
Storage Gateway
Automation
CloudFormation / Elastic Beanstalk to re-create a whole new environment
Recover / Reboot EC2 instances with CloudWatch if alarms fail
AWS Lambda functions for customized automation
Chaos
- Netflix has a “simian-army” randomly terminating EC2
Database Migration Service
Supports:
Homogeneous migrations: Oracle to Oracle
Heterogeneous: SQL Server to Aurora
Continuous Data Replication using the CDC
Must create an EC2 instance to perform the replication tasks
AWS Schema Conversion Tool
Convert Database’s Schema from one engine to another
You do not need to use SCT if you are migrating the same DB engine
RDS & Aurora Migrations
Migrate to MySQL Aurora
RDS MySQL to Aurora MySQL
Option 1: DB Snapshots from RDS MySQL restored as MySQL AuroraDB
Options 2: Create an Aurora Read Replica from RDS MySQL, and when the replication lag is 0, promote it as its DB cluster (can take time and cost)
External MySQL to Aurora MySQL
Option 1:
Use Percona Xtrabackup to create a file backup in S3
Create an Aurora MySQL DB from S3
Option 2:
Create an Aurora MySQL DB
Use the mysqldump utility to migrate MySQL into Aurora (slower than the S3 method)
Use DMS if both databases are up and running
Migrate to PostgreSQL Aurora
RDS PostgreSQL to Aurora PostgreSQL
Option 1: DB Snapshots from RDS PostgreSQLrestored as PostgreSQL AuroraDB
Options 2: Create an Aurora Read Replica from RDS PostgreSQL, and when the replication lag is 0, promote it as its DB cluster (can take time and cost)
External PostgreSQL to Aurora PostgreSQL
Create a backup and put it in S3
Import it using the aws_s3 Aurora extension
Use DMS if both databases are up and running
AWS Backup
Fully managed services
Supported services:
EC2 / EBS
S3
RDS / Aurora / DynamoDB
DocumentDB / Neptune
EFS / FSx (Lustre & Windows File Server)
AWS Storage Gateway
Supports cross-region backups
Supports cross-account backups
AWS Backup Vault Lock
Enforce a WORM (Write Once Read Many) state for all the backups that are stored in AWS Backup Vault
Even the root user cannot delete backups when enabled
AWS Application Discovery Service
Plan migration projects by gathering information about on-premises data centers
Server utilization data and dependency mapping are important for migrations
Agentless Discovery: VM inventory, configuration, and performance history such as CPU, memory, and disk usage
Agent-based Discovery: System configuration, system performance, running processes, and details of the network connections between systems
The resulting data can be viewed in the AWS Migration Hub
Transferring large amounts of data to AWS
Example: transfer 200 TB of data in the cloud. We have a 100 Mbps internet connection
Snowball
Will take 2 to 3 snowballs in parallel
Takes about 1 week for the end-to-end transfer
Can be combined with DMS
Direct Connect 1 Gbps
Long for the one-time setup (over a month)
Will take 200(TB) * 1000(GB) * 8(MB)/1 Gbps = 1,600,000s = 18.5d
The Internet / Site-to-Site VPN
Immediate set up
Will take 200(TB) \ 1000(GB) \ 1000(MB) * 8(MB)/1 Gbps = 185d