I'm building a web app which will probably only ever have a few users, but may someday have as many as 100,000 (#wishfulthinking). I need to figure out where to host it. AWS and Azure seem overpowered (and expensive). Heroku is one I've heard of, but don't know much about.
My main criteria are: easy to use; easy to scale; cheap enough to pay for with loose change unless it starts getting a ton of traffic; able to host an SPA and its supporting API with a small database behind it.
What do you use/like?
Top comments (14)
As @andy mentioned, we use Heroku and are happy with it. Lots of easy plug in support, no major complaints. While I don't have my own benchmarks, Heroku isn't renowned for its pricing as you scale. I wouldn't really worry about that right now, though. I don't feel like we are that vendor locked in if we ever had to move away.
Digital Ocean seems like another solid option for this.
Amazon Lightsail may also be worth checking out.
Vultr and Linode also come to mind. And if you're in the Node world, Zeit Now is an interesting option.
But as I mentioned, we're on Heroku and like it.
ZEIT Now is not only for Node.js, you could also deploy static sites or docker containers (any app basically) :)
I really need to educate myself better on the ZEIT offering 🙃
For a small app, you can easily run on AWS for free. You can run multiple EC2 or RDS micro instances for free. Micro instances are fast, just not that much memory. EC2 is a VM you have to manage, but RDS is DB managed for you. When you create instances, it tells you if it is Free Tier eligible. AWS Lambda is free for low usage too, but spinup time probably makes it unsuitable for a low-usage API.
Azure has similar offerings and free deals.
I think AWS's free for a year only?
Yes, the VM instances are free for 1 yr only (both AWS and Azure). Afterward, the t2 micro instances currently cost about $61.32 / yr to run (reserved instances) 24/7.
If the API is suitable for AWS Lambda and DB is suitable for Dynamo, those remain free after a year, up to a certain amount of usage.
AWS Free Tier
Azure has similar free offerings, except
I don't know of any managed API hosting service like this on AWS (stateful, always running, managed).
Azure Free Account
If you're at all sane about it, most of these platforms allow you to host your app for "pocket change" and scale along with you. I wouldn't penny pinch too too much.
Right now I host my website on One.com with great pleasure. Once you get something bigger, you can upgrade you plan or move on to another host. Name.com also has some great plans.
Currently using ssdnode hosting which I have to say has been excellent so far and super fast. If you are using spa take a look at netlify with maybe firebase db
I'm sure @ben can give a better explanation, but Heroku seems to be a pretty good platform. It's great to scale up in the beginning since the costs are cheaper, but as you add more add-ons and APIs it gets pricier and pricier.
I'm not sure if Heroku works that well for languages/frameworks besides Rails (I've only used it with Rails apps).
Here's a decent article I read in the past that helped me understand the differences. It's also about Rails, but I think it should still be helpful.
Why do you think Azure is expensive? Azure has a lot of free option which you can access from here azure.microsoft.com/en-us/free/?v=...
Also if you are a startup you can apply for Microsoft BizSpark with which you can get US$150 a month of Azure credits for a year and spin up anything, learn about BizSpark from here: bizspark.microsoft.com/
Also you get free Azure credits through Visual Studi Dev Essentials free membership and also IT Pro Essentials, visualstudio.com/dev-essentials/ microsoft.com/en-US/azureessentials
Now you can get the free B1S Linux or Windows VM with the free Disk and setup a web server with a DB server on it OR you can also do PaaS, like use Azure Web App and setup a DB either SQL DB or MySQL or Postgres or Cosmos (in which you can use Mongo). So you have a lot of option. With PaaS your admin duties would be almost non-existant and scale is easy with it as well.
You can do whatever language or tool you like Azure supports almost everything.
+1 for ZEIT Now!
It is really easy to set up and deployment is even easier. I use it for all my side projects and micro services. Two small projects in production right now and everything is fine so far. I think they plan adding more regions to their service (right now its SFO only).
Heroku
AWS free tier for the first year is awesome, and I'm a huge fan of elastic beanstalk for managing deployments