Remix.run Logo
troupo 6 days ago

> you get alot of stuff inside that $200/mo EC2 device. The product is more than the VM.

What are you getting, and do you need it?

throwaway7783 5 days ago | parent [-]

Probably not for $200/mo EC2, but AWS/GCP in general

* Centralized logging, log search, log based alerting

* Secrets manager

* Managed kubernetes

* Object store

* Managed load balancers

* Database HA

* Cache solutions

... Can I run all these by myself? Sure. But I'm not in this business. I just want to write software and run that.

And yes, I have needed most of this from day 1 for my startup.

For a personal toy project, or when you reach a certain scale, it may makes sense to go the other way. U

eska 5 days ago | parent | next [-]

Now imagine your solution is not on a distributed system and go through that list. Centralized logging? There is nothing to centralized. Secrets management? There are no secrets to be constantly distributed to various machines on a network. Load balancing? In practice most people for most work don’t use it because of actually outgrowing hardware, but because they have to provision to shared hardware without exclusivity. Caching? Distributed systems create latency that doesn’t need to exist at all, reliability issues that have to be avoided, thundering herd issues that you would otherwise not have, etc.

So while there are areas where you need to introduce distributed systems, this repeated disparaging comment of “toy hobby projects” makes me distrust your judgement heavily. I have replaced many such installations by actually delivering (grand distributed designs often don’t fully deliver), reducing costs, dramatically improving performance, and most importantly reducing complexity by magnitudes.

bbarnett 5 days ago | parent | next [-]

Not to mention scaling. Most clients I know never, ever have scaled once. Ever. Or if they do, it's to save money.

One server means you can handle the equiv of 100+ AWS instances. And if you're into that turf, then having a rack of servers saves even more.

Big corp is pulling back from the cloud for a reason.

throwaway7783 4 days ago | parent [-]

I mentioned this in an earlier comment. It is dumb to be on the cloud at a large enough scale.

viraptor 5 days ago | parent | prev | next [-]

> Centralized logging? There is nothing to centralized.

It's still useful to have the various services, background jobs, system events, etc. in one indexed place which can also manage retention and alerting. And ideally in a place reachable even if the main service goes down. I've got centralised logging on a small homelab server with a few services on it and it's worth the effort.

> Load balancing? In practice most people for most work don’t use it because of actually outgrowing hardware, but because they have to provision to shared hardware without exclusivity.

Depending on how much you lose in case of downtime, you may want at least 2x of hardware for redundancy and that means some kind of fancy routing (whether it's LB, shared IP, or something else)

> Secrets management? There are no secrets to be constantly distributed to various machines on a network.

Typically businesses grow to more than one service. For example I've got a slack webhook in 3 services in a small company and I want to update it in one place. (+ many other credentials)

> Caching? Distributed systems create latency that doesn’t need to exist at all

This doesn't solve the need for caching results of larger operations. It doesn't matter how much latency you have or not, you still don't want that rarely-changing 1sec long query to run on every request. Caching is rarely only about network latency.

Spooky23 5 days ago | parent | prev | next [-]

It sounds like you make a living doing stuff that has an incredibly small, ninja-like team, has a very low change rate, or is something that nobody really cares about. Things like RPO/RTO, multi-tenancy, logging, etc don't matter.

That's amazing. I wish I could do the same.

Unfortunately, I cannot run my business on a single server in a cage somewhere for a multitude of reasons. So I use AWS, a couple of colos and SaaS providers to deliver reliable services to my customers. Note I'm not a dogmatic AWS advocate, I seek out the best value -- I can't do what I do in AWS without alot of capital spend on firewalls and storage appliances, as well as the network infrastructure and people required to make those work.

throwaway7783 4 days ago | parent [-]

Exactly. I don't quite understand how people say you just need a box. It certainly is much higher performant than a cloud VM, but that is not the only thing there is to run a software well. It all adds up bit by bit. It surely seems to be the way to go at some scale (or no customers who care).

throwaway7783 4 days ago | parent | prev [-]

Maybe I'm dumb. I am not even taking about distributed systems here. I'm taking about basic high availability configuration. Two web servers, two (or three) db server instances for HA. I have had paying enterprise customers from day 1, and I don't want them screaming at me for systems going down.

And as soon as you have two of anything, all the above start mattering.

If none of this actually is an issue for you and your customers, I'll say your are very lucky.

doganugurlu 5 days ago | parent | prev | next [-]

You need database HA and load balancers on day 1?

You must be doing truly a lot of growth prior to building. Or perhaps insisting on tiny VMs for your loads?

swiftcoder 5 days ago | parent | next [-]

> Or perhaps insisting on tiny VMs for your loads?

This happens way too often. Early-stage startups that build everything on the AWS free tier (t2.micro only!), and then when the time comes they scale everything horizontally

throwaway7783 4 days ago | parent [-]

I'll repeat what I said above. It's for availability (aka I don't want my customers screaming at me if the machine goes down). And no , scaling out was not our first solution, scaling up was. I have considered going bare metal so many times, but the number of things we need to build/manage by ourselves to function is too much right now.

Hopefully when we can afford to do it, we will.

throwaway7783 4 days ago | parent | prev [-]

HA is for availability. I don't want downtime for my enterprise customers. Are your customers okay with downtime? And as soon as you have more than one nodes, you need some kind of a load balancer in the front.

rcxdude 3 days ago | parent [-]

In practice, until you're at a certain scale, software bugs are more of a threat to your availability than hardware failures or maintenance downtime, and the cloud does nothing for you there (in fact, the additional complexity is likely to make it worse). Modern hardware is pretty reliable, more so than a given ec2 instance, for example.

throwaway7783 2 days ago | parent [-]

Often, software bugs cause issues with machines (uncontrolled logging overwhelming disk space and killing everything, instead of objectstore absorbing it, or a memory bug that kills the process over a few days and needing manual or custom monitoring scripts instead of k8s handling this until its root caused, and so on)

runako 5 days ago | parent | prev | next [-]

> Centralized logging, log search, log based alerting

Do people really use the bare CloudWatch logs as an answer for log search? I find it terrible and pretty much always recommend something like DataDog or Splunk or New Relic.

throwaway7783 4 days ago | parent [-]

we are on GCP. Logs Explorer on GCP is pretty good

troupo 5 days ago | parent | prev [-]

> For a personal toy project,

which in reality is any project under a few hundred thousand users

throwaway7783 4 days ago | parent [-]

.. who are okay with services going down here and there

troupo 4 days ago | parent [-]

Which is the vast majority of services.

throwaway7783 4 days ago | parent [-]

Okay. If the premise is "you don't have to worry about downtimes and only need to serve a few hundred thousand users and no data intensive use cases", then I guess you can do whatever and it'll still be okay.