Is AWS good choice for solo makers?
Even though AWS prices per services look quite straight forward, the overall price for most of the services is hard to estimate. From my research we don't only pay for the service X but also for any other complementary services necessary to provide X. I found interesting cost breakdown of serverless app https://860746.smushcdn.com/1884284/wp-content/uploads/2018/08/total-app-cost.png?lossy=1&strip=1&webp=1. All the services looks cheap but the API Gateway costs are crazy high.
What are your experiences with AWS stack as a solo makers? Is it cost effective comparing to VPS from DigitalOcean, Linode or should we stay away? How much you pay for AWS, and what's included?
I think of popular services like using S3, CloudFront, Lambda, DynamoDB, SNS etc.
AWS is fine for solo makers but as you said the pricing estimates always worries me. If you're working on something small with a small amount of traffic or usage the AWS should be fine.
As for myself, I've settled on using Digital Ocean since I know exactly how much every month the price will be.
I am using Contabo for last 3 years, happy with their service and support, if you know Linux, then they are a good option
6 Core 16 GB 400 GB SSD for Euro 8.99
I've only recently started using AWS. Most of my apps run on Digitalocean.
AWS offers EVERYTHING, but it has two downsides for me: 1) the hard to estimate pricing (as you said) 2) its complexity
I feel I can be much more productive on Digitalocean because AWS makes me feel like I need a diploma to navigate its services & documentation. Digitalocean is much more intuitive imho.
But for a recent project I needed functionality that DO doesn't have: lambdas & batch. And AWS is mindblowing in the amount of services it offers.
Its a tradeoff between ease of use & cost planning on one side and range of services on the other. I'd argue most devs should go with the easiest to use provider that offers the features the absolutely need.
@scholz did you end up using DO and some of AWS services in single project, or you deployed entire project on AWS? I wonder how efficient is hybrid solution with hosting on any VPS together with some of the AWS services: S3, CloudFront. In that case it probably make sense to get AWS Route 53 as well.
@farynaio Right now I have both. For one project I need to make extensive use of things like AWS Batch (which automatically handles tasks by creating & shutting down EC2 instances), RDS, Elasticache & S3. In this case spreading the project over multiple providers would be too complicated.
For another project I have almost everything at DO, but then I also have simple SQS queues & Lambda workers on AWS. I do this because I still prefer Digitaloceans usability but need the lambdas. The code for the lambdas is so self-contained that I'm okay with spreading the app over two providers. I'd probably go with AWS only if these parts were more closely connected, though.
I think having S3 & Cloudfront with AWS, while the rest is somewhere else is okay. These two are closely connected to each other, but not necessarily to the rest of the app. This obviously depends a lot on the app.
In general I would always go with the easiest solution as long as possible. Because unnecessary complexity is costing much more in the long run.
I recently started playing with Zappa/Django. So the bill I received included API Gateway, NAT and some other things.
Not that it was a shock, I kind of expected that.
But yeah it costs money.
But when I was developing AWS EC2 integration for https://appliku.com/ I didn't have any additional expenses. Only EC2 price and that's it. Databases served by same server, so no extra expense. You should give it a shot if you want to use AWS and don't want unexpected charges.
Start with a monolith first, unless you have to use API Gateway, Lambda, DynomaDB as you expect a lot of traffic that DigitalOcean auto-scalling can't handle.
I use a dedicated server for hosting docker based apps (50EUR/month), but also use S3, CloudFront, Lambda, SQS - AWS part is only $3-4 a month.
@gera that's very fair price for AWS services. Do you have to pay for API Gateway? It tend to be the main cost generator for some people.
@farynaio no, I don't use API gateway, most of my applications are Docker-based apps (hosted on Hetzner dedicated server) with the mix of some complimentary AWS services like SQS, S3, and will add EventBridge soon.
I decided to go with a dedicated server because RAM&CPU I can get per $1 is a lot higher than on AWS, DigitalOcean or Linode. It's all automated, and CI/CD runs updates daily but took some time to set up initially.
Serverless is a great concept, but I wouldn't use it for evolving products that need to change often. It's a lot easier to debug a monolith app than to debug 10 different services in the cloud.
In my opinion it's only worth investing time and money into AWS if it solves your actual problems (scalability, reliability, missing functionality). AWS only for the sake of AWS may end up with unexpectedly huge bills and headaches from setting it all up correctly . I usually go with DigitalOcean or ScaleWay (nothing beats 1.8€/month for the lowest-end VM). Building your project with k8s in mind might help with switching the cloud provider later after you grow.
Solving imaginary scaling problems is fun, of course, but for me it shift my focus away from the actual products I build, so I chose much simpler options first. Your case and products might be different, of course.
I prefer using Firebase/Heroku/Netlify/Vercel to get started. They all have great free quota and they are usually less complicated. It surely depends on your use-case and the amount of AWS services you'd need.
I've had great experience with the Hetzner Cloud aswell for actual virtual machines.
Please sign in to leave a comment.