Three of the largest cloud providers will give you a virtual machine for nothing. They are not comparable offers, and the axis that separates them is not performance — it is whether the machine is still free next year, and how many bytes it is allowed to send.

What this article is: a side-by-side reading of the published free-tier terms for Oracle Cloud, Google Cloud, and Microsoft Azure, checked on 12 August 2026, with the trade-offs made explicit. What it is not: a benchmark or a review. Yangworks runs on Cloudflare and operates none of these accounts. No throughput, latency, uptime, or price-performance measurement was made, and none is claimed. Where a figure could not be verified against vendor documentation directly, it is marked as such rather than filled in.

The short answer

Want a free box that stays free           -> Oracle Cloud
Want free compute for jobs, not serving   -> Google Cloud
Want a generous first year, then migrate  -> Azure

Want a free box to serve public traffic   -> Oracle, or none
Want free Arm with real memory            -> Oracle (2 OCPU / 12 GB)
Want the bill to be exactly zero          -> NOT Google (see below)

The comparison

                    ORACLE              GOOGLE            AZURE
                    Always Free         Always Free       Free account

Permanent?          yes, life of        yes               NO - 12 months,
                    the account                           then billed

x86 machine         2 x E2.1.Micro      1 x e2-micro      B1s   1 vCPU 1 GiB
                    1/8 OCPU, 1 GB      2 shared vCPU     B2ats_v2
                                        (25%), 1 GB       2 vCPU 1 GiB

Arm machine         A1.Flex pool:       none in the       B2pts_v2
                    2 OCPU, 12 GB       free tier         2 vCPU, 1 GiB

Storage             200 GB block        30 GB-months      billed separately
                    (boot + block)      pd-standard       - verify allowance

Egress              10 TB / month       1 GB / month      not verified here

Region              home region only,   us-west1          broad
                    chosen once,        us-central1
                    permanent           us-east1 only

External IPv4       included            $0.005/hr after   included in the
                                        1 free hr/month   free VM hours
                                        = ~$3.65/month

Signature           idle instances      the IP charge,    the 12-month
gotcha              may be reclaimed    and the wrong     cliff; burst
                                        disk type or      credit exhaustion
                                        region

Permanence is the decisive axis

Oracle's free resources are free of charge in the home region of the tenancy, for the life of the account. Google's free tier likewise continues after the trial credit is spent. Azure's VM hours are listed under the twelve-month category, and Microsoft's FAQ states that afterwards resources keep running but you'll be billed for them at pay-as-you-go rates.

This is not a minor asymmetry. It changes what each offer is for.

Author judgment: a machine that stops being free in twelve months is not infrastructure, it is a trial with a long fuse. That makes Azure excellent for things with a natural end — learning, staging, a build farm, a project you plan to migrate — and a poor foundation for a personal service you intend to forget about. The failure mode is not a large bill; it is a small one arriving on month thirteen for something you stopped thinking about on month two.

Egress decides more than CPU does

The specification people compare is cores. The number that actually determines feasibility is outbound transfer, and the spread here is four orders of magnitude.

Oracle   10 TB / month     10,000 GB
Google    1 GB / month          1 GB
                              ------
                              10,000x

Google's allowance works out to roughly 33 MB a day. At a 200 KB page that is about 5,000 views a month; at 2 MB with images, about 500. The exact wording is 1 GB of outbound data transfer from North America to all region destinations (excluding China and Australia) per month — measured leaving North America, with China and Australia traffic not drawing on it at all.

Author judgment: this single line reclassifies the Google offer. The free e2-micro is a compute box — a scheduled job, a scraper, a webhook receiver, a bot, a monitoring agent, a build runner — not a serving box. Anyone planning to host a website on it will hit the egress ceiling long before the quarter-core CPU becomes the complaint. Oracle's 10 TB, by contrast, is more egress than most small projects will ever use, and it is the reason Oracle is the only one of the three I would consider for public serving.

Memory, and the "2 core" illusion

Every free x86 option here has 1 GB of memory. The core counts are more generous than the memory, and in every case they are less than they look.

Google's e2-micro presents two vCPUs, each entitled to 12.5% of CPU time — 25% of a core in total, with bursting. Oracle's E2.1.Micro is 1/8th of an OCPU with the ability to use additional CPU resources. Azure's free 2-vCPU sizes have a documented base CPU performance of 20% and run on a credit model: they bank credits while below baseline and are throttled back to baseline once the bank empties.

Note especially that Azure's two-core free sizes, B2pts_v2 and B2ats_v2, carry 1 GiB of memory, not 2 GiB. They are the tiny-memory members of their series. If you have been planning around a "2 core, 2 GB" free machine, no such thing exists in any of these three offers.

The exception, and it is a large one: Oracle's Arm allowance. Oracle documents it as a monthly pool — the first 1,500 OCPU hours and 9,000 GB hours per month, which it states is equivalent to 2 OCPUs and 12 GB of memory for Always Free tenancies. Twelve gigabytes is not in the same category as one, and it is the only free machine among the three on which co-locating a real database is comfortable.

One correction worth making explicitly, because the outdated figure is everywhere: Oracle's Arm allowance is documented today as 2 OCPUs and 12 GB, not the 4 OCPUs and 24 GB that most tutorials still quote. This is the one figure in this comparison I could check against real hardware — an A1.Flex instance provisioned at the Always Free allowance reports ocpus 2.0, memoryInGBs 12.0, and an aarch64 Neoverse-N1 processor. Check the current page before designing around the larger number.

The gotcha each one has

Oracle: idle reclamation. Oracle documents that idle Always Free instances may be reclaimed, with all of the following true across a 7-day window: 95th-percentile CPU below 20%, network utilisation below 20%, and (on A1 shapes) memory utilisation below 20%. A box doing real work is not the target; a box provisioned and forgotten is. Also: home region is permanent, outbound port 25 is blocked by default, and out of host capacity errors at provisioning time are a documented and common experience.

Google: the free VM is not actually free. This is the finding that most changed my view while writing this. Google's free tier page does not mention external IP addresses; the network pricing page does, and it says Both static and ephemeral IP addresses assigned to standard VM instances are offered with a free tier. This free usage is limited to one hour per month per account. After that hour the rate is $0.005 per hour on a standard VM, which over a 730-hour month is $3.65 — roughly $43.80 a year for the address on a machine advertised as free. Stopping the VM does not help: Google Cloud considers a static external IP address as in use if it is associated with a VM instance whether the instance is running or stopped.

On top of that, the 30 GB allowance covers standard persistent disk specifically, while the default boot disk type on many current images is balanced, which bills from the first gigabyte. And free-tier eligibility is limited to three US regions while e2-micro is creatable in nearly all of them.

Author judgment: Oracle and Azure both include the address in the free offer. Google does not, and it is the only one of the three where following the console defaults produces a bill. That does not make the offer bad — $3.65 a month for a permanent VM is a good price — but it does mean the honest description is "very cheap," not "free," and the many articles listing all three as free VPS options are wrong about this one. You can avoid the charge by running without an external IPv4 address and reaching the box over IAP, a tunnel, or IPv6.

Azure: the cliff and the credits. Beyond the twelve-month expiry, the burst model has teeth. On the free 2-vCPU sizes the documented figures are 20% base performance, 24 credits banked per idle hour, and a 576-credit cap. Converting: 576 credits is 24 hours of accumulation, and spending it across both vCPUs at full speed lasts about 4.8 hours. Bursty workloads fit this beautifully; anything holding CPU above 20% around the clock runs permanently at roughly 0.4 vCPU-equivalent.

Eligibility, which disqualifies more people than specs do

Azure's is the most restrictive: the twelve-month benefit is available only to new customers who have not previously had an Azure account or received 12 months of free services, is not offered to those signing up directly for pay-as-you-go in China and India, and requires moving to pay-as-you-go within 30 days to continue receiving 12 months free services. A dormant account from years ago disqualifies you permanently.

All three require a payment card for identity verification even when you intend to use only free resources. Oracle additionally requires choosing a home region at signup that cannot be changed later.

Choosing

Reasoning from documented specifications, not measurement.

A service you want running in three years
  -> Oracle A1.Flex (2 OCPU / 12 GB). Nothing else
     is both permanent and roomy enough.

A cron job, scraper, bot, or webhook receiver
  -> Google e2-micro. Permanent, tiny, and the 1 GB
     egress ceiling is irrelevant when you consume
     bytes rather than emit them.

Anything serving public traffic for free
  -> Oracle, on the 10 TB egress allowance. Or put
     the site on a static host and skip the VM.

A year of three machines for learning or staging
  -> Azure. 750 hours each of three sizes, run
     concurrently, is the most underused part of
     any of these offers.

Free Arm with real memory
  -> Oracle. Google has no free Arm; Azure's Arm
     size has 1 GiB.

Author judgment: the strongest combination is not one provider. Oracle's A1 instance as the permanent home for anything that matters, plus Google's e2-micro as a free always-on job runner in a different failure domain, costs nothing and gives you two independent providers. Azure joins that picture only if you have never had an account and want a bounded year of extra capacity — and only with the expiry in your calendar on the day you sign up.

Whichever you choose, set a billing alert at a low threshold before you create anything. All three offers have at least one documented way to start charging you quietly, and a $1 budget alert converts every one of them from a surprise into an email.