←back to thread

797 points burnerbob | 6 comments | | HN request time: 1.254s | source | bottom
Show context
aledalgrande ◴[] No.36809594[source]
Wondering if for small/bootstrapped projects there's any alternative people suggest? Fly has a nice UX and accessible prices, but it's unstable at best. I use the big clouds at work, but for personal they are $$$. Also I want to keep devops tending asymptotically to zero.
replies(6): >>36809634 #>>36809757 #>>36809923 #>>36809986 #>>36810231 #>>36817346 #
1. q7xvh97o2pDhNrh ◴[] No.36809923[source]
Maybe just pick up 3 chonky EC2 boxes, set up iptables on each of them, have each one run a containerized version of your code that gets built and deployed from CI every time you push to Github, slap an ALB in front of it all, and call it a day?

And if you need state, then spin up a little RDS with your favorite SQL flavor of choice?

The CI deploy script could even bake in little health-checks so you can do rolling deploys with zero downtime. Depending on how fancy you wanted to get with your shell scripting, you could probably even make 1 of your 3 boxes a canary without too much trouble.

I'm realizing I haven't thought about this in a long time, since nowadays I just get to use the fancy stuff at work. Kind of a fun thought experiment!

replies(1): >>36810004 #
2. aledalgrande ◴[] No.36810004[source]
The system you describe is quite the monthly bill, off the top of my head.
replies(2): >>36810166 #>>36810401 #
3. justinclift ◴[] No.36810166[source]
You can do the same thing using Hetzner dedicated hosts fairly cheaply:

https://www.hetzner.com/dedicated-rootserver/matrix-ax

4. q7xvh97o2pDhNrh ◴[] No.36810401[source]
I admit I didn't run the numbers before posting that. But you got me curious, so I went ahead and did it now...

Render.com looks like [1] their "$0 + compute costs" plan would work out to:

  ∙ $25/mo for a single "Web Services" box of 1 CPU and 2GB RAM
  ∙ $20/mo for a single "PostgreSQL" box of 1 GB RAM, 1 CPU, and 16GB SSD
  ∙ TOTAL: $45/mo, and you're assuming they'll magically give you zero-downtime
Those are grim numbers, performance-wise, but let's use them as the standard and see what it'd cost in the scrappy AWS architecture I threw together in a few minutes:

  ∙ $12.10/mo for a single t4g.small box, which is actually 2 vCPU and 2GB RAM [2]
  ∙ 3x redundancy on that brings you up to $36.30/mo for compute
  ∙ $16.20/mo for an ALB [3]
  ∙ $11.52/mo for a single db.t4g.micro PostgreSQL box, plus $1.84/mo for the equivalent 16GB of storage [4]
  ∙ TOTAL: $65.86/mo for substantially more CPU, redundancy, and control, or...
  ∙ TOTAL: $41.66/mo for substantially more CPU and control over your infra, if you're willing to drop the redundancy
So it looks like it's pretty comparable in terms of raw dollars.

I'll admit there's a little more "devops" overhead with the AWS setup. Though I think it's not as big of a deal as people make it out to be — it's basically an afternoon of Terraforming, and you'd probably spend an equal or greater amount of time digging through Render's docs to understand their bespoke platform anyway.

(Also, once you contemplate bulk pricing for the underlying commodities, it's easy to see how companies like Render make a healthy margin, even on their low-end offerings.)

Anyway, I guess I've nerd-sniped myself, so I'd better stop here. But that was a fun analysis!

[1] https://render.com/pricing#compute

[2] https://aws.amazon.com/ec2/pricing/on-demand/

[3] https://aws.amazon.com/elasticloadbalancing/pricing/

[4] https://aws.amazon.com/rds/postgresql/pricing/?pg=pr&loc=3

replies(1): >>36810971 #
5. aledalgrande ◴[] No.36810971{3}[source]
Thanks for the analysis. I think you're still underestimating costs (e.g. didn't count bandwith, no AZ standby for your database, or backups etc.) and time spent, not only in the setup but especially in maintenance (security fixes, AWS agent updates, OS updates, package updates, figuring out why an instance ran out of disk etc. etc.) Not counting you have to setup and maintain your deployment system which can range from scripts to K8s.

Also I have used Terraform to set up quite a few resources and it's only overhead in a small project.

I just wanna git push and see my changes published a minute later. I don't think Render is gonna take more than 10 mins to figure out https://render.com/docs/deploy-rails-sidekiq

replies(1): >>36811278 #
6. jumploops ◴[] No.36811278{4}[source]
Spun up a new project and was debating between AWS and Render.

I’ve been burned one too many times by ElasticBeanstalk so I bit the bullet and went with Render… and had everything plus PR deploys working in under an hour. Very happy so far.