But I'd personally be way too stressed and annoyed by worrying about the often very restrictive free tier limits. You can very easily blow through the network egress, for example.
For things I want to be cheap I've started hosting a lot of things on Hetzner Cloud .
Even their cheapest instance (1vCPU/2GB RAM/20TB traffic) at 2.5 Euro/month can run a k3s Kubernetes cluster with Traefik ingress, loki logging, their own CSI driver, cert-manager, Grafana and a 2 or 3 light weight Go/Rust services. With their Terraform provider I can easily scale up the cluster in less than a minute.
And since it's Kubernetes I can also always move things to GC or AWS if required.
That's incredibly cheap, and you don't have to worry about limits or free tier periods ending, etc. It's a long-term solution.
I'm sure there are some other similar providers out there.
edit: to be clear, I also have clients with sizable production workloads on the same infrastructure, it's not just for tiny toy deployments. Above is just an example how far you can go for almost no money.
But then I realized you are limited in bandwithd to 20 TB, while OVH provides, for barely more €, unmetered traffic. It's huge because you never have to worry about a random spike day, a bot doing something stupid, an attack, or a use case switch (ex: video streaming).
There have been times where I wasn't able to get more than a handful Mbps from an OVH box in RBX to any network I've tried (multiple eyeball networks, Google Cloud, AS204880...). I also know multiple people who had to quickly migrate out of OVH because they suddenly got DSL-tier performance to their critical customers, and there was nothing they could do about it.
So it might be theoretically unmetered, but technically... I'd be surprised if you'd be reliably able to push more than 20TB in a month to outside OVH's AS, or even datacenter. You get what you pay for, and while network connectivity is not nearly as expensive as what large cloud providers would like you to believe, it's not free.
A true unmetered, non-oversubscribed, globally reaching Gbps link would run you something close to $200/mo in T1 transit commitment costs alone, and that's if you buy in bulk and already have good settlement-free peering with large networks to supplement that T1 transit.
How are you using 20TB/month? Are you running a tor relay or something?
There is more to the web than crud.
not really. 90% of people using the cheapest vps are going to host wordpress or crud apps on there, not their video streaming startup that competes with youtube.
With what Hetzner prices at I'm always on the look out for a US competitor but there doesn't seem to be one yet -- best prices consistently come from OVH most of the time or LeaseWeb.
(as a side note, is there an NA-equivalent of Hetzner?)
You can always skip the Kubernetes overhead and use plain VMs.
Obviously you can't expect too much from a single vCPU at that price, but as an example, I had the above setup plus miniflux (feed reader), Postgres, Maddy (mail server) and Nginx for a few static sites, all on the cheapest instance. It was mostly fine, apart from occasioal stutters.
Of course, if you're already doing a devops or particularly mean full stack regular job where this is your daily bread, you might as well use the knowledge.
They have K8s cloud controller manager to manage load balancers and private networking, and driver for attaching persistent volumes. Also, instances go up to 32 vCPU/128 GB of memory, so they are more than enough to run most loads, including the control plane.
For that I'd rather look into scaleway (starting at 15 EUR/month for DEV1-M), who offer services like managed kubernetes or S3 compatible object storage. What I like about their pricing is that it's very predictable. For example traffic is free (but bandwidth is limited) and object storage is only billed by size, not by API calls.
(disclaimer: I didn't use scaleway yet, so I don't know if it works reliably in practice)
DigitalOcean unlike other providers does not allow you to easily download your disk images or backups of your own servers.
It has been a feature requested many times and support simply lets you (eventually) know that it’s not going to happen.
That means you cannot have backups stored in more than one location, and more regularly, it’s a veiled form of lock in to make it unable for you to move.
Other vendors simply let you download your disk image, snapshot or backup at anytime.
DO has a good interface, but so do others. Proxmox or ESXi can be run pretty easily on a piece of equipment too.
OVH and Hetzner are strong options, and I have heard good experiences with Linode, who’s pricing is on part with DO.
1. mount /mnt/archive <block_storage>
2. dd if=/dev/<your_sda_partition> of=/mnt/archive/<my_image> bs=64K conv=noerror,sync
3. Download your image from your block.
It’s an active and intentional hurdle, it could just link to the file of the snapshot and allow you to DL.
DO has a few features that Hetzner lacks: S3 equivalent, managed Kubernetes and managed databases. So you need to have enough tolerance for managing all of that yourself. (they do have storage volumes, so you can get there with self hosted Minio etc, but it's obviously more work)
Support is pretty good, but quite a bit more responsive if you have larger deployments.
It seems to be seriously rate limited to the point of being unusable.
It's definitely viable for businesses if you need to save money.
Although I primarily recommend it for secondary workloads.
As a business you will probably be better off having S3/GCS and managed Kubernetes, managed databases etc. Better guarantees and less risk. And everyone is familiar with the big clouds, so less training for new hires.
Take Auth0. Free for up to 7,000 user but then it jumps to about $250/month. Migrating from Auth0 is a pain. You should really only consider these “free” services if you think you’ll always be in the free tier, and if you’d use the service even if it wasn’t free.
Prematurely building scaling into every single layer of a test project might be a bit much, especially when it might not be known where the bottlenecks may occur.
In many cases, early prototypes/mvps should be semi throwaway anyways.
The idea of having a turnkey stack like this, maybe even with a script remains intriguing tho :)
Now, I don't like Oracle, their goings about with Java or their database (fortunately currently I don't have to maintain any of those), but their always free tier is solid, and I'd rank it as the best among free offerings.
I made an issue for it's inclusion, but for those who want a decent free cloud service, do check it out https://www.oracle.com/cloud/free/
You get 2 VMs with 1GB RAM, 2 Block Volumes for 100GB total, 10GB Object Storage, 10GB Archive Storage, 2 Virtual Oracle Databases (20GB)
, Load balancer, 10TB outbound traffic/month and 10TB outbound bandwidth
Had the opposite experience. They killed my free tier stuff after about two months.
Also their VM images come with extra bloatware
And also, thanks to all the contributors who helped creating this awesome list.
We then switched to the cheapest Hetzner tier, which was just astoundingly cheap and performed very well for two years or so.
Eventually we had to upgrade and are now paying EUR 5 for an instance that's probably beefier than we need.
All of this is backed by Dokku (haven't found a use case for k8s yet, single-machine is good enough for now).
Be interesting to see what happens if we ever wanted to scale horizontally, but there's quite a few Hetzner instances we can scale to vertically, before needing to go horizontal I think.
We also used some other 'free' services, like Netlify for hosting the static sites our product spits out, but we found that they have a lot of hidden (and surprisingly expensive) costs, like form handling. Those costs add up quickly.
Ended up going with Cloudflare for that, which delivers a lot on their free tier (and less worrying about getting DDosed by something like HN).
One thing that amazes me though is some of the places people rely on free services. As someone who has run a free and open access API for over 10 years now it never ceases to amaze me how people integrate free services into critical production code and high volume, high availability contexts.
Sometimes I can see from my logs and sometimes because users end up contacting me - developers happily include the version of my API that doesn't require any API key  in large corporate ERPs, apps in the Atlassian app store, shopping carts of super high volume e-commerce stores etc. etc.
Obviously I take great care in how my free APIs are provisioned and monitored, but it is still shocking to me that people just pick an API off a list and then rely on it in a system that probably cost millions in developer salaries to build...
The real question is: is using IBM cloud worth it? I haven't had any experience but I might be willing to try if they are just handing out money like that.
- Support, including paid enterprise support, was hilariously bad. It would take 3 days of escalations to the account manager to get even get someone to look at a ticket, weeks to resolve anything.
- Billing is a broken mess. There is no common uuid between the billing and storage systems. It's literally not possible to link a billing line to a storage resource. Nobody at IBM I discussed this with felt it was a problem, but my stack dynamically provisions disks so this was actually a huge issue for me.
- Managed IoT services would change under us with no notice, new quotas kicking in that took us completely offline. Nobody bothered to reach out before flipping the quotas on.
I could continue but I think you get the picture.. dont take their $1k/mo poison pill, you dont want to go prod with these incapable morons.
Having just finished a job that used an IBM tool ( IBM Sterling File Gateway ) , I want to throw in that I'll _never_ pay for an IBM product again, their support was awful , I think they actually helped the situation once out of the 30 times we called them.
Among the people who applied I don't know of anyone who was rejected.
If you are interested in web scraping, you can use my SaaS free: https://PhantomJsCloud.com I've had the same free tier since 2017.
(Not associated with Grafana, but have used this free tier for personal projects and to learn Grafana/
Opbeat was acquired by Elastic, Inc and turned into their APM product. You can try the Elastic APM product for free as well: https://www.elastic.co/apm
(I was an Opbeat co-founder and part of the team that built Elastic APM)
The cost of a vendor is mostly the time and energy that is put into building your operations on top of their platform. It is also cash of course. But free means that your vendor will have trouble staying in business. That is not what you want.
Having TF scripts that can provision dev environments quickly and reliably is a more mature engineering approach than stitching together a bunch of free tier services.
If one literally has no money and the free tier means the difference between doing a thing and not doing a thing, by all means, embrace the free tier. Otherwise it is a liability, esp if it is easy to exceed the limits of the free tier and having to handle uncontrolled charges.
Speaking of free services, one thing I've been looking for with not much luck is a Google groups equivalent. It can be paid as well, just not hosted by Google because I don't trust them to not discontinue it in the (not so distant) future.
The choice between using SaaS platforms (any of the managed DB services, Auth0 etc.), PaaS platforms (like Heroku), the big IaaS vendors (AWS, GCP, Azure, Alibaba) and just hosting most of those yourself in something like Docker containers on cheap VPSes (think Hetzner, OVH, Contabo or Time4VPS) can result in an order of magnitude less or more expenditures.