EDIT: With more research and the valuable input from this community I've reached a solution. I'll go with EBS and DocumentDB. Thank you all!!
Hi there!
I've been using AWS, especially EC2, Route 53... as a VPS, serving a few websites (I'm out of the year free tier) and playing with devOps to practice.
I could use help as to what AWS service to choose. I have a relatively simple application: it's a NodeJS + ExpressJS + MongoDB charity website, I estimate no more than 5k monthly visits. I'll be using a headless Node CMS for news and posts, and connect the frontend (nothing fancy, just maybe Jade/Pug) with it using ExpressJS.The site will grow a few sections and a couple of services to come (like fundraisers web support and so on), so I'm interested in a foolproof solution that I can git push after working locally and have it deploy online without hiccups.
I immediately thought on using Docker for a nice dev environment and no versioning/dependency issues. From AWS I'd like to have something easy to set up and monitor, managed, autoscaled, low maintenance and if it's affordable all the better! :) Microservices crossed my mind but if I can do without the added complexity, I'd prefer that: everything in the container, including MongoDB.
And here's where the doubts creep in. Most of what I've read (AWS docs, tutorials, youtube, posts...) only talk about ECS, which I think is an overkill for me. Multiple EC2 in a cluster with different availability zones using Fargate, ELB, ECR... I mean of course I don't want the site to go down but isn't there a simpler solution for a site like this?
After reading AWS' docs on Fargate, Elastic BeanStalk, ECS, etc. I'm a bit more lost than before. Using a container sounds comfortable but I'm not locked on it, if there's a better choice I'm all ears!
Can anyone help me figure this out?
Thank you!
Top comments (6)
Does it have to be in AWS? I’ve been looking for some low-maintenance/low-cost ways to host services as well. Currently our website is on the aws year-free tier, but I found out Google Cloud has a free forever tier on their EC2 equivalent. Also, if you want to go full auto-managed, services like heroku/back4app.com (some of which also offer a free tier) may be better suited.
Yes, I have other stuff in there and keeping things centralized is comfy. I forgot the free forever tier from GCP... I may take a look.
I checked with Heroku and other things remaining the same, it was more expensive.
Thanks!
How much more expensive? Because if it's a few dollars every month and you save days of configuration and headaches it might be worth it :)
Other options:
Google App Engine offers Node.js support with autoscaling. You can use Mongo
Azure has a similar offer with App Service. Their Node/Mongo tutorial though uses CosmosDB which a globally distributed DB compatible with Mongo's API but definitely not cheap
Zeit is a low cost alternative to deploy a node app: zeit.co/guides/deploying-a-mongodb...
You are right. In this instance though it's now just a matter of pride, can't abandon because it's hard! :P
I checked again with GCP and I remember now why I left: the damn flexible vs standard environment. It's just not a good fit.
Besides, even if doesn't sound like it, I'm familiar with most AWS services. It's the DBMS that threw me off, but I'll just use EBS and DocumentDB.
Thanks for the help :)
Be careful with containers. They don't automatically imply low-maintenance; anxiety is the first thing that comes to my mind. You either need to have a pretty good idea of what you are doing piecing together the absolute minimum set of layers for a functioning app and setting up security and persistence properly. Or you can trust someone else to do it and hope they don't break things pushing brand new dependencies without testing or failing to secure root with a password.
I like my VPS and VM environments and my scripts. Currently working on transitioning my deployment process to Puppet 100%.
You are not the first person to mention this... It seems I definitely misjudged containers.
Vital info! More reasons to go the EBS route. Thank you :)!