This domain is 20% of SAP-C02 and has four tasks: selecting workloads to migrate, choosing the migration approach, choosing the target architecture, and finding modernization opportunities. Questions describe an on-premises estate with constraints (bandwidth, downtime window, licence, deadline, data volume) and ask which tool or strategy fits. The tool names are the main thing to memorize, along with the limiting factor: network bandwidth decides between online transfer and Snow devices; downtime tolerance decides between a one-time copy and continuous replication.
Assessing and selecting workloads
- Migration phases (AWS Cloud Adoption Framework and Prescriptive Guidance): assess, mobilize, migrate and modernize. Assessment sets business case, readiness and the portfolio plan. Mobilize builds the landing zone (Control Tower), skills, and security baseline.
- AWS Application Discovery Service collects server inventory, configuration, performance and network dependencies. Agentless collector (for VMware vCenter) gives configuration and utilization; the Discovery Agent on each server adds running processes and network connections for dependency mapping. Data goes to Migration Hub, and exports to Athena.
- AWS Migration Hub is the central place to track discovery and migration progress across tools, with strategy recommendations and Migration Hub Refactor Spaces for incremental refactoring behind a proxy (strangler fig pattern). Migration Hub orchestrator provides workflow templates.
- Migration Evaluator (formerly TSO Logic) builds a right-sized TCO and business case from on-premises utilization data, for a quick cost comparison before any migration.
- Pricing Calculator estimates AWS cost; the Cloud Adoption Framework and migration readiness assessment cover people and process.
- Portfolio assessment: list every application, owners, dependencies, technologies, licence terms, compliance, criticality and end-of-support dates. Group related servers into waves. Early waves hold small, low-risk, loosely coupled apps to build skills; later waves take complex, tightly coupled or high-risk ones; shared dependencies (databases, identity, DNS) must migrate with or before their dependents.
- TCO: compare on-premises total (hardware, facilities, power, licences, staff, refresh cycles, existing contracts) against AWS (compute, storage, transfer, support, migration cost). Savings often come from rightsizing, licence changes, and reduced operations, not raw unit price. Include one-time migration cost, parallel-run cost and productivity gain.
The seven Rs
| Strategy | Meaning | Example | Tool |
|---|---|---|---|
| Retire | Turn it off | Unused server found in discovery | Application Discovery Service |
| Retain | Keep as is for now | Recent hardware investment, compliance, mainframe not ready | None; revisit later |
| Rehost (lift and shift) | Move servers unchanged | VMs to EC2 | Application Migration Service (MGN) |
| Relocate | Move at the hypervisor or platform level with no changes | VMware to VMware Cloud on AWS or Amazon EVS; Kubernetes clusters | VMware HCX |
| Repurchase | Replace with SaaS | CRM to a SaaS CRM, move to a new licence | Marketplace |
| Replatform (lift, tinker and shift) | A few optimizations, no core change | Self-managed MySQL to RDS or Aurora; app server to Elastic Beanstalk; file server to FSx | DMS, Beanstalk |
| Refactor / re-architect | Redesign cloud-native | Monolith to microservices, serverless | App2Container, Refactor Spaces, Lambda |
- Pick rehost for speed or deadlines (data centre exit, lease end), replatform for quick managed-service gains, refactor when scalability or agility justify the cost. Many questions test choosing the lowest-effort strategy that meets the stated goal.
- AWS Transform (the newer agentic service family) assists with .NET, mainframe and VMware transformation; AWS Mainframe Modernization supports replatforming (Micro Focus runtime) and automated refactoring of COBOL to Java.
Server and application migration
- AWS Application Migration Service (MGN): the standard rehost tool, successor to CloudEndure Migration and Server Migration Service. Install the replication agent on each source server (physical, VMware, Hyper-V, other clouds); it continuously replicates block-level to a staging area (low-cost EC2 replication servers and EBS in a staging subnet). When ready, launch test instances then cutover instances (minutes of downtime), using launch templates and post-launch actions. An agentless option for vCenter uses snapshot-based replication. It requires network access from sources to the Regional replication endpoints (port 1500 to replication servers, 443 for the service), either over the internet, a VPN or Direct Connect.
- VM Import/Export converts and imports a single VM image into an AMI (one-off, no continuous sync) - the manual approach.
- AWS Elastic Disaster Recovery uses the same technology for DR rather than migration.
- App2Container (A2C) containerizes existing Java and .NET applications for ECS or EKS without code changes, producing images and deployment artifacts (retiring in favour of AWS Transform; treat as a replatform-to-containers option).
- Containers and serverless targets belong to the replatform and refactor Rs.
- Windows and SQL Server licensing: bring your own licence with License Manager, Dedicated Hosts for per-socket or per-core licences, License Included instances, AWS Optimization and Licensing Assessment to cut licence cost, RDS Custom for SQL Server or Oracle when you need OS access.
- VMware: VMware Cloud on AWS (relocate with HCX) or Amazon Elastic VMware Service (EVS) keep VMware tooling and IPs.
Data migration
Decide with this table, starting from data size and available bandwidth.
| Service | Use | Notes |
|---|---|---|
| DataSync | Online transfer of files and objects (NFS, SMB, HDFS, S3-compatible, other clouds) to S3, EFS, FSx; scheduled and incremental | Agent on premises (or in the cloud); verifies integrity; encrypted in transit; bandwidth throttling; can run over Direct Connect public/private VIF or VPC endpoint; up to 10 Gbps per task with multiple agents |
| Transfer Family | Managed SFTP, FTPS, FTP and AS2 endpoints into S3 or EFS, keep partners’ existing clients | Not for bulk migration of an existing file server |
| Snowball Edge (Storage Optimized about 210 TB usable, Compute Optimized) | Offline transfer of tens of TB to PB when bandwidth is poor; also edge compute | Ordered through the console; shipped back to S3; multiple devices in parallel; encrypted with KMS; a rule of thumb is that more than about a week of network transfer favours Snow |
| Snowcone | Small portable edge devices (8 or 14 TB) that can also run DataSync | Newer Snow Family orders are limited; still appears in questions |
| Snowmobile | Exabyte scale (retired for new orders; use Snowball fleets) | |
| S3 Transfer Acceleration | Fast uploads from distant clients over the internet through edge locations | Per-GB fee when it helps; bucket-level setting |
| Storage Gateway | Hybrid ongoing access: S3 File Gateway (NFS/SMB to S3 with local cache), FSx File Gateway, Volume Gateway (iSCSI; cached or stored volumes, EBS snapshots), Tape Gateway (virtual tape library to S3/Glacier) | Migration with continued on-premises access, backup replacement |
| AWS Backup, S3 Batch Replication, S3 replication | Moves within AWS | |
| Direct Connect | Steady high-volume transfer, private path | Weeks to provision; start with VPN |
| Kinesis, MSK, DMS | Streaming and CDC data |
- Time math: 100 TB over a 1 Gbps link at full speed takes about 9 days, so with typical efficiency of 70-80 percent and shared links, Snowball is often faster. For recurring deltas after a bulk load, use DataSync or DMS CDC.
- Hybrid approach: ship Snowball for the bulk, then DataSync or replication for the delta since the snapshot, then cut over.
- Security of migration tools: encrypt in transit (TLS; DataSync, DMS endpoints with SSL), encrypt at rest with KMS (S3, EBS, RDS targets), private connectivity (Direct Connect, VPN, VPC endpoints for DataSync), IAM roles with least privilege for each tool, source and target security groups limited to the replication ports, Snow device encryption and chain-of-custody tracking, CloudTrail logging of migration API calls, and S3 bucket policies on the landing bucket.
- Large objects and uploads: multipart upload for objects over 100 MB (required above 5 GB; maximum object 5 TB), S3 Transfer Acceleration, parallel threads, S3 Batch Operations for bulk actions on existing objects.
Database migration
- AWS Database Migration Service (DMS): replication instances (or DMS Serverless) read from a source endpoint and write to a target endpoint. Task types: full load, full load plus CDC (change data capture, ongoing replication for minimal downtime), CDC only. Supports homogeneous (Oracle to Oracle, MySQL to Aurora MySQL) and heterogeneous (Oracle to PostgreSQL) migrations, plus S3, Kinesis, Redshift, DynamoDB and others as targets. The source stays online. Validation checks data after load; premigration assessments flag issues. A replication instance in Multi-AZ provides resilience.
- AWS Schema Conversion Tool (SCT) and DMS Schema Conversion convert schema, stored procedures and application SQL for heterogeneous migrations (Oracle or SQL Server to PostgreSQL or Aurora), and report the manual work remaining. Use SCT first, then DMS for the data. The SCT data extraction agents move big warehouse data (Teradata, Oracle, Netezza) into Redshift, using Snowball when required.
- Native tools for homogeneous moves: backup and restore for SQL Server to RDS (native backup to S3), Oracle Data Pump, MySQL
mysqldump, Percona XtraBackup from S3 into Aurora MySQL, PostgreSQL logical replication orpg_dump, Aurora read replica of an RDS MySQL or PostgreSQL instance then promote (simple low-downtime path into Aurora), RDS blue/green deployments for upgrades. - Babelfish for Aurora PostgreSQL lets SQL Server applications connect with T-SQL and TDS with minimal code changes.
- Choosing the mechanism:
| Situation | Use |
|---|---|
| Same engine, downtime acceptable | Native dump/restore |
| Same engine, minimal downtime | DMS full load + CDC, or native replication |
| Different engine | SCT or DMS Schema Conversion, then DMS full load + CDC |
| RDS MySQL/PostgreSQL to Aurora | Aurora read replica then promote, or snapshot restore |
| Large data warehouse | SCT extractors or Snowball, then DMS, to Redshift |
| NoSQL (MongoDB) to DocumentDB | DMS (MongoDB source) |
| Needs OS or custom features | RDS Custom, or self-managed on EC2 |
| Oracle with RAC or unsupported features | EC2, or refactor to Aurora PostgreSQL |
- Networking for migrations: DMS needs connectivity from the replication instance to the source (VPN or Direct Connect or public endpoint with allow lists) and to the target (same VPC or peered). Plan DNS cutover with low TTL, and Route 53 weighted routing for gradual shift.
Networking, identity and governance for the migration
- Connectivity: VPN for quick start, Direct Connect for sustained throughput and latency, both for resilience; Transit Gateway for many VPCs; hybrid DNS with Route 53 Resolver; plan CIDRs that don’t overlap with on premises.
- Identity: extend Active Directory with AWS Managed Microsoft AD (trust to on-premises, or standalone), AD Connector (proxy to on-premises AD, no cache), Simple AD (basic, legacy), IAM Identity Center for workforce access to AWS accounts using the corporate IdP. Domain-join EC2 with Systems Manager. For hybrid workloads authenticating against on-prem AD, keep a trust and DNS forwarding or deploy domain controllers on EC2.
- Governance: build a landing zone with Control Tower before moving workloads; separate accounts for production, non-production, shared services, network, log archive and security; SCPs for guardrails; Config conformance packs; Service Catalog; tagging standards; central logging. Use the Cloud Foundations approach so each wave lands into a governed environment.
Choosing target architecture for existing workloads
- Compute:
| Choose | When |
|---|---|
| EC2 | Lift and shift, custom OS or kernel, licensing, GPU, high control |
| Elastic Beanstalk | Web apps in standard stacks (Java, .NET, Python, Node, Go, PHP, Ruby, Docker), you want less ops but still EC2 under the hood |
| Lightsail | Simple small workloads with predictable pricing |
| App Runner | Containerized web app or source repository, no infrastructure to see |
| Lambda | Event-driven functions, up to 15 minutes |
| Batch | Queued batch jobs on managed compute (EC2, Spot, Fargate) |
| Outposts, Local Zones, Wavelength | Low latency or local data processing |
- Containers:
| Choose | When |
|---|---|
| ECS on Fargate | Containers with the least operations; AWS-specific orchestration is fine |
| ECS on EC2 | Need GPUs, daemon tasks, specific instance types, cost optimization with reserved capacity |
| EKS (Fargate or managed node groups, EKS Auto Mode) | Kubernetes API compatibility, portability, existing Kubernetes skills, ecosystem tools |
| ECR | Private image registry with scanning, lifecycle and replication |
| App Runner | Simplest, web services |
| ECS Anywhere / EKS Anywhere | Run on your own hardware |
ECS task roles, ALB per-service targets, service discovery with Cloud Map or ECS Service Connect, Fargate Spot for cheap interruptible tasks, EKS IRSA or Pod Identity.
- Storage:
| Need | Choose |
|---|---|
| Block for one instance | EBS (gp3, io2) |
| Shared Linux files, elastic | EFS |
| Windows shares, AD integration | FSx for Windows |
| HPC | FSx for Lustre |
| Multiprotocol enterprise NAS, SnapMirror from NetApp | FSx for ONTAP |
| Linux file workloads wanting ZFS | FSx for OpenZFS |
| Unstructured objects, data lakes | S3 |
| Hybrid cache with local access | Storage Gateway |
| Backups of on-prem apps and tapes | Tape Gateway, AWS Backup |
- Databases:
| Existing | Target |
|---|---|
| MySQL/PostgreSQL | Aurora (better scale and failover) or RDS |
| Oracle/SQL Server | RDS (licence included or BYOL), RDS Custom for OS access, EC2, or refactor to Aurora PostgreSQL with SCT and Babelfish |
| MongoDB | DocumentDB |
| Cassandra | Keyspaces |
| Redis/Memcached | ElastiCache or MemoryDB |
| Elasticsearch | OpenSearch Service |
| Hadoop/Spark | EMR or Glue |
| Data warehouse (Teradata) | Redshift |
| Key-value, high scale | DynamoDB |
| Graph | Neptune |
| Self-managed on EC2 | Only when features, versions or control demand it |
Modernization
- Decouple components: put SQS between producers and consumers, SNS for fan-out, EventBridge for event routing between services and SaaS, Step Functions for orchestration instead of code-driven workflows, Kinesis or MSK for streams, API Gateway or VPC Lattice for service interfaces. Decoupling lets tiers scale and fail independently and enables buffering of spikes.
| Service | Pattern | Remember |
|---|---|---|
| SQS Standard | Work queue | At-least-once; consumers must be idempotent |
| SQS FIFO | Ordered, deduplicated | Message group ID gives ordering per group |
| SNS | Pub/sub fan-out | Filter policies; to SQS, Lambda, HTTP, email, SMS |
| EventBridge | Event bus with rules, schedules, Pipes | Cross-account, SaaS partners, archive and replay |
| Step Functions | State machines | Standard (long, exactly-once) vs Express (short, high rate) |
| Kinesis Data Streams | Ordered streams with replay | Retention 24 hours to 365 days |
| Amazon MQ | Lift-and-shift ActiveMQ and RabbitMQ | Use when apps need AMQP, JMS, MQTT |
| MSK | Managed Kafka | Existing Kafka clients |
- Serverless opportunities: Lambda for event-driven code, API Gateway or ALB in front, Step Functions for workflows, Fargate for containers, Aurora Serverless v2 for variable relational load, DynamoDB on-demand, S3 plus CloudFront for static sites, Cognito for authentication, AppSync for GraphQL, Athena for ad hoc queries, Glue for ETL, Kinesis Firehose for delivery. Benefits: no servers to patch, scale to zero, pay per use. Limits to check: 15-minute Lambda, cold starts, 29-second API Gateway timeout, and long-lived connections (use WebSockets through API Gateway or ALB).
- Containers vs serverless: choose containers for existing containerized apps, long-running services and Kubernetes portability; choose Lambda when the code is event-driven and short.
- Purpose-built databases: split one big relational database into stores that fit each pattern - DynamoDB for sessions and carts, ElastiCache for leaderboards and hot reads, Neptune for relationships, OpenSearch for search, Timestream for metrics, Redshift for analytics. Use DMS as the data bridge.
- Strangler fig approach: put an API Gateway or ALB (or Refactor Spaces) in front of the monolith and route one function at a time to new services. Event-driven integration helps the old and new systems coexist during the move.
- Integration selection: workload queue SQS; broadcast SNS; routing by event content EventBridge; stateful multi-step Step Functions; high-throughput ordered streams Kinesis or MSK; protocol compatibility Amazon MQ.
- Data lake and analytics modernization: S3, Glue Data Catalog, Lake Formation, Athena, EMR, Redshift Spectrum, QuickSight.
Exam checklist
- Name the R: retire, retain, rehost (MGN), relocate (VMware), repurchase, replatform (RDS, Beanstalk), refactor (serverless, microservices).
- Discovery: Application Discovery Service (agent for dependencies), Migration Hub tracking, Migration Evaluator for TCO.
- Servers: Application Migration Service for continuous replication and cutover; VM Import for a single image.
- Data: DataSync online, Snowball offline when bandwidth can’t do it, Transfer Family for SFTP front ends, Storage Gateway for hybrid access.
- Databases: SCT/DMS Schema Conversion for different engines, then DMS full load plus CDC; native tools for same engine; Aurora replica for RDS MySQL/PostgreSQL.
- Direct Connect takes weeks: VPN first. Encrypt everything in transit and at rest with KMS.
- Governance first: Control Tower landing zone, SCPs, Identity Center, Managed Microsoft AD for AD-dependent workloads.
- Target selection: least ops that meets the need (Fargate over EC2, Aurora over self-managed, managed over custom).
- Modernize by decoupling with SQS, SNS, EventBridge and Step Functions, and use purpose-built databases.