AWS Certified Cloud Practitioner
The 7 Rs of AWS migration: rehost vs replatform vs refactor
AWS names seven migration strategies, called the 7 Rs: retire, retain, rehost, relocate, repurchase, replatform, and refactor or re-architect. They range from turning an application off or leaving it where it is, through moving it unchanged, to redesigning it for the cloud.
Leave it, or turn it off
Retire: decommission or archive the application and shut down its servers. Use it when there is no business value in keeping or moving the application.
Retain: keep the application in its source environment for now. Reasons include data residency rules, dependencies on other applications, a recent upgrade, or hardware with no cloud equivalent.
Move it with no or few changes
Rehost, also called lift and shift: move the application to the AWS Cloud without changing it. It suits moving large numbers of servers from physical, virtual or other cloud platforms.
Relocate: move many servers at once from an on-premises platform to a cloud version of that platform, or move resources to a different VPC, Region or AWS account. No new hardware, rewrites or operational changes are needed. AWS calls it the quickest way to migrate.
Replatform, also called lift, tinker and shift or lift and reshape: move the application and make some optimizations along the way. AWS's example is moving a Microsoft SQL Server database to Amazon RDS for SQL Server, a managed service.
Replace it, or redesign it
Repurchase, also called drop and shop: replace the application with a different version or product. A common case is moving from a traditionally licensed product to software as a service (SaaS).
Refactor or re-architect: move the application and change its architecture to take full advantage of cloud-native features, for agility, performance and scalability. It is the most complex and costly strategy. For large migrations AWS recommends rehosting, relocating or replatforming first and modernizing afterwards.
Where the exam catches people
- Believing rehost changes the application: rehost moves it without any changes; making some optimizations is replatform.
- Believing moving a database to Amazon RDS is refactoring: AWS gives SQL Server to Amazon RDS for SQL Server as a replatform example.
- Believing switching to a SaaS product is rehosting: replacing the application with a different product is repurchase.
- Believing retire and retain mean the same thing: retire shuts the application down; retain keeps it running where it is for now.
- Believing refactor is the default for large migrations: AWS says refactor only when other strategies are not acceptable, and modernize after the migration.