digitalocean → aws · 2026 migration playbook

DigitalOcean to AWS: the service map, the cutover, and who runs it.

Teams rarely leave DigitalOcean to save money. They leave for scale headroom, a deeper set of managed services, or an enterprise buyer who wants AWS. Most pieces map cleanly: Droplets to EC2, App Platform to ECS on Fargate, Managed Databases to RDS, Spaces to S3, DOKS to EKS. The risky part is the data cutover, and it can be planned.

why teams move
scale + services
code changes
mostly config
the risky part
data cutover
TL;DR
  • Teams leave DigitalOcean for scale (bigger instances, more Regions, finer autoscaling), for services DigitalOcean does not offer (warehousing, streaming, ML, fine-grained IAM), or because an enterprise buyer or compliance review asks for AWS. At small, steady scale DigitalOcean is often cheaper, so cost is rarely the reason.
  • The service map is close to one-to-one: Droplets to EC2 (or Lightsail), App Platform to ECS on Fargate (ECS Express Mode is the simple path), Managed PostgreSQL and MySQL to RDS or Aurora, Managed Valkey or Redis to ElastiCache, Spaces to S3 plus CloudFront, DOKS to EKS, Load Balancers to ALB or NLB, Functions to Lambda, DNS to Route 53.
  • Copy data early, then switch in a short window. A vetted AWS partner can run the move. If the migration qualifies, your matched partner can file MAP funding: typically $50K to $150K for startups. Depends on the workload; AWS approves. Many small DigitalOcean workloads do not qualify, and the partner will tell you before filing.
the trigger

IWhy teams move off DigitalOcean

Nobody leaves DigitalOcean because it is hard to use. They leave because its simplicity becomes a limit on scale, services or the buyers they can sell to.

Scale. Droplet sizes, GPU options and specialised hardware are narrower than AWS (no Graviton, no Inferentia or Trainium, fewer large-memory types). Autoscaling is basic next to EC2 Auto Scaling and ECS service scaling, and DigitalOcean runs far fewer Regions than AWS's 30-plus.

Services. DigitalOcean keeps a small, curated catalog: Droplets, App Platform, Managed Databases (PostgreSQL, MySQL, Valkey, MongoDB, Kafka, OpenSearch), Spaces, DOKS, Load Balancers and Functions. That covers a classic web app. A data warehouse, managed streaming or ETL, fine-grained IAM or a long tail of managed primitives means running it yourself on a Droplet.

Enterprise and compliance. As teams sell upmarket, security reviews ask for data residency in specific Regions, private connectivity (PrivateLink, Direct Connect), org-level guardrails (AWS Organizations, Control Tower) and a broad set of compliance attestations. A blocked enterprise deal is a common trigger.

cost is usually not the reason

At small, steady scale DigitalOcean is often cheaper than AWS list price and simpler to read. Teams move for scale, services and enterprise readiness. AWS cost becomes competitive at scale, once you right-size and commit with Savings Plans or Reserved Instances.

where things land

IIWhat each DigitalOcean piece becomes on AWS

The data and storage services map almost one-to-one. The real decision is how much control you want at the compute layer. The full row-by-row table is further down.

Compute. Droplets become Amazon EC2, or Amazon Lightsail if you want the closest fixed-price, simple-console experience. App Platform becomes Amazon ECS on Fargate. For a Heroku-style "image in, URL out" setup, ECS Express Mode creates the Fargate service, load balancer and scaling for you. (App Runner closed to new customers on April 30, 2026.) DOKS becomes Amazon EKS.

Data. DigitalOcean Managed PostgreSQL or MySQL becomes Amazon RDS or Aurora. Both ends speak the same open-source engine, so queries and ORM code do not change. Managed Valkey or Redis becomes ElastiCache with a connection-string change. Managed MongoDB maps to Amazon DocumentDB, or Atlas if you need full MongoDB feature parity.

Storage and glue. Spaces is S3-compatible, so it becomes Amazon S3 with a new endpoint and credentials, and the Spaces CDN becomes CloudFront. Load Balancers become an ALB or NLB, Functions become Lambda, DNS moves to Route 53, TLS comes from AWS Certificate Manager, monitoring moves to CloudWatch, env-file secrets move to Secrets Manager, and Droplet cron jobs become EventBridge Scheduler rules.

the risky part

IIIThe cutover: copy data early, switch in a short window

Compute, networking and buckets can be built and tested without touching production. The database cutover and the final object copy are the only moments that touch live data.

Database. If your DigitalOcean database user can use logical replication, AWS Database Migration Service (DMS) can do a full load into RDS and then stream ongoing changes (CDC), so at cutover you switch to an already-current copy. Check this early. If it cannot, use pg_dump and pg_restore (or mysqldump) inside a maintenance window, and time a test restore first so you know the window.

Spaces to S3. Because Spaces is S3-compatible, rclone or the AWS CLI can bulk-sync buckets into S3 ahead of time. For large datasets, AWS DataSync gives a managed, parallel transfer. Run a final incremental sync at cutover.

The switch. Lower the DNS TTL a day ahead. Then: maintenance mode, final database sync or restore, final Spaces sync, swap the connection string and S3 endpoint, point traffic at the new service, update Route 53, check that writes land in RDS and uploads land in S3, and leave maintenance mode. Keep DigitalOcean running as a fallback for a short, defined window.

the runbook

IVThe step-by-step migration

The sequence a partner runs. Most of it happens in parallel and none of it touches production until the cutover.

  • Assess: Inventory every Droplet, App Platform app, database, Spaces bucket, DOKS cluster, Load Balancer, Function, cron job and DNS zone. Pick the compute target and RDS or Aurora. Build a before and after cost model with the AWS Pricing Calculator.
  • Landing zone: Accounts, VPC, subnets, security groups, IAM roles, ECR and Secrets Manager. Do this first; bolting on networking and IAM later is where projects slip.
  • Compute: Build EC2, the ECS services or the EKS cluster. Containerise anything that ran as a bare Droplet process or App Platform app.
  • Data and storage: Create RDS or Aurora and ElastiCache, restore the schema, create S3 buckets and CloudFront, and rebuild cron jobs as EventBridge Scheduler rules.
  • Sync and test: Start DMS (or rehearse the dump and restore) and bulk-sync Spaces. Deploy the new stack against the synced data and run the full test suite, background jobs and asset delivery.
  • Cut over: Run the switch above in a low-traffic window.
  • Optimise and decommission: Right-size, add autoscaling, apply a Savings Plan once usage is stable, check alarms and backups. Then actually delete the Droplets, databases and Spaces, or you pay twice.
what bites teams

VGotchas that turn a clean migration messy

Most DigitalOcean to AWS migrations that go badly fail for a small, repeatable set of reasons.

  • AWS has more to configure: A Droplet is a VM you SSH into. The AWS equivalent needs a VPC, subnets, security groups, IAM roles and a load balancer before it serves traffic. Budget for the landing zone.
  • Spaces to S3 is API-compatible, not identical: Bucket policies, ACLs, CORS rules, signed-URL settings and encryption defaults do not carry over. S3 Block Public Access is on by default, so public Spaces assets can return 403 after cutover. Recreate every policy on purpose.
  • Database SSL and connection settings: RDS wants its own SSL mode and CA bundle, and connection limits scale with instance class. Most "will not connect" issues after cutover are sslmode and certificate settings. Test them before the window.
  • DOKS to EKS is a rebuild: Manifests and Helm charts carry over, but IAM roles for service accounts, the registry (to ECR), the ingress controller, the storage (CSI) driver and the autoscaler all need re-wiring.
  • Cron jobs do not move themselves: Every schedule on a Droplet or App Platform job has to be rebuilt in EventBridge Scheduler. Inventory them in the Assess step.
  • Forgetting to shut DigitalOcean down: Keep it as a fallback for a defined short window, then delete it.
who runs it, who funds it

VIWho runs the move, and who can fund it

AWS asks you to own more than DigitalOcean did. That extra surface is why many teams have a partner run the migration.

A vetted AWS partner can build the landing zone, move compute and data, run the cutover and hand you a documented setup, or operate it for you afterwards.

Partner-filed funding: the AWS Migration Acceleration Program (MAP) helps offset initial migration costs. Your matched partner files it when the migration qualifies and AWS approves. For startups this is typically $50K to $150K. Depends on the workload; AWS approves. MAP is built for migrations with meaningful ongoing AWS spend, so many small DigitalOcean workloads will not qualify. The partner checks before filing.

AWS Activate: you apply yourself. Activate Founders gives self-funded startups $1,000 to start, up to $5,000. Activate Portfolio gives up to $200,000 with the Org ID from your VC, accelerator or angel group, if it is an Activate Provider. A consulting partner cannot file Activate for you.

Who files it
FundingWho files itAmountWhen it fits
Migration Acceleration Program (MAP)Your matched AWS partner$50K to $150K for startups. Depends on the workload; AWS approves.You are not on AWS yet and want to migrate.
Proof of concept (POC) fundingYour matched AWS partner$50K to $150K for startups. Depends on the workload; AWS approves.You want to test something, whether or not you are on AWS today.
Incremental workload (IW) fundingYour matched AWS partner$50K to $150K for startups. Depends on the workload; AWS approves.You are already on AWS and are launching new work: a new AI feature, a new customer or a new contract.
AWS Activate FoundersFounder applies$1,000 to start, up to $5,000Self-funded startups with no investor or accelerator behind them.
AWS Activate PortfolioFounder appliesup to $200,000Startups backed by a VC firm, accelerator or angel investor that is an AWS Activate Provider.
AWS Credits for AI StartupsInvite only (AWS account manager)$200,000 or more, by invitationAI startups ready to scale after Activate Portfolio, invited by AWS.
Facts checked on October 10, 2026. AWS decides every application.
service by service

DigitalOcean service to AWS equivalent

Every DigitalOcean building block, where it lands on AWS, what changes, and the effort. "Low" rows are endpoint or connection-string swaps. "High" rows are the real work.

DigitalOceanAWS equivalentWhat changesEffort
Droplet (VM)Amazon EC2 (or Lightsail)Rebuild the VM or image; VPC, security groups, IAMMedium
App PlatformAmazon ECS on Fargate (ECS Express Mode for the simple path)Containerise; new build and deploy flowMedium
Managed PostgreSQL / MySQLAmazon RDS or AuroraConnection string; data cutoverHigh (cutover)
Managed Valkey / RedisAmazon ElastiCacheConnection stringLow
Managed MongoDBAmazon DocumentDB (or Atlas)Connection string; check feature parityMedium
SpacesAmazon S3Endpoint and credentials; recreate policies, CORS, ACLsLow
Spaces CDNAmazon CloudFrontRepoint asset URLs; cache settingsLow
DOKSAmazon EKSIAM for service accounts, ECR, ingress, CSI driverHigh
Container RegistryAmazon ECRPush images; update pull credentialsLow
Load BalancerALB (HTTP/S) or NLB (TCP/UDP)Recreate listeners and health checksLow
FunctionsAWS LambdaRepackage handlers; wire triggersMedium
Cron jobsEventBridge Scheduler to ECS or LambdaRecreate each scheduleLow
DNSAmazon Route 53Move the zone; lower TTL firstLow
MonitoringAmazon CloudWatchRebuild metrics, logs and alarmsLow
Effort is the engineering lift, not a cost claim. At small scale AWS list price can match or exceed DigitalOcean.
want a partner to run it?
Get matched with an AWS partner who runs your DigitalOcean migration
Get matched free with a vetted AWS partner who can file it
how a match works

How a match works (example)

  1. You tell us about the work

    You fill in a short form: what you run today, what you want to move, test or build, your stage and your region.

  2. We pick one partner

    We read your answers and pick one vetted AWS consulting partner that fits the work, the stack and the region. We reply within 24 hours; your matched partner reaches out within 5 business days.

  3. The partner checks MAP funding

    Your matched partner scopes the migration with you. Then it checks whether the move qualifies for MAP (Migration Acceleration Program) funding. MAP is for teams that are not on AWS yet.

  4. The partner files, AWS decides

    If the work qualifies, the partner files the funding request with AWS. AWS reviews it and decides. The amount depends on the workload.

  5. You pay nothing

    CloudRoute is free for startups. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.

AWS Activate credits are separate, and you apply for them yourself. Use Activate Founders if no investor backs you. Use Activate Portfolio with the Org ID or invite from your VC, accelerator, incubator or angel group if it is an Activate Provider. A consulting partner cannot apply for Activate on your behalf.

faq

Common questions

Is AWS cheaper than DigitalOcean?
Usually not at small, steady scale. DigitalOcean often beats AWS list price for predictable workloads and is simpler to read. AWS prices more parts separately (Multi-AZ, CloudFront, data transfer), so the early bill can be the same or higher. AWS becomes competitive at scale once you right-size and commit. Teams move for scale, services and enterprise readiness.
What does each DigitalOcean service become on AWS?
Droplets to EC2 (or Lightsail); App Platform to ECS on Fargate (ECS Express Mode for the simple path); Managed PostgreSQL and MySQL to RDS or Aurora; Managed Valkey or Redis to ElastiCache; Spaces to S3 plus CloudFront; DOKS to EKS; Load Balancers to ALB or NLB; Functions to Lambda; DNS to Route 53; monitoring to CloudWatch.
What replaced App Runner as the simple container option?
App Runner closed to new customers on April 30, 2026. AWS recommends Amazon ECS Express Mode: you give it a container image and two IAM roles, and it creates an ECS service on Fargate, a load balancer, autoscaling and networking. There is no extra charge beyond those resources.
Will my database and Spaces move without code changes?
Mostly. PostgreSQL or MySQL to RDS is the same engine, so you change the connection string and move the data. Spaces to S3 keeps the same SDK calls, with a new endpoint and credentials. What you rebuild is configuration: bucket policies, CORS and ACLs on S3, and SSL and pooling settings on RDS.
How much downtime should I expect?
It depends on how the database moves. If AWS DMS can stream changes from your database, the window is a short pause to drain changes and switch. If not, it is the time a dump and restore takes, which you should measure on a copy first. Spaces can be copied ahead of time with a final incremental sync.
How hard is moving from DOKS to EKS?
Manifests and Helm charts mostly carry over, but treat it as a rebuild: IAM roles for service accounts, the registry move to ECR, the ingress controller, the storage driver and the autoscaler all need setting up again.
Can AWS fund a DigitalOcean to AWS migration?
Sometimes. Your matched AWS partner can file MAP funding when the migration qualifies and AWS approves. For startups this is typically $50K to $150K. Depends on the workload; AWS approves. MAP is meant for migrations with meaningful ongoing AWS spend, so many small DigitalOcean workloads will not qualify. Activate credits are separate, and you apply for them yourself.

Move off DigitalOcean with a partner who has done it before.

CloudRoute matches you with one vetted AWS partner who plans and runs the move: compute, RDS or Aurora, ElastiCache, Spaces to S3, the cutover and the landing zone. The partner files MAP funding when the migration qualifies and AWS approves. CloudRoute is free for startups.

we reply within24 hours
partner-filed funding$50K to $150K
CloudRoute fee for startups$0