I never had to buy any on-demand virtual machines (VMs) for my app development. This is because I am always subscribed to 2-3 Virtual Private Server (VPS) on yearly plans from lesser-known host providers which is cheaper than the usual Amazon Web Services (AWS) or DigitalOcean. However, I had to create droplets from DigitalOcean a couple of times to double check my Linux commands while I was writing some of the tutorials for this website.
While I have existing accounts with Vultr, DigitalOcean, AWS and Google Cloud, my mind went straight to DigitalOcean for temporary on-demand pay-as-you-go VM because of its website simplicity. There is no sophisticated navigation on-site (unlike AWS spoiled for choices) hence it is clear-cut to create a $5 droplet at $0.007 /hr. It was only after a couple of days later that I questioned myself if DigitalOcean was indeed the cheapest hourly VM to deploy for 1-2 hours usage e.g. to do simple code tests.
U.S. On-demand Hourly Price (May 2020)
Storage and data transfer are not taken into consideration for comparison. The criteria for a VM plan to be listed in the tables are:
- U.S. or Asia-Pacific (Singapore) locations
- Minimum 1 vCPU
- 512 MB to 1 GB Memory
- 1 static IPv4
- Hourly priced
Cloud Provider | Location | vCPU | Mem (GB) | Disk (GB) | Compute + Disk (USD) | Price /hr (USD) |
---|---|---|---|---|---|---|
Vultr (IPv6) | Atlanta, New York | 1 | 0.5 | 10 | 0.004 + 0 (inclusive) | 0.004 |
LunaNode (m.1s) | Montreal, Toronto | 1 | 1 | 15 | 0.00486 + 0 (inclusive) | 0.00486 |
MivoCloud* (custom) | US | 1 | 0.5 | 2 | 0.0050 + 0 (inclusive) | 0.005 |
Vultr (IPv4) | New York | 1 | 0.5 | 10 | 0.005 + 0 (inclusive) | 0.005 |
Kamatera (burstable) | New York, Texas, California | 1 | 1 | 20 | 0.005 + 0 (inclusive) | 0.005 |
Microsoft Azure (B1LS) | West US 2, North Central US, East US 2, East US | 1 | 0.5 | 4 | 0.0052 + 0 (inclusive) | 0.0052 |
Hetzner* (CX11) | Germany FSN1, Finland HEL1 | 1 | 2 | 20 | 0.0055 + 0 (inclusive) | 0.0055 |
Alibaba Cloud (ecs.t5-lc2m1.nano) | US East 1 (Virginia) | 1 | 0.5 | 20 | 0.006 + 0.01 @0.05 /100GB | 0.006 |
DigitalOcean (1 GB) | New York, San Francisco | 1 | 1 | 25 | 0.007 + 0 (inclusive) | 0.007 |
UpCloud (1 GB) | US San Jose, US Chicago | 1 | 1 | 25 | 0.007 + 0 (inclusive) | 0.007 |
Linode (Nanode) | Various locations | 1 | 1 | 25 | 0.0075 + 0 (inclusive) | 0.0075 |
DreamHost (512 MB) | US | 1 | 0.5 | 80 | 0.0075 + 0 (inclusive) | 0.0075 |
Alibaba Cloud (ecs.t5-lc2m1.nano) | US West 1 (Silicon Valley) | 1 | 0.5 | 20 | 0.007 + 0.01 @0.05 /100GB | 0.017 |
CloudSigma (custom) | San Jose, Washington DC | 1 | 1 | 2 | 0.017 + 0 (inclusive) | 0.017 |
gc (f1-micro) | lowa (us-central1), Oregon (us-west1), South Carolina (us-east1) | 0.2 shared up 1 core | 0.614 | 2 | 0.0076 + 0.08 @$0.040 /GB | 0.0876 |
AWS (t3a.nano) | US East (N. Virginia), US East (Ohio), US West (Oregon) | 2 | 0.5 | 2 | 0.0047 + 0.2 @$0.10 /GB | 0.2047 |
AWS (t3.nano) | US East (N. Virginia), US East (Ohio), US West (Oregon) | 2 | 0.5 | 2 | 0.0052 + 0.2 @$0.10 /GB | 0.2052 |
AWS (t2.nano) | US East (N. Virginia), US East (Ohio), US West (Oregon) | 1 | 0.5 | 2 | 0.0058 + 0.2 @$0.10 /GB | 0.2058 |
The winner is Vultr (IPv4) at $0.005 /hr but is only available in New York. It may look like we have a tie between MivoCloud* (custom), Vultr (IPv4) and Kamatera (burstable) but Vultr is offering 10 GB disk and MivoCloud will cost more if we upsize the 2 GB to 10 GB. On the other hand, Kamatera is burstable type and will incur additional cost if above 10% CPU utilization. LunaNode at $0.00486 /hr, even though hosted in Canada instead of U.S. was included in the table because it offers 1 GB memory compared to #1 Vultr and #2 MivoCloud. Vultr (IPv6) at $0.004 /hr but only available in Atlanta or New York is worth a mention due to its superb cheap hourly price. It may be useful to run code tests if IPv4 is not required. * hourly price in Eur converted to USB based on 1 EUR = 1.1 USD.
Asia-Pacific (Singapore) On-demand Hourly Price (May 2020)
Singapore, Tokyo and Sydney are common data center locations based in Asia among cloud providers. I also did a summary of pay-as-you-go, hourly prices for Singapore which is more relevant to me as I reside here. The price is definitely going to be more expensive than deploying a VM in e.g. U.S. because of the higher colocation rental fees. However, the advantage is single-digit network latency and working in SSH shell has no lag unlike VM at other locations where every key I type takes 1-2 sec to appear in the SSH console.
Cloud Provider | Location | vCPU | Mem (GB) | Disk (GB) | Compute + Disk (USD) | Price /hr (USD) |
---|---|---|---|---|---|---|
Kamatera (burstable) | Asia: China, HK | 1 | 1 | 20 | 0.005 + 0 (inclusive) | 0.005 |
DigitalOcean (1 GB) | Singapore | 1 | 1 | 25 | 0.007 + 0 (inclusive) | 0.007 |
UpCloud (1 GB) | Singapore | 1 | 1 | 25 | 0.007 + 0 (inclusive) | 0.007 |
Vultr (IPv4) | Asia Pacific | 1 | 1 | 25 | 0.007 + 0 (inclusive) | 0.007 |
Linode (Nanode) | Various locations | 1 | 1 | 25 | 0.0075 + 0 (inclusive) | 0.0075 |
OVHcloud (Sandbox s1-2) | Singapore | 1 | 2 | 10 | 0.0123 + 0 (inclusive) | 0.0123 |
Alibaba Cloud (ecs.t6-c4m1.large) | Asia Pacific SE (Singapore) | 2 | 0.5 | 20 | 0.006 + 0.01 @0.05 /100GB | 0.016 |
Google Cloud (f1-micro) | Singapore (asia-southeast1) | 0.2 shared up 1 core | 0.614 | 2 | 0.0092 + 0.088 @$0.044 /GB | 0.0972 |
Google Cloud (g1-small) | Singapore (asia-southeast1) | 0.5 shared up 1 core | 1.7 | 2 | 0.0311 + 0.088 @$0.044 /GB | 0.1191 |
AWS (t3a.nano) | Asia Pacific (Singapore) | 2 | 0.5 | 2 | 0.0059 + 0.24 @$0.12 /GB | 0.2459 |
AWS (t3.nano) | Asia Pacific (Singapore) | 2 | 0.5 | 2 | 0.0066 + 0.24 @$0.12 /GB | 0.2466 |
AWS (t2.nano) | Asia Pacific (Singapore) | 1 | 0.5 | 2 | 0.0073 + 0.24 @$0.12 /GB | 0.2473 |
The winner is Kamatera at $0.005 /hr and even though hosted in China or Hong Kong instead of Singapore, it is still within Asia-Pacific and the network latency should be excellent. Next, we have a tie between DigitalOcean, UpCloud and Vultr, all at $0.007 /hr. As they offer similar resources, I guess the real winner can only be determine through a VPS benchmark script that measures CPU stress test, disk I/O and network quality.
Wait a Minute – Baseline Performance for Burstable Instances?
Baseline performance is also known as a percentage of CPU utilization. Kamatera (burstable) has baseline performance of 10% meaning that if the average CPU usage is > 10%, the additional charge is $0.041/hour/CPU according to here. Therefore, if your development depends heavily on CPU utilization, you may be better off with DigitalOcean, UpCloud or Vultr.
Conclusion
- LunaNode (m.1s @Montreal, Toronto) at $0.00486 /hr x 24 hours = $0.11664
- Vultr (IPv4 @New York) at $0.005 /hr x 24 hours = $0.12
- Kamatera (burstable @US, Asia) at $0.005 /hr x 24 hours = $0.12
- DigitalOcean (1 GB @Singapore) 0.007 /hr x 24 hours = $0.168
- UpCloud (1 GB @Singapore) 0.007 /hr x 24 hours = $0.168
- Vultr (IPv4 @Singapore) 0.007 /hr x 24 hours = $0.168
It costs $0.12 to deploy a Vultr (IPv4) in New York for 24 hours. As mentioned before, I lived in Singapore hence I don’t mind paying $0.168 for a (1 GB) DigitalOcean, UpCloud or Vultr in Singapore due to its low latency. The difference is only a mere $0.048 for one day usage or $0.096 for two days usage!
If I will to deploy my test VM with Kamatera, it will be in Hong Kong over China due to its close proximity to Singapore and lesser restrictions due to Great Firewall of China (GFW). But for non-Singapore locations, I will rather go with LunaNode @Montreal, Toronto or Vultr @New York because I don’t have to worry about bursting over baseline performance incurring additional cost for Kamatera.
For now, I will stick to either LunaNode or Vultr dependent on network latency to Singapore where I reside. If both providers/ locations are unsuitable (e.g. lag over SSH), or some projects are country locked (only Singapore), then I will stick to the well-known DigitalOcean or Vultr.