The answer should always be, use what you know unless you have a need which forces your decision to another platform.<p>If you don't know any, I'd say pick AWS since it is the giant, generally pretty easy to follow and you can find lots of tutorials saving you time. I'd say DO would be the other to consider as it is very similar and I love their documentation & tutorials most of the time. I'd not consider GCS or Azure generally (mainly over documentation and weirdness I have experienced) but neither are bad, and obviously many people are super successful with both. With AWS, use postgres on RDS and Redis from ElastiCache for now, it will save you time.<p>Just my 2 cents: While I see tons of value in automated deployments, testing and things like Terraform/Ansible etc, I'm always concerned when I see people start building out deployment solutions before they have focused on getting users and a basic system just running to sign those users up. It generally is a sign to me the focus is in the wrong area at such an early stage. There are always exceptions, but spending time anywhere other than getting a basic system running and finding users is usually wasted early on, especially when the complexity of the solution is/should be low. This changes as the number of users grow, reliability becomes critical etc. Where I'd say the time is well spent on deployment (before you have users) is in two cases: You already are very well versed in it, are a solo show and it will take you less than a couple of hours to setup and test. Second case would be where your product is required to meet a high reliability metric from day 1 so you need to have it distributed from the start (not just a load balancer and a couple of boxes but fully distributed). In those two cases it makes a ton of sense to do it before you get users. There are probably other times I could see it justified too but they would be the exceptions not the rule.<p>What I have seen quite often (and more so in the last year or 2) as I have talked with people is they spend 2-3 days (sometimes a week or more) setting up deployment and testing solutions and paying for CircleCI or similar solutions to deploy an app that has 0 users and should live on 1 box + a hosted database at first. Generally a waste of time and money IMO.