Hacker News new | ask | show | jobs
by throuwout1234 1547 days ago
>You might be thinking: isn’t that expensive? Won’t we be paying hundreds of dollars to AWS? Nope—not with serverless solutions! The genuinely serverless solutions are all pay per usage, so if your AWS account has zero activity, for example through the night and weekend when engineers aren’t working, then you won’t pay a dime. There are a few exceptions to this, such as S3 storage, DynamoDB storage, RDS storage, Route53 hosted zone, etc. costs, but they tend to be minimal.

>For example, Plain’s January bill for our 7 developer accounts was a total of $150—pennies compared to the developer velocity we gain by everyone having their clone of production. Typically, the largest cost for each developer is our relational database: Amazon Aurora Serverless v1 PostgreSQL. It automatically scales up when it receives requests during development and down to zero after 30 minutes of inactivity.

I don't understand this at all. If "7 full production instance cost $150" then your application is tiny and you don't need 15 AWS services. The storage costs alone should far exceed that for large application. If a $150 production instance is "scale" then we're lost as an industry. If you application is this tiny, Just. Use. A. Server.

5 comments

> If "7 full production instance cost $150" then your application is tiny and you don't need 15 AWS services.

Did you miss that this is oriented around serverless? It doesn’t mean their application is tiny, it just means they can scale down a long way. Which, given that they are using serverless, is unsurprising.

Sure, if you are talking about dedicated EC2 instances or something, then a $150 “production” instance is tiny. But that’s not the situation here. $150 for developer load on serverless doesn’t correspond to $150 for a full production service.

>Did you miss that this is oriented around serverless? It doesn’t mean their application is tiny, it just means they can scale down a long way. Which, given that they are using serverless, is unsurprising.

DynamoDB and Amazon Aurora are serverless storage solutions but you still pay for the data you store. It is highly surprising their total production storage cost is less than ~$21. For reference, a few terabytes of data in DynamoDB costs thousands a month.

> few terabytes of data in DynamoDB costs thousands a month

yeah we found out this the hard way. have you found an alterative to this? seems for us the biggest uncertainty is storage space since it is user generated and we have "unlimited" guarantee that we unfortunately need to grandfather.

also curious nobody is talking about this for many small bootstrapped developers, this would be a no go.

the only alternative I can think of is a hetzner dedicated box or a fleet of vps from DO or Vultr with S3 compatible API (not sure if such solution exists ).

Where did they say their production storage costs $21? The $150 bill is for their developer accounts.
> It is highly surprising their total production storage cost is less than ~$21.

You misread. They didn’t say this.

It's still a meaningless number, because there's no reasonable way to map this to production cost.
Why does that make it meaningless? They were describing how much it costs to provision a full environment for each developer. That’s a meaningful number by itself.
have you considered case when developers need to not only clone just AWS infrastructure but storage as pre-requisite? In this scenario you would multiply your storage costs by the total number of developers.

This is a monstrous misassumption by Plain. For instance when I was trying to work with Bitcoin chain data, I would be looking at close to 1TB worth of data that I needed each time to replicate the complete application and the bill was something like $500 just to keep it in EBS.

So with 10 developers, we would be essentially paying somebody's salary and I wonder if the problems listed in this article is so critical that it would be worth that much.

If you do plan to be hosting 1TB of data in EBS for each developer then yes, this approach is probably not right for you and you should adapt it! It's not a one-size fits all approach.
The vast majority of developers don’t need a 1TB working set of data. This isn’t a “monstrous misassumption”, it’s a perfectly reasonable assumption for typical cases.

Also, it doesn’t cost anywhere near $500 to keep 1TB in EBS.

Hey, author of the post here. Apologies if the wording wasn't clear, but these are our developer AWS accounts, i.e. not production workloads. I was just highlighting that everyone runs a copy of the production infrastructure and since serverless is "pay for usage" we mostly only pay for when developers are firing in the handful of requests they do during development.

None of our engineers have so far managed to generate gigabytes of data or millions of requests like our production account :)

I think he is saying that each developer have their own environment with full production like architecture. There are benefits to having each developer running in their own sandbox, with full freedom to deploy breaking changes at any time. Besides storage, costs are usually 100% variable based on use. Each developer may not have a full replica of production data, as with TBs of data, storage cost might get expensive. Many serverless designs are impervious to the size of dataset, with sharding and auto-scaling, so the performance and scalability risks of running a subset of production data during development are typically minimal.
I'm confused as well. How can you run an RDS instance alone for 7 people for $150 a month? Let alone the other infra? You probably need a VPC on each account, with a NAT Gateway, which easily costs $20/month or so.
VPCs are free. NAT gateway is unnecessary. It costs about twelve dollars to run serverless PostgreSQL for a month, assuming a forty hour workweek.
They mentioned that most of the services are on-demand pricing, that’s why it’s cheap for a personal instance. Production presumably costs much more due to much higher usage.