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. Either way, you go get Linux virtual machine with public IP, virtio disk, and root access, and your kernel no send who logo dey for control panel. The differences wey really decide the choice na price per GB of RAM, size of included transfer allowance and wetin each byte above the allowance go cost, wetin the disk actually dey made of, and how much of the stack above operating system another person go run for you.
This guide dey compare dem based on those points, because developer fit check each one from terminal or published price list. E also dey mention when DigitalOcean na the correct choice, because comparison wey no admit any weakness na advertisement.
Every price wey dey below na published list price, checked on 5 August 2026. We check DigitalOcean figures again on 21 October 2026, and dem never change. Prices dey change, and more than one provider for this list change their own during 2026. Pricing structure dey change much more slowly, so read the ratios and billing model first. Then confirm today's number for the provider own page before you commit.
GB RAM price na the number you suppose compare
Di data wey dey behind dis 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 (unavailable Oct 2026)",
"ram_gb": 4,
"monthly_usd": "6.49",
"usd_per_gb_ram": "1.62"
}
]For one provider, price per GB RAM dey hardly change. DigitalOcean dey charge $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 every 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 be the main thing.
Akamai, wey dey sell wetin used to be Linode, price its 2 GB and 4 GB shared plans at $12 and $24. Na the same dollar price as DigitalOcean. Its entry plan cheaper pass dem, at $5.00. When two companies match price exactly, e give useful signal: dem price that tier against competitor, not against the hardware. The price go continue follow that competitor.
The difference dey show for providers wey build their own datacentres and sell with euro. On 5 August 2026, Hetzner CX23 give you 4 GB RAM for about $6.49 every month. That one na $1.62 per GB, almost one-quarter of DigitalOcean price. But on 21 October 2026, you still no fit order am. Hetzner list CX23, together with every other plan for its Cost-Optimized line, as currently unavailable. E explain say the line dey run on older hardware, so the number of servers limited. Its status page don carry notice about limited availability of cloud instances since 26 June 2026, and the notice still dey there on 21 October 2026. Plan wey you no fit order no get useful price per GB to compare.
On 6 October 2026, Hetzner add CPX02, a Regular Performance plan with 1 vCPU, 1 GB RAM, and 20 GB NVMe, as its smallest shared server. On 21 October 2026, Hetzner own page list am at €6.49 every month, excluding VAT, for its EU locations. That one na €6.49 per GB RAM before you convert am to dollars, compared with DigitalOcean $6.00. The same page mark CPX02, and every other Regular Performance plan, as currently unavailable. So first confirm say you fit order am for the location wey you want before you compare.
Any dollar amount for Hetzner na euro list price wey dem convert, so exchange rate fit change am. Hetzner also increase cloud prices during 2026. Because of this, older comparison posts fit show prices wey no longer exist.
Price per GB RAM no tell you anything about the CPU wey you go get. Shared vCPU mean say hypervisor dey schedule your core together with other tenants. The proper test suppose run for server wey you don actually rent:
vmstat 1 10Read the st column. E count the percentage of time your vCPU ready to run but hypervisor give the physical core to another tenant. Small percentage under load normal. If the number stay for double digits, e mean say host get too many workloads. No price per GB fit compensate for core wey you no fit use. Run the test during your busy hour, because steal time na neighbour problem, and neighbours get their own schedules. For the bigger picture of how much hosting really cost every month after you add storage and traffic, read how much VPS cost every month.
Wetin the included transfer really dey cost
Di data wey dey behind dis 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 (unavailable Oct 2026)",
"included_tb": 20,
"overage_usd_per_tb": "1.20"
}
]DigitalOcean dey include about 1 TB (1,000 GiB) outbound transfer for im $6.00 1 GiB plan, and e dey charge $0.01 per GiB for overage. This one come to about $10.00 for each extra TB. Im real entry plan, wey get 512 MiB RAM for $4.00 every month, dey include only 500 GiB. The allowance then dey increase according to plan size reach 6,000 GiB for the bigger Basic plans, so read the figure for the plan wey you actually choose. Akamai dey include the same TB for im Nanode and dey charge roughly half that amount, about $5.00 per TB. Vultr dey include 2 TB with similar overage rate. On 5 August 2026, Hetzner CX23 dey include 20 TB and dey charge about $1.20 per TB after that. This rate dey about ten times different from the others. On 21 October 2026, Hetzner page still dey list 20 TB included traffic for im EU locations, including CPX02, though the allowance dey much lower for Singapore and US locations. For Singapore, CPX02 dey get 0.5 TB.
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, Akamai and Vultr dey pool the allowance across every server for the account. So one busy machine fit use another machine quota, while plenty small servers fit 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 billing decision and security decision too.
None of this matter if you no dey anywhere near 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 -mvnstat -m dey print transfer by month, split into received and transmitted. Na only the transmitted column dem dey bill. The database dey start empty, so the first useful reading go show one day after you install am. 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 highest number of dem. You need know which one 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/rotationalROTA 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/fiotestThe 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.commtr 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 SOAThe 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.
- 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.
- Install the application stack and run the first data copy with rsync while the old server still dey serve normally.
- 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.
- Test the new host before any public change by overriding DNS for your own laptop. Add
203.0.113.20 example.comto/etc/hosts, open the real site, then delete the line. This test no affect any user. - 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.
- Freeze writes. Put the application for maintenance or read-only mode. Na only this part users fit see, and e suppose last minutes.
- Run the final delta: run the same rsync again, then do the final database sync.
- Change the A and AAAA records to the new IP. With 300 second TTL, most resolvers go follow within about five minutes.
- 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.
- 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.dumpFor 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 you fit actually order the plan today, for the location wey you want. If price list mark plan as unavailable, e no be option, no matter how good the price per GB look.
- Whether the price na promotion and how much e go renew at. Discount for the first term wey double during renewal na real cost; dem just postpone am.
- Whether the term na prepaid. Multi-year prepaid plans, na how SSD Nodes dey sell, give you much lower price per GB of RAM because you pay money upfront. The trade-off be say you no fit comot next month, so match the term with how sure you be.
- How much snapshot cost per month, and how much restore cost both for money and minutes.
- Whether dem go bill overage or throttle am.
- Whether IPv6 dey route properly or na just one address dem bolt on.
- Whether API dey 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 response target for sales question.
Choose based on the factor wey dey control your own bill. 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, managed platform go settle am, and DigitalOcean na the strongest among the four wey we compare here.
FAQ
Hetzner dey always cheaper pass DigitalOcean?
For plain virtual machine, e bin much cheaper per GB of RAM: about $1.62 against $6.00 for small shared plans as of 5 August 2026. That Hetzner figure come from CX23, wey Hetzner list as unavailable on 21 October 2026, together with the rest of e Cost-Optimized line and e new CPX02. So compare am with plan wey you fit actually order today. The comparison still change once managed services enter the matter. Hetzner dey sell servers and networking, so you go need provide managed database or push-to-deploy platform yourself, or get am from third party, and those hours get cost. Hetzner still increase cloud prices during 2026, so check the current euro amount 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 na the closest alternatives if managed database na the main reason you dey use DigitalOcean. Low-cost European hosts generally no dey sell one. That mean say you go run PostgreSQL or MySQL yourself, including replication and tested failover. Na serious work be that. Compare the cost with $15.15 per month wey managed 1 GiB instance dey cost before you decide say the cheaper server save you anything.
How I fit move live site go new provider without downtime?
Reduce 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. Use /etc/hosts override for your own machine so nobody else go see am. Then freeze writes for a few 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 for the host or dey on network storage cluster, and the panel rarely dey show this. lsblk -o NAME,ROTA dey report 0 for both, because both no use rotating disks. Measure am 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, e no go deliver at first. New IP address no get sending history, so receivers treat mail from am as suspicious, and the mail fit enter spam or dem reject am completely. 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 good reputation, and update DNS records for mail before the cutover, not after.