Cloud migration isn't just "move everything to AWS." Done well, it transforms your infrastructure. Done poorly, it costs more than what you had before and adds complexity without benefit.
Here's the checklist I use with every migration project.
Phase 1: Assessment
1. Inventory Everything
Before you move anything, know what you have:
- All servers and their configurations
- Applications and their dependencies
- Databases and data volumes
- Network configurations
- Current monthly infrastructure costs
You can't plan a move if you don't know what you're moving.
2. Classify Your Workloads
Not everything should move to the cloud the same way. For each application, decide:
- Rehost (lift and shift): Move as-is. Fastest but fewest benefits.
- Replatform (lift and optimize): Make minor adjustments to leverage cloud features.
- Refactor: Rebuild to be cloud-native. Most benefit, most effort.
- Retire: Turn it off. You'd be surprised how many apps nobody uses.
3. Choose Your Cloud Provider
Consider:
- Where is your team's existing expertise?
- What managed services do you need? (specific databases, ML tools, etc.)
- Where are your customers geographically?
- What are the compliance requirements?
There's no universally "best" provider. AWS has the most services, Azure integrates best with Microsoft shops, and GCP excels at data and ML workloads.
Phase 2: Planning
4. Design Your Architecture
Key decisions:
- Networking: VPC layout, subnets, security groups
- Compute: VMs vs. containers vs. serverless
- Storage: Block, object, or file storage for each use case
- Database: Managed services vs. self-hosted
5. Plan for Security
Security in the cloud is different from on-premises:
- Identity and access management — least privilege, always
- Encryption — at rest and in transit
- Network security — security groups, NACLs, private subnets
- Compliance — ensure your cloud setup meets your regulatory requirements
6. Estimate Costs
Use the provider's pricing calculator. Account for:
- Compute and storage costs
- Data transfer costs (this catches people off guard)
- Managed service fees
- Reserved instances vs. on-demand pricing
Add a 20% buffer. Migration always costs more than the estimate.
Phase 3: Execution
7. Set Up the Landing Zone
Before migrating anything:
- Create accounts/subscriptions with proper organization
- Configure networking and VPN/interconnect
- Set up monitoring and logging
- Implement backup policies
- Configure IAM roles and policies
8. Migrate in Phases
Never do a "big bang" migration. Start with low-risk, low-complexity workloads:
- Static websites and simple applications
- Development and testing environments
- Non-critical production workloads
- Critical production systems
9. Run in Parallel
Keep your old systems running until the new ones are verified:
- Run both environments simultaneously
- Compare performance and behavior
- Have a rollback plan ready
- Only cut over when you're confident
Phase 4: Optimization
10. Right-Size Resources
After migration, your cloud resources are almost certainly over-provisioned. After two weeks of production data:
- Review CPU and memory utilization
- Downsize instances that are consistently under 40% utilization
- Consider reserved instances for stable workloads
11. Implement Cost Controls
- Set up billing alerts at 50%, 75%, and 90% of budget
- Use auto-scaling to match capacity to demand
- Schedule non-production environments to shut down after hours
- Review and terminate unused resources monthly
12. Document Everything
Update your documentation:
- Architecture diagrams
- Runbooks for common operations
- Disaster recovery procedures
- Onboarding guides for new team members
The Most Important Rule
Don't rush. A cloud migration done in three months that works is infinitely better than one done in three weeks that doesn't. Take the time to plan, test, and validate at every step.
Planning a migration? Get in touch for a free cloud assessment. I'll help you build a migration plan that minimizes risk and maximizes value.
Angel G. Gonzalez
Full-stack developer from Puerto Rico. I help businesses build, deploy, and maintain their technology.