AWS 280: The seven migration strategies
Why this lesson matters
“Move it to AWS” is not one strategy. A low-value application may be retired, a regulated mainframe retained temporarily, packaged software replaced with SaaS, VMware workloads relocated, servers rehosted, databases replatformed, and a differentiating product refactored. Choosing one label for an entire portfolio wastes money and hides dependencies.
The seven Rs are retire, retain, rehost, relocate, repurchase, replatform, and refactor or re-architect. A strategy records the intended disposition, not an executable plan. Every decision still needs evidence, target state, dependencies, owner, economics, validation, cutover, rollback or exit, and review date.
Outcomes
By the end, you can:
- define all seven strategies and distinguish commonly confused pairs;
- choose at application or component level from business and technical evidence;
- separate migration strategy, migration pattern, tooling, and wave;
- calculate confidence and record missing evidence instead of guessing;
- include data, dependencies, licensing, security, compliance, operations, skills, and cost;
- recognize mixed strategies and temporary retain/rehost decisions;
- turn decisions into dependency groups, waves, cutover gates, rollback, and decommissioning;
- review automated recommendations without delegating accountability to a tool; and
- classify a 20-application portfolio with testable rationale.
Four different decisions
| Decision | Example | Question |
|---|---|---|
| Strategy | replatform | What disposition creates the target outcome? |
| Pattern | Oracle to managed PostgreSQL with staged replication | How will this component change? |
| Tool | DMS, DataSync, Application Migration Service, partner tool | What assists execution? |
| Wave | Wave 3 dependency group B | When and with which dependencies does it move? |
Do not write “DMS” as a strategy or “rehost” as a runbook. The same strategy can use several patterns/tools, and one application can use different strategies for web, database, file, identity, and reporting components.
Evidence required before selecting an R
Build a current-state record:
- business capability, owner, users, revenue/risk, criticality, lifecycle and roadmap;
- servers, operating systems, middleware, databases, storage, network and environments;
- inbound/outbound dependencies with protocol, frequency, volume, latency and data meaning;
- utilization and seasonal peaks over a representative period;
- RTO, RPO, availability, performance and maintenance windows;
- data classification, residency, retention, encryption and audit obligations;
- licenses, contracts, vendor support, hardware ties and renewal/end-of-support dates;
- deployment source, test automation, configuration, observability, backup and DR;
- operational team, skill/readiness, incidents, toil and technical debt; and
- current cost plus target one-time and recurring assumptions.
Discovery traffic does not explain business semantics. A rarely observed quarterly batch can be critical; a busy monitoring connection may not require co-migration. Interview owners and operators, validate CMDB data, and assign confidence to each field.
Retire
Retire decommissions or archives an application that no longer provides sufficient business value.
Good evidence includes confirmed replacement, no valid users/traffic over an appropriate business cycle, duplicate capability, unsupported/security risk, and owner/legal approval. Low CPU alone is not proof: schedulers, annual jobs, license servers, DNS, integrations, or disaster-only systems may be quiet.
Retirement plan:
- identify data retention, legal hold, audit and retrieval requirements;
- map inbound/outbound callers, jobs, DNS, certificates, identities and licenses;
- notify owners/users and define a reversible disable period;
- archive data/configuration/source/runbooks with tested retrieval;
- block or stop service and monitor unexpected demand;
- remove routes, DNS, secrets, agents, backups and licenses in order;
- terminate infrastructure only after acceptance; and
- verify billing, security inventory and CMDB closure.
Rollback during the observation window restores service from the preserved state. After destruction, recovery may be a separate archive-restore process with a longer RTO.
Retain
Retain keeps the workload in its current environment for now. Valid reasons include regulatory restrictions, hardware/latency dependency, vendor constraints, imminent retirement/replacement, insufficient evidence, frozen business period, or economics that do not justify migration.
Retain must have an owner, security/support plan, cost, risk acceptance, dependency contract, trigger, and review date. “Too hard” without a reassessment plan is backlog avoidance. Retained dependencies can force migrated applications into hybrid latency, DNS, identity, monitoring, and failure exposure.
Examples of triggers: contract renewal, hardware end-of-life, data-center exit, supported managed-service release, dependency migration, or six-month architecture review.
Rehost
Rehost moves servers/VMs largely as-is to EC2, often called lift and shift. It can accelerate data-center exit and reduce application change. It does not automatically deliver cloud-native availability, cost efficiency, patching, observability, backups, or scalability.
Evaluate architecture/instance compatibility, drivers/kernel, boot mode, disk and filesystem, IP/DNS change, identity, licenses, latency, replication bandwidth, cutover outage, agent conflicts, target subnet/security, backup, monitoring and rollback. Right-size from measured demand, not source nameplate capacity.
Typical pattern: replicate disks continuously, launch test instances in an isolated subnet, remediate boot/network issues, run functional/performance/security tests, freeze or final-sync, switch traffic, validate, retain rollback state for a defined window, then decommission source.
Rehost can be a deliberate two-step strategy: move by deadline, stabilize, then replatform/refactor. Record the modernization owner/date or the temporary state often becomes permanent.
Relocate
Relocate transfers compatible virtualized/cloud resources to another environment with minimal application change, such as moving a VMware estate into a compatible AWS-hosted VMware environment or moving supported AWS resources between accounts/VPCs.
It differs from rehost because the surrounding platform/resource is moved without converting each workload to a new compute architecture. Validate product support, network extension, IP/DNS, cluster capacity, storage/datastore, identity, licenses, backups, operational ownership, failure domains, data transfer, and eventual exit.
Relocation can meet a rapid facility deadline but preserve existing platform costs and technical debt. It is not “no change”: connectivity, control plane, support model, monitoring and disaster recovery change.
Repurchase
Repurchase replaces the current application with a commercial SaaS or different licensed product, sometimes called drop and shop.
The difficult work is business/process and data migration, not server copying:
- fit-gap requirements and customizations;
- vendor security, residency, encryption, audit, availability and exit rights;
- identity/SSO, roles, integrations, APIs, rate limits and egress;
- data mapping, cleansing, history, attachments and reconciliation;
- contract, subscription, implementation, support and price escalation;
- user training, process change and dual-running period; and
- export format, deletion proof and vendor-exit plan.
Rollback may require keeping the legacy system read-only or dual-running while reconciling writes. Do not permit uncontrolled writes in both systems.
Replatform
Replatform makes targeted optimizations without redesigning the application's core architecture. Examples include self-managed database to RDS, server-hosted application to containers, or file/object workflows to managed storage where code changes are limited.
It reduces operational work but introduces service behavior and constraints. Validate engine/version/extension compatibility, parameter/feature differences, connection endpoints, maintenance, backup/restore, HA/failover, quotas, monitoring, IAM/encryption, performance, licensing and cost.
A database replatform needs schema/object assessment, full load plus change replication, data validation, performance tests, cutover lag gate, endpoint change, rollback/forward-recovery and source retention. “Managed” does not eliminate application testing or shared-responsibility duties.
Refactor or re-architect
Refactor materially changes architecture/code to obtain agility, scale, resilience, managed/serverless operation, or new business capability. It may split a monolith, redesign state, adopt event-driven flows, change data stores, or automate delivery.
This is usually the highest-complexity strategy. Large migrations often move first with rehost/replatform/relocate and modernize later, unless refactoring is required for the business outcome or source cannot run on target.
Define domain boundaries, data ownership/consistency, API/event contracts, idempotency, deployment, observability, security, performance, resilience and incremental transition. Use patterns such as strangler only with routing, data synchronization, rollback and coexistence evidence. Avoid a “big bang rewrite” with no incremental value or parity test.
Compare the seven
| Strategy | Change | Speed tendency | Main hidden risk | Exit proof |
|---|---|---|---|---|
| Retire | remove | fast after evidence | unknown consumer/data duty | no demand, archive retrieval, billing zero |
| Retain | none now | no move | unmanaged permanent exception | reviewed trigger and support |
| Rehost | infrastructure | fast | moves debt/cost as-is | target accepted, source decommissioned |
| Relocate | platform location | fast/medium | platform lock-in/dependency | estate operational in target |
| Repurchase | product/process | medium | data/integration/vendor exit | users/data/process accepted |
| Replatform | targeted components | medium | compatibility/managed constraints | functionality/performance/ops accepted |
| Refactor | architecture/code | slow/iterative | scope, data and parity | measurable outcome and old path removed |
Speed depends on evidence and dependency complexity; the table is a tendency, not a promise.
Mixed strategy example
For an order platform:
- retire an unused reporting server;
- retain a mainframe fulfillment dependency for 12 months;
- rehost a vendor-locked batch worker;
- repurchase CRM capability as SaaS;
- replatform PostgreSQL to RDS;
- refactor order events into managed messaging; and
- relocate a supporting VMware appliance.
The portfolio record can name the application-level strategy as “replatform-led,” but component decisions and dependencies remain explicit. Coexistence needs hybrid DNS, routes, identity, data synchronization, latency, monitoring and incident ownership.
Decision method and confidence
Score options only after mandatory gates:
- Is retirement safe and approved?
- Is a replacement/SaaS aligned to business capability?
- Must it remain due to an explicit constraint?
- Can the platform relocate compatibly?
- Can it rehost within deadlines/support?
- Which limited managed-service changes improve outcome?
- Is refactoring justified and deliverable?
For each decision record:
| Field | Required |
|---|---|
| strategy and component scope | one R plus mixed-component detail |
| evidence/rationale | measured facts and business driver |
| confidence | high/medium/low with missing data |
| target | account, Region, service/platform and architecture |
| dependencies | hard/soft/shared/business/operational |
| economics | source, one-time, run, license and exit costs |
| security/compliance | data, identity, residency, controls, evidence |
| execution | pattern, tool, move group, wave, outage |
| acceptance | functional, data, performance, security, operations |
| rollback/exit | trigger, time window, data reconciliation |
| owner/review | accountable owner, approvers, date/trigger |
Low confidence does not mean choose rehost automatically. It means perform detailed assessment before commitment.
From strategy to wave
Dependency groups contain applications/components that must move together. Waves contain manageable dependency groups selected by complexity, business priority, environment, team capacity, bandwidth, platform readiness and change windows.
Early waves should be small, lower risk and useful for learning. Avoid placing every simple app first if a hidden shared database then blocks later work. Remove shared-service “noise” from communication maps but document real identity, DNS, backup and monitoring dependencies.
Each wave includes design, target/landing-zone readiness, tooling and replication, cutover/rollback runbook, functional/data/performance/security/operations tests, business acceptance, hypercare, source decommission and lessons fed into later waves.
Twenty-application exercise
Classify:
- unused intranet with legal records;
- stable Linux web app under data-center exit deadline;
- Oracle app needing unsupported extensions;
- VMware estate with short facility lease;
- custom CRM with available SaaS replacement;
- differentiating monolith needing weekly releases;
- batch app with mainframe dependency;
- unsupported Windows application with no owner;
- PostgreSQL app suitable for managed database;
- file-transfer server with partner IP allowlists;
- low-latency factory control tied to hardware;
- seasonal public API;
- duplicate reporting platform;
- licensed appliance available from Marketplace;
- analytics warehouse with residency limits;
- container-ready stateless service;
- application scheduled for merger replacement;
- identity directory shared by 80 applications;
- archive search used twice yearly; and
- order system with seven mixed components.
There is no score for choosing seven different labels. There is a score for evidence. For each application submit all decision-record fields, at least two rejected alternatives, confidence gaps, dependency group, wave readiness, cutover/rollback or retire/retain exit, and review trigger.
Tool recommendations are evidence, not authority
Discovery, Migration Evaluator, Migration Hub, database/schema tools, and AWS Transform reports can accelerate inventory or recommendations. Their output reflects collected data, supported rules, scan period and assumptions. Validate ownership, hidden dependencies, licensing, compatibility, business process, security and data duties with humans.
AWS Transform can produce R-strategy evidence for supported VMware assessment scenarios. Do not enable a service, upload estate data, create artifact storage, or install tooling merely to complete this no-create lesson. Review current identity, Region, permissions, encryption, data handling and pricing before any separately approved live assessment.
Cost, risk, and acceptance
Compare total cost over a stated period:
- source run/contract/facility and avoided costs;
- assessment, tool, transfer, dual-run and project labor;
- target compute/storage/database/network/security/log/support;
- licenses, SaaS subscription and escalation;
- modernization development and operational training;
- outage, rollback, delayed decommission and compliance risk; and
- exit/portability/data retrieval.
Acceptance must include business transaction, data count/reconciliation, performance under representative load, security/compliance, backup/restore/DR, monitoring/alerts, operations/runbook/on-call, billing/tags, and source decommission criteria.
Diagnose poor strategy decisions
| Symptom | Likely defect | Correction |
|---|---|---|
| 90% rehost with no rationale | deadline defaulted portfolio | assess business value and component options |
| retain has no date | permanent exception hidden | add trigger, owner, support/risk plan |
| retire based on CPU only | usage evidence incomplete | test users, jobs, dependencies and retention |
| repurchase ignores export | vendor lock-in unpriced | define data/contract exit proof |
| replatform has no compatibility test | managed service assumed equivalent | detailed assessment and negative tests |
| refactor blocks data-center exit | modernization coupled to move | separate migration and modernization where viable |
| wave cuts shared database | dependency graph wrong | regroup and plan coexistence |
| migrated source never removed | acceptance/decommission absent | time-bound closure and billing proof |
Lesson acceptance
The lesson is complete only when the learner can:
- define and contrast all seven strategies accurately;
- separate strategy, pattern, tool and wave;
- collect business, infrastructure, dependency, security, operational and economic evidence;
- classify all 20 applications and mixed components with confidence;
- reject at least two alternatives per application using evidence;
- identify temporary decisions and enforce review/exit triggers;
- group dependencies into executable waves with readiness gates;
- define cutover, rollback, acceptance, hypercare and source decommission;
- model full lifecycle cost, risk, licensing and compliance; and
- attest that no AWS or production resource changed.