SSD Nodes Learn Hosting plans →
How to do am Matt ConnorBy Matt Connor · Updated 2026-08-13

DigitalOcean alternatives: which one cheap pass?

Compare DigitalOcean alternatives by price per GB RAM, included transfer, NVMe storage and backup cost, plus a cutover plan wey avoids downtime.

Wetin DigitalOcean alternatives really dey change

Most DigitalOcean alternatives dey change the bill, no be the machine. You go get Linux virtual machine with public IP, virtio disk and root access either way, and your kernel no care who logo dey for the control panel. The differences wey decide the choice na price per GB of RAM, size of included transfer allowance and wetin each byte above the allowance go cost, wetin really make up the disk, and how much of the stack above the operating system another person go run for you.

This guide dey compare dem for these areas, because developer fit check each one from terminal or published price list. E also name the cases where DigitalOcean still be the correct choice, because comparison wey no admit any advantage no be comparison; na advertisement.

Every price below na published list price, checked on 5 August 2026. Prices dey change, and more than one provider here change their own during 2026. Pricing structure dey change much more slowly, so first read the ratios and billing model, then confirm today's number for the provider own page before you commit.

Price per GB of RAM na the number wey you suppose compare

ChartMonthly list price per GB of RAM, entry shared-CPU plans, checked 5 August 2026
The data behind this chart
[
  {
    "provider": "DigitalOcean 1 GB",
    "ram_gb": 1,
    "monthly_usd": "6.00",
    "usd_per_gb_ram": "6.00"
  },
  {
    "provider": "DigitalOcean 4 GB",
    "ram_gb": 4,
    "monthly_usd": "24.00",
    "usd_per_gb_ram": "6.00"
  },
  {
    "provider": "Akamai Nanode 1 GB",
    "ram_gb": 1,
    "monthly_usd": "5.00",
    "usd_per_gb_ram": "5.00"
  },
  {
    "provider": "Vultr NVMe 1 GB",
    "ram_gb": 1,
    "monthly_usd": "6.00",
    "usd_per_gb_ram": "6.00"
  },
  {
    "provider": "Hetzner CX23 4 GB",
    "ram_gb": 4,
    "monthly_usd": "6.49",
    "usd_per_gb_ram": "1.62"
  }
]

For one provider, price per GB of RAM hardly dey change. DigitalOcean charges $6.00 per GB for the 1 GB plan, and the same $6.00 per GB for the 4 GB plan, wey dey list for $24.00 per month. If you choose bigger plan for the same provider, you no dey get discount, so plan size no be the main decision. Na the provider matter.

Akamai, wey now dey sell wetin used to be Linode, prices the 2 GB and 4 GB shared plans at $12 and $24, exactly the same as DigitalOcean. E entry plan dey cheaper than dem at $5.00. When two companies match each other exactly, na signal wey worth understanding: dem price that tier against competitor, no be against the hardware, and e go continue to follow that competitor.

The difference dey show with providers wey build their own datacentres and sell for euro. Hetzner CX23 gives you 4 GB of RAM for about $6.49 per month, wey be $1.62 per GB, almost one-quarter of DigitalOcean rate. That dollar amount come from converting euro list price, so exchange rate fit make am change. Hetzner also increased cloud prices during 2026, so older comparison posts fit show prices wey no longer exist.

Price per GB of RAM no tell you anything about the CPU wey you get. Shared vCPU means hypervisor dey schedule your core together with other tenants, and the correct check na to run am on machine wey you don actually rent:

vmstat 1 10

Read the st column. E counts the percentage of time wey your vCPU ready to run but hypervisor give the physical core to another person. A few percent under load na normal. If the number stay for double digits, e means host get too many tenants, and no price per GB fit compensate for core wey you no fit use. Run am during your busy hour, because steal time na neighbour problem, and neighbours get their own schedules. For the wider picture of wetin one month hosting really costs after you add storage and traffic, read how much VPS costs from month to month.

Wetin the included transfer really dey cost

ChartIncluded outbound transfer and overage price, same plans, checked 5 August 2026
The data behind this chart
[
  {
    "provider": "DigitalOcean 1 GB",
    "included_tb": 1,
    "overage_usd_per_tb": "10.00"
  },
  {
    "provider": "Akamai Nanode 1 GB",
    "included_tb": 1,
    "overage_usd_per_tb": "5.00"
  },
  {
    "provider": "Vultr NVMe 1 GB",
    "included_tb": 2,
    "overage_usd_per_tb": "10.00"
  },
  {
    "provider": "Hetzner CX23 4 GB",
    "included_tb": 20,
    "overage_usd_per_tb": "1.20"
  }
]

DigitalOcean dey include 1 TB outbound transfer for the entry plan, then e dey bill the extra usage by GiB. This one dey come to about $10.00 for each extra TB. Akamai dey include the same TB and dey charge roughly half that amount, about $5.00 per TB. Vultr dey include 2 TB with similar overage rate. Hetzner dey include 20 TB and dey charge about $1.20 per TB after that. This price gap dey about one order of magnitude compared with the others.

Three structural details matter pass the headline numbers. Inbound traffic free for all four providers, so na only wetin you send out dem dey count. DigitalOcean and Vultr dey pool the allowance across every server for the account. This mean say one busy machine fit use another machine quota, while one fleet of small servers dey share one large pool. Traffic between servers through private or VPC network usually no dey count at all. Na why putting your database for the private interface be both billing and security decision.

None of this matter if you still far from the cap. Blog, API wey dey return JSON, or small SaaS no go reach 1 TB for one month. Video, image galleries, game servers, package mirrors, and off-site backup targets fit reach am. Measure before you assume:

sudo apt update && sudo apt install -y vnstat
sudo systemctl enable --now vnstat
vnstat -m

vnstat -m dey print transfer by month and split am into received and transmitted. Na only the transmitted column dem dey bill. The database start empty, so the first useful reading go show one day after you install am, and the first complete month go show one month later. Until then, na the provider own bandwidth graph be the only record wey you get.

Ask one more question wey no price list dey answer: when you pass the allowance, provider go bill you or throttle the port? Billing dey cost money. Throttling dey affect users, exactly when you get the most users. You need know which one a traffic spike go cause.

NVMe or SATA, and how to check wetin you actually get

The panel talk say na NVMe. Na claim about the disks wey dey inside the host, and your virtual machine fit no dey use dem. Local storage dey put your virtual disk for drives inside the same physical machine. Network storage dey put am for separate storage cluster wey you reach through datacentre network. Na this one dey make instant resize, live migration, and snapshot-in-place possible.

Inside the guest, both of dem look the same:

lsblk -d -o NAME,ROTA,MODEL,SIZE
cat /sys/block/vda/queue/rotational

ROTA and rotational report 0 for anything wey the host declare as non-rotational. So, network volume wey NVMe dey back go report exactly wetin local NVMe report. The value tell you say the disk no be spinning platter. E no fit tell you where the disk dey. How to confirm NVMe disk for Linux explain the device names and wetin each one mean.

The test wey fit separate dem na latency for queue depth 1, because one small read no get anything to hide behind. Local NVMe dey answer from the same chassis. Network volume add one round trip through the datacentre network to every read, so the latency floor dey higher even when throughput for deep queue depth look similar.

sudo apt update && sudo apt install -y fio
fio --name=lat --filename=/var/tmp/fiotest --size=1G --rw=randread --bs=4k \
  --ioengine=libaio --direct=1 --iodepth=1 --runtime=30 --time_based --group_reporting
fio --name=iops --filename=/var/tmp/fiotest --size=1G --rw=randread --bs=4k \
  --ioengine=libaio --direct=1 --iodepth=32 --runtime=30 --time_based --group_reporting
rm -f /var/tmp/fiotest

The first run print one clat block, wey be completion latency. Read the 99th percentile line instead of the average, because average fit hide the stalls wey users dey feel. The second run print IOPS= for the summary line. Run both for the provider wey you dey use and for trial instance of the provider wey you dey consider, on the same day, then compare your own two numbers. Any published figure from either vendor come from machine wey you no fit see. Run am three times for different hours too, because quiet host and busy host fit give different answers for the same plan. How to benchmark VPS properly cover the method, and wetin SSD VPS actually mean cover the marketing words underneath am.

Regions: measure latency, no be read map

Region list na marketing until you measure am. Wetin user dey feel na the round trip from their network go your server, and e depend on the route wey their packets take, no be distance for map. Server wey dey 300 km away behind congested transit link fit lose to one wey dey 1,500 km away for clean path.

ping -c 20 203.0.113.10
mtr -rwc 50 203.0.113.10
curl -o /dev/null -s -w 'dns %{time_namelookup} connect %{time_connect} tls %{time_appconnect} total %{time_total}\n' https://example.com

mtr dey print every hop with its own loss and latency, so 60 ms jump between two hops go show the link wey dey cause problem instead of blaming the destination. Run am from machine wey dey for the same network wey your users dey use. Datacentre-to-datacentre routes na the best routes for internet, and dem dey make every provider look better than e really be.

One structural point still dey valid even if price change. Provider wey get only one region for your continent mean say your disaster recovery plan na to move go another continent, with the latency wey follow am. Count the regions wey you go really fail over to, no be all the regions wey dey the page.

Snapshots and backups na separate bill

Storage add-ons na where cheap plan dey turn expensive. DigitalOcean dey charge $0.06 per GiB every month for snapshots. E dey price automatic backups as part of the server price instead: 20% of the plan price for weekly backups, 30% for daily backups, plus usage-based option wey dem bill per GiB. Both pricing models make sense, but dem get opposite problems. Percentage price dey increase with server size, so large server wey dey hold small dataset go pay too much. Per GiB price dey increase with your data size, so small server wey get large volume attached go pay too much.

Ask how much restore dey cost and how long e dey take, because backup storage price na only the less interesting half of the question. Ask whether destroying the server go destroy its snapshots too.

Then keep one copy wey the provider no control. Provider snapshots dey inside the provider's account, so lost login, failed payment, or suspended account fit take the server and its backups at the same time. restic backups go storage wey you own cost few dollars for object storage, fit restore onto any provider, and na dem make migration reversible instead of final.

How much of the stack you want run

Providers dey along one line. For one end, you rent machine and run everything by yourself. For the other end, you push git branch and you no ever see server. Comparing price per GB of RAM only make sense for the first end. For the second end, you dey pay for labour, no be memory, and labour no get per GB price.

Talk true about which end you dey before you compare anything. Managed database wey cost $15.15 per month fit look expensive beside $6 server. But calculate the hours wey dey behind am: replication, failover, point in time restore, minor version upgrades, and alert wey go wake person for 03:00. If na you go do that work, run am yourself and keep the difference. If your work na the application, buying that work back cheap. The managed and unmanaged split decide which column for the price list you suppose read at all. If the honest answer be say you want the whole machine and the disks for yourself, na VPS versus dedicated server question be that, rather than provider question. This same question dey show for the rest of developer monthly bill, where comparing Claude and ChatGPT plans depend on how much of the work you want hand over, no be the headline price.

Where DigitalOcean dey make sense

DigitalOcean win when na the platform you dey pay for, no be just the virtual machine.

  • Managed databases. Managed PostgreSQL and MySQL start from $15.15 every month for 1 GiB RAM and 10 GiB storage. Dem dey charge extra storage per GiB, and standby nodes get price per node. If you build the same reliability by yourself, you need Patroni or repmgr, a consensus store, a connection proxy, and failover drill wey you don practise well. Team of two no fit maintain all that and still release features.
  • App Platform. Push a branch, get a build, certificate, and running service, without operating system wey you need patch. The cheap VPS version of this product na you, on Saturday.
  • Object storage and load balancers wey mature Terraform provider support. Fleet wey you fit destroy and rebuild from code worth more than lower unit price.
  • The company around the product. Published support tiers, status page wey get history, and organisation wey go answer client security questionnaire. If you dey resell hosting, that one worth more than few dollars per GB.

DigitalOcean dey become expensive when na plain virtual machine, plenty quantity, with real outbound traffic. Na exactly this case alternative dey solve, and na most of wetin developer wey dey self-host dey buy.

Move go new provider without downtime

Downtime during migration dey come from one thing: traffic still dey reach the old IP after data don move go the new one. Every step below dey make that window short and predictable.

Start with DNS, at least 48 hours before the move. Resolvers dey cache your A record for the length of its TTL (time to live), so record wey get 24 hour TTL fit keep sending users go the old server for up to one day after you change am. Lowering the TTL at cutover no go help, because resolvers don already hold the old value with the old expiry attached. Lower am first, wait for the old value to expire, then migrate.

dig +noall +answer example.com A
dig +noall +authority example.com SOA

The first command dey print the current TTL for the second column of the answer. Set am to 300 for your DNS provider, then wait pass the number wey you just replace.

Then work in this order.

  1. Provision the new server and harden am before anything else enter am. The first ten minutes for a new VPS cover the part wey people dey skip when dem dey hurry.
  2. Install the application stack and run the first data copy with rsync while the old server still dey serve normally.
  3. Issue the TLS certificate for the new host now, using a DNS-01 challenge, because an HTTP-01 challenge dey validate against the IP wey DNS currently point to, and na still the old server. A DNS-01 challenge remove that ordering problem completely.
  4. Test the new host before any public change by overriding DNS for your own laptop. Add 203.0.113.20 example.com to /etc/hosts, open the real site, then delete the line. This test no affect any user.
  5. Handle the database size question. If e small pass few GB, dump and restore fit happen inside the write freeze. If e pass that, set up replication from the old database to the new one days ahead and let am catch up, so the freeze cover only the promotion.
  6. Freeze writes. Put the application for maintenance or read-only mode. Na only this part users fit see, and e suppose last minutes.
  7. Run the final delta: run the same rsync again, then do the final database sync.
  8. Change the A and AAAA records to the new IP. With 300 second TTL, most resolvers go follow within about five minutes.
  9. Leave the old server running and reachable for at least one day, because some resolvers dey ignore short TTLs. If the old application still dey writable, late arrivals go write into the wrong database, so point the old host to the new database or return a maintenance page from am.
  10. Monitor the new server error rate for one day, raise the TTL back to its normal value, and destroy the old server after one week instead of that same evening.

The copy itself na two commands, and you run each one twice. The file sync:

rsync -aHAX --numeric-ids --delete -e ssh /srv/ deploy@203.0.113.20:/srv/

-a dey preserve ownership, permissions and timestamps, -H dey keep hard links, -AX dey keep ACLs and extended attributes, and --numeric-ids dey stop rsync from remapping user IDs through names wey differ between two machines. Run am days ahead, then run am again during the freeze, when e go transfer only wetin change.

For PostgreSQL wey small enough to dump:

pg_dump --format=custom --no-owner --dbname=appdb --file=appdb.dump
scp appdb.dump deploy@203.0.113.20:/var/tmp/
pg_restore --clean --if-exists --no-owner --dbname=appdb /var/tmp/appdb.dump

For MySQL or MariaDB:

mysqldump --single-transaction --routines --triggers --databases appdb > appdb.sql

--single-transaction dey take the dump inside one transaction for InnoDB tables, so the result dey consistent and the application fit continue writing while e dey run. Without that flag, mysqldump dey lock the tables. That one mean your write freeze start earlier than you plan, and na not you choose when.

Two things fit break outside your servers. New IP address no get email reputation, so mail wey send directly from the new box fit get filtered as spam: send am through a relay wey already get reputation. And any partner wey allowlist your outbound IP, like payment gateway or client firewall, must update am before cutover. Otherwise those calls go start failing once traffic move.

Wetin to check before you commit

  • Whether the price na promotional price and how much e go renew at. Discount for first term wey double when renewal reach na real cost; dem just postpone am.
  • Whether the term na prepaid. Multi-year prepaid plans, na so SSD Nodes dey sell am, fit give much lower price per GB of RAM because you pay money upfront. The trade-off be say you no fit waka comot next month, so match the term with how sure you be.
  • How much snapshot dey cost per month, and how much restore dey cost, both for money and minutes.
  • Whether dem dey bill overage or throttle am.
  • Whether IPv6 dey route properly or na just one address wey dem bolt on.
  • Whether API dey available with maintained Terraform provider, if you plan rebuild from code instead of doing am by hand.
  • How you fit reach support, and the published response target for server wey dey down, instead of target for sales question.

Choose based on the factor wey dey control your own bill pass. If na memory, price per GB of RAM go settle am. If na outbound traffic, the included transfer go settle am. If na your own time, the managed platform go settle am, and DigitalOcean get the strongest one among the four we compare here.

FAQ

Hetzner dey always cheaper pass DigitalOcean?

For plain virtual machine, e much cheaper per GB of RAM: about $1.62 compare with $6.00 for entry shared plans as of 5 August 2026. The comparison dey change once managed services enter the matter. Hetzner dey sell servers and networking, so na you or third party go provide managed database or push-to-deploy platform, and those hours get price. Hetzner still raise cloud prices during 2026, so check the current euro figure instead of trusting old article.

Which DigitalOcean alternative I suppose pick if I need managed database?

Vultr and Akamai both dey sell managed databases, so dem be the closest substitutes if na managed database make you dey use DigitalOcean at all. Low-cost European hosts generally no dey sell one, which mean say you go run PostgreSQL or MySQL by yourself, including replication and tested failover. Na serious work be that. Compare the cost with $15.15 per month wey managed 1 GiB instance cost before you decide say the cheaper server save you anything.

How I fit move live site go new provider without downtime?

Lower the DNS TTL to 300 seconds at least 48 hours before the move, because resolvers fit continue serve the old IP for as long as the previous TTL tell dem. Build and test the new host while the old one still dey serve traffic, using /etc/hosts override for your own machine so nobody else go see am. Then freeze writes for some minutes, run the final rsync delta and final database sync, switch the A and AAAA records, and leave the old server running for one week in case resolver ignore the short TTL.

Cheaper VPS mean say e get slower disks?

No be by itself. The important thing na whether your virtual disk dey local to the host or dey for network storage cluster, and the panel rarely talk am. lsblk -o NAME,ROTA reports 0 for both, because both no dey rotate. Measure instead: run fio with --iodepth=1 --bs=4k --direct=1 and read the 99th percentile completion latency. Network volume add datacentre network round trip to every read, so e latency floor dey higher than local NVMe even when deep-queue throughput look similar.

My email go still deliver from the new server?

Often no, at first. New IP address no get sending history, so receivers treat mail from am as suspicious and e fit land for spam or dem reject am outright. SPF and DKIM records still point to the old host until you update dem. Send application mail through relay or email service wey already get reputation, and update the DNS records for mail before cutover instead of after.