Until recently Google Cloud Platform was the only major cloud provider that offered true ‘Always Free’, true VM hosting. Amazon Web Services does also offer Free “EC2” VM hosting, however that is only valid for one year. Recently however, Oracle has released their own Always Free Cloud VM offering that at first glance appears to be much more generous than Google’s. In this article I would like to compare the two to see which one is more worth it for hobbyists and small scale projects.
2023 update: You may also be interested in this more recent look at Oracle Cloud VMs: Oracle Cloud free ARM VMs are easily the best deal for hobbyists
On the paper
On the paper Oracle claims you get “2 virtual machines with 1/8 OCPU and 1 GB memory each” for free forever. Looking up the term OCPU:
An OCPU is defined as the CPU capacity equivalent of one physical core of an Intel Xeon processor with hyper threading enabled. For Intel Xeon processor each OCPU corresponds to two hardware execution threads, known as vCPUs.
So that doesn’t really say anything about the actual performance and we’ll have to benchmark it.
In terms of storage, it seems like we can expect a total of 100GB spread among the two VMs: “2 Block Volumes, 100 GB total.”. Another important factor is the amount of traffic you are allowed to cause: “Outbound Data Transfer, 10 TB per month.”. And while the number of Oracle’s data centers is quite limited, you are allowed to choose between any of them at no charge.
On Google’s end, their “Always Free” offering contains one “F1-micro instance per month” which they define as a “Micro machine type with 0.2 vCPU and 0.60 GB of memory, backed by a shared physical core.”. Therefore I would expect to only get a single thread here and only 600MB of memory, but these instances also come with a “bursting” capability which allows for it to use more CPU when needed automatically: “Bursting happens automatically when your instance requires more physical CPU than originally allocated.” – whatever that means, but it should give it some advantage for short term applications, like the benchmark I’m about to perform.
So far so good, but the disappointment starts when looking at the traffic: “1 GB network egress from North America to all region destinations per month (excluding China and Australia)”. Ingress is free, but with only 1GB you really can’t do a lot. Also this statement already implies another limitation: While Google has tons of data centers around the globe, you can only choose between three american ones for this free offering. Finally, disk space will be limited to 30GB.
Both are running Ubuntu Server 18.04. Keep in mind that Oracle is offering two free VMs as opposed to just one from Google. I’ll just let the numbers speak for themselves:
|CPU type||Intel(R) Xeon(R) CPU @ 2.30GHz||AMD EPYC 7551 32-Core Processor @ 2GHz|
|Number of threads||1||2|
|CPU sysbench single thread (10000 primes)||events per second: 947.98||events per second: 574.18|
|CPU sysbench two threads (10000 primes)||events per second: 948.29||events per second: 592.09|
|CPU sysbench single thread (50000 primes)||events per second: 104.79||events per second: 61.01|
|dd write speed: 1000 blocks, 1MB each||40.0 MB/s||61.3 MB/s|
|dd read speed: same file||85.9 MB/s||55.1 MB/s|
|dd read speed: same file after clearing the buffer||79.7 MB/s||57.5 MB/s|
|sysbench memory transfer test (300MB)||3478.31 MiB/sec||1833.09 MiB/sec|
|Internet connection speed with speedtest.py||Download: 101.25 Mbit/s|
Upload: 199.86 Mbit/s
|Download: 47.65 Mbit/s|
Upload: 49.44 Mbit/s
Of course, there are other factors to consider. Google offers a wider selection of free additional services, but disregarding these, the user interfaces and documentations of the two providers are roughly on par.
Choosing an Always Free Cloud VM: Conclusion
And the winner is: it depends. If you are looking for maximum CPU performance, GCP wins, but for server applications you probably still want the extra memory of Oracle. Apart from that, Oracle offers more traffic, more storage and two instances instead of one, so it’s what I will use as the default for my projects. Or just use both, since they are free.