On-Premises to AWS Migration Guide¶
Overview¶
Migrating from on-premises infrastructure to AWS requires a structured approach covering assessment, planning, migration execution, and optimization. This guide covers the AWS migration methodology, key tools, and best practices for a successful migration.
Migration phases at a glance¶
flowchart LR
assess[Assess<br/>inventory + dependencies<br/>TCO + business case]
mobilize[Mobilize<br/>landing zone<br/>networking + security]
plan[Plan migration<br/>wave planning<br/>per-workload R-decision]
execute[Execute<br/>AWS MGN / DMS / DataSync<br/>parallel run + validate<br/>cutover]
modernize[Modernize<br/>refactor monoliths<br/>managed services]
assess --> mobilize --> plan --> execute --> modernize
rs[The 7 Rs<br/>per workload]
rs --> R1[Retire]
rs --> R2[Retain]
rs --> R3[Rehost]
rs --> R4[Relocate]
rs --> R5[Replatform]
rs --> R6[Repurchase]
rs --> R7[Refactor]
plan -. classifies each workload .-> rs Most enterprise migrations are dominated by Rehost (fast, low risk) and Replatform (managed databases, container packaging) early. Refactor is reserved for the apps with strongest cloud-native ROI.
AWS Migration Methodology - The 7 Rs¶
1. Rehost (Lift and Shift)¶
- Move applications as-is to AWS without code changes
- Fastest migration path with lowest initial effort
- Use AWS Application Migration Service (AWS MGN) for automated lift-and-shift
- Best for applications that need to move quickly or have limited remaining lifespan
- Can optimize after migration (re-platform or refactor later)
2. Replatform (Lift, Tinker, and Shift)¶
- Make targeted optimizations during migration without changing core architecture
- Examples: move to managed database (RDS), switch to Elastic Beanstalk
- Moderate effort with meaningful operational benefits
- Common replatforming targets:
- Self-managed databases to Amazon RDS or Aurora
- Application servers to Elastic Beanstalk
- Message queues to Amazon SQS or Amazon MQ
3. Repurchase (Drop and Shop)¶
- Replace existing application with a SaaS or marketplace equivalent
- Examples: CRM to Salesforce, email to Amazon WorkMail, HR system to Workday
- Eliminates infrastructure management entirely
- Consider licensing costs, data migration, and user retraining
4. Refactor (Re-architect)¶
- Redesign application to be cloud-native
- Highest effort but greatest long-term benefit
- Leverage serverless, containers, managed services
- Best for applications with strong business value that need scalability
- Common refactoring patterns:
- Monolith to microservices
- Batch processing to event-driven architecture
- Traditional databases to purpose-built databases
5. Retire¶
- Identify and decommission applications no longer needed
- Typically 10-20% of an application portfolio can be retired
- Reduces migration scope and operational costs
- Validate with stakeholders before decommissioning
6. Retain (Revisit)¶
- Keep applications on-premises for now
- Reasons: recent upgrades, compliance requirements, end-of-life planned
- Plan to revisit during future migration waves
- May require hybrid connectivity (Direct Connect or VPN)
7. Relocate (Hypervisor-Level Lift and Shift)¶
- Move VMware-based workloads to VMware Cloud on AWS
- No need to change OS, applications, or operations
- Preserves existing VMware investments and tooling
- Fast migration with minimal disruption
Phase 1 - Discovery and Assessment¶
AWS Application Discovery Service¶
- Agentless discovery: deploys OVA in VMware vCenter, collects VM metadata
- Agent-based discovery: installs on each server, collects detailed performance data
- Discovers server dependencies and communication patterns
- Data stored in AWS Migration Hub
- Documentation: https://docs.aws.amazon.com/application-discovery/latest/userguide/what-is-apds.html
AWS Migration Evaluator (formerly TSO Logic)¶
- Builds a business case for migration
- Analyzes on-premises inventory and utilization
- Provides right-sizing recommendations for AWS
- Generates projected cost comparison (on-prem vs AWS)
- Free service - request an assessment through your AWS account team
- Documentation: https://docs.aws.amazon.com/migrationevaluator/latest/userguide/what-is-me.html
AWS Migration Hub¶
- Central location to track migration progress across AWS tools
- Aggregates data from Application Discovery Service, MGN, and DMS
- Provides migration status dashboards
- Strategy recommendations based on discovered workloads
- Documentation: https://docs.aws.amazon.com/migrationhub/latest/ug/whatishub.html
Discovery Checklist¶
- Inventory all servers, databases, and applications
- Map application dependencies and data flows
- Document network topology and firewall rules
- Identify compliance and regulatory requirements
- Assess current licensing (Windows, Oracle, SQL Server)
- Measure baseline performance metrics (CPU, memory, IOPS, network)
- Identify data volumes and change rates
- Document current backup and disaster recovery procedures
Phase 2 - Planning and Landing Zone¶
AWS Control Tower¶
- Automates multi-account setup with best practices
- Creates organizational units (OUs) for security, sandbox, production
- Deploys guardrails (preventive and detective)
- Integrates with AWS SSO for centralized identity management
- Documentation: https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html
AWS Organizations¶
- Centralized management of multiple AWS accounts
- Service Control Policies (SCPs) for permission boundaries
- Consolidated billing across all accounts
- Recommended account structure:
- Management account (billing and governance only)
- Security account (GuardDuty, Security Hub, CloudTrail)
- Shared services account (Active Directory, CI/CD)
- Network account (Transit Gateway, Direct Connect)
- Workload accounts (dev, staging, production per application)
- Documentation: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html
AWS Service Catalog¶
- Create approved product portfolios for self-service provisioning
- Enforce standards through CloudFormation templates
- Control which services and configurations teams can deploy
- Documentation: https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html
Phase 3 - Network Connectivity¶
AWS Direct Connect¶
- Dedicated private network connection from on-premises to AWS
- Consistent network performance (1 Gbps, 10 Gbps, or 100 Gbps)
- Lower data transfer costs compared to internet
- Lead time: 2-4 weeks for hosted connections, longer for dedicated
- Use Direct Connect Gateway for multi-region connectivity
- Documentation: https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html
AWS Site-to-Site VPN¶
- Encrypted IPsec tunnel over the internet
- Quick to set up (hours vs weeks for Direct Connect)
- Use as primary connection or as backup for Direct Connect
- Supports BGP for dynamic routing
- AWS VPN CloudHub for hub-and-spoke connectivity
- Documentation: https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html
AWS Transit Gateway¶
- Central hub connecting VPCs, VPNs, and Direct Connect
- Simplifies network architecture at scale
- Supports inter-region peering
- Route tables for network segmentation
- Documentation: https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html
Network Planning Checklist¶
- Determine bandwidth requirements between on-premises and AWS
- Order Direct Connect (if needed) early - long lead times
- Set up Site-to-Site VPN as initial or backup connectivity
- Plan IP address ranges to avoid conflicts (CIDR blocks)
- Configure DNS resolution (Route 53 Resolver for hybrid DNS)
- Set up Transit Gateway if connecting multiple VPCs
- Test failover between Direct Connect and VPN
Phase 4 - Migration Execution¶
AWS Application Migration Service (AWS MGN)¶
- Primary service for lift-and-shift server migration
- Continuous block-level replication from source to AWS
- Supports Windows and Linux servers
- Non-disruptive testing before cutover
- Automated machine conversion (drivers, networking, boot)
- Workflow:
- Install replication agent on source servers
- Continuous replication begins automatically
- Launch test instances for validation
- Perform cutover when ready
- Finalize and decommission source servers
- Documentation: https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html
AWS Database Migration Service (DMS)¶
- Migrate databases to AWS with minimal downtime
- Supports homogeneous and heterogeneous migrations
- Continuous replication keeps source and target in sync
- Supported sources: Oracle, SQL Server, MySQL, PostgreSQL, MongoDB, and more
- Supported targets: RDS, Aurora, Redshift, DynamoDB, S3
- Documentation: https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html
AWS Schema Conversion Tool (SCT)¶
- Converts database schemas between different engines
- Identifies conversion issues and provides remediation guidance
- Supports stored procedures, functions, triggers, and views
- Use with DMS for heterogeneous database migrations
- Documentation: https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html
AWS DataSync¶
- Automated data transfer for file systems and object storage
- Transfers data to S3, EFS, or FSx
- Built-in data integrity verification
- Bandwidth throttling to avoid impact on production
- Documentation: https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html
AWS Snow Family (Large Data Transfers)¶
- Snowcone: 8-14 TB, portable edge computing
- Snowball Edge: 80 TB storage, optional compute
- Snowmobile: up to 100 PB (exabyte-scale)
- Use when network transfer would take weeks or months
- Documentation: https://docs.aws.amazon.com/snowball/latest/developer-guide/whatissnowball.html
Phase 5 - Validation and Cutover¶
Pre-Cutover Checklist¶
- All applications tested in AWS environment
- Performance benchmarks meet or exceed on-premises baselines
- Security controls validated (security groups, NACLs, IAM policies)
- Backup and disaster recovery procedures tested
- Monitoring and alerting configured (CloudWatch, SNS)
- DNS TTLs lowered in advance of cutover
- Rollback procedures documented and tested
- Stakeholders notified of cutover window
- Change management approvals obtained
Cutover Steps¶
- Freeze changes on source environment
- Perform final data synchronization
- Validate data consistency between source and target
- Update DNS records to point to AWS resources
- Run smoke tests against AWS environment
- Monitor application performance and errors
- Keep source environment available for rollback (minimum 48 hours)
- Decommission source environment after validation period
Post-Migration Checklist¶
- Verify all applications are functioning correctly
- Confirm monitoring alerts are triggering properly
- Validate backup schedules are running
- Review and right-size instances (AWS Compute Optimizer)
- Enable AWS Cost Explorer and set up budgets
- Document updated architecture and runbooks
- Conduct post-migration review and lessons learned
- Plan optimization phase (Reserved Instances, Savings Plans)
Key AWS Documentation Links¶
| Resource | URL |
|---|---|
| AWS Migration Hub | https://docs.aws.amazon.com/migrationhub/latest/ug/whatishub.html |
| AWS MGN | https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html |
| AWS DMS | https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html |
| AWS SCT | https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html |
| Control Tower | https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html |
| Direct Connect | https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html |
| AWS Prescriptive Guidance | https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-guide/welcome.html |
Migration Anti-Patterns to Avoid¶
- Migrating everything at once instead of in waves
- Skipping the discovery and assessment phase
- Not testing rollback procedures before cutover
- Ignoring licensing implications (bring-your-own-license vs included)
- Underestimating network bandwidth requirements
- Not involving security teams early in the planning process
- Treating migration as only an infrastructure project (train your teams)
- Skipping the optimization phase after migration completes