Most active commenters
  • manigandham(8)
  • brundolf(7)
  • mrkurt(7)
  • newaccount74(6)
  • (3)

←back to thread

528 points sealeck | 79 comments | | HN request time: 3.118s | source | bottom
1. brundolf ◴[] No.31391105[source]
The only thing I don't like is their usage-based pricing. On Heroku I could pay $7 a month and know I'd never be charged more than that. I'm sure when you're scaling a service it's fine - maybe even better - to do it on a sliding scale. But for a fire-and-forget blog site, I don't want to have to worry about stuff like that.
replies(7): >>31391168 #>>31391192 #>>31391253 #>>31391362 #>>31392452 #>>31392496 #>>31395938 #
2. natly ◴[] No.31391168[source]
Just use a static hoster for a blog site (like netlify or even github pages).
replies(2): >>31391188 #>>31391191 #
3. ushakov ◴[] No.31391188[source]
what if they want to use a CMS?
replies(2): >>31391280 #>>31393740 #
4. brundolf ◴[] No.31391191[source]
I've got a small amount of dynamic content
replies(2): >>31391257 #>>31392707 #
5. mrkurt ◴[] No.31391192[source]
This is a problem. And a bit of an own goal on our part.

I hate services that don't put a price on things like bandwidth (because there's always a price!). So we priced bandwidth and made it transparent. You can put an app on Fly.io and server petabytes of data every month, if you want. We'll never complain that you're serving the wrong content type.

But the reality is – having an unlimited bandwidth promise is perfect for for a fire and forget blog site. We're not doing ourselves any favors with scary pricing for that kind of app.

replies(8): >>31391245 #>>31391399 #>>31391400 #>>31391442 #>>31393115 #>>31393823 #>>31394011 #>>31395406 #
6. brundolf ◴[] No.31391245[source]
I think it's also fine to just say "that's not our primary target market". Just thought it was worth pointing out as a (perhaps small?) segment of Heroku's market, if we're comparing apples to apples
replies(1): >>31391293 #
7. sanjayio ◴[] No.31391253[source]
Big concern of mine as well. They take your CC for usage, which is reasonable given bad actors, but then I can’t put a limit on my monthly charges.
replies(1): >>31393150 #
8. skrtskrt ◴[] No.31391257{3}[source]
DigitalOcean App Platform has a $5/month flat rate for dynamic stuff on top of two static sites hosted for free...

if something goes crazy and you end up using a wild amount of outbound data, it looks like the next jump up is only to $12

replies(2): >>31391652 #>>31392143 #
9. pkalinowski ◴[] No.31391280{3}[source]
https://forestry.io could help
replies(1): >>31391329 #
10. mrkurt ◴[] No.31391293{3}[source]
Oh but you are! And it won't even cost you anything. I'd bet money your blog fits in our free tier, we just don't (a) tell you that and (b) solve the "what happens if there's a bandwidth burst" problem.
replies(1): >>31391323 #
11. brundolf ◴[] No.31391323{4}[source]
Yeah, I also supposed that it would probably mostly fit in the free tier, which is great. But I'd lose a small amount of sleep over the possibility of getting a huge bandwidth burst (DDOS or otherwise) that goes straight to my bank account

A feature that could help would be giving people the option to set a cost limit, where if their site surpasses that limit in a given month you just pull it offline instead of charging more money. That's what I'd want for my blog site, and I've heard others request such a feature from other cloud providers

12. ◴[] No.31391329{4}[source]
13. detaro ◴[] No.31391362[source]
That's also something that has kept me with VPS hosts over cloudy things for hobby stuff: a) included traffic amount is vastly higher there, leading to way lower cost per GB if you need it and b) they usually do just cap you if you exceed traffic and don't opt-in to pay more.
14. ignoramous ◴[] No.31391399[source]
> We'll never complain that you're serving the wrong content type.

Cloudflare shouldn't restrict media (video, images, and audio) from its unlimited bandwidth promise for Workers and R2 (though, ToS doesn't yet reflect that).

https://news.ycombinator.com/item?id=28682885

> But the reality is – having an unlimited bandwidth promise is perfect for for a fire and forget blog site

I think, an auto flyctl pause -a <myapp> when myapp exceeds $x in charges (with an auto-resume when the billing rolls over) may serve as a viable interim solution. May be this is already possible with fly.io's graphql api?

replies(1): >>31394032 #
15. EnKopVand ◴[] No.31391400[source]
I don’t want an unlimited bandwidth promise, I want a cap that I know can never be exceeded. I mean, I use Azure professionally and one of the key reasons I don’t use it to host my own stuff is exactly because it could potentially become very expensive. I’d rather have my own stuff shut down until I decide what I want to do with it.

Things like alerts are fine, professionally, but not for things like running a small app, blog or whatever, that you’re not sure where is heading.

I don’t think anything I’ve build on my own time has ever ended up breaking my bank, but signing up my credit card is a risk I’m never going to take, and I’m fairly certain I’m not alone in that. Of course I have no idea if there are enough of us to make small scale fixed prices products profitable at scale.

replies(4): >>31391451 #>>31393636 #>>31393664 #>>31393742 #
16. bsder ◴[] No.31391442[source]
> And a bit of an own goal on our part.

More than a bit.

Simply give people the option to put a charge limit and let the app be offline when that limit gets hit. Don't make it the default, but do allow people to do it.

This would resolve 99% of the fear people have. And most people wouldn't set the limit anyway. However, your knowledgable people might set it, and those are the ones you're most trying to attract.

17. mrkurt ◴[] No.31391451{3}[source]
We actually launched with that feature: https://news.ycombinator.com/item?id=22616857

No one took us up on it. What we found is that the majority of people want their stuff to stay up, and the right UX for "shut it down so you don't get billed" is not obvious.

We ended up implementing prepayment instead. If you sign up and buy $25 in credit, we'll just suspend your apps when the credit runs out.

Bandwidth is weird because we have to pay for it (as does every other provider). We aren't yet in a position where we can just make it free without limits. Maybe next year. :)

replies(4): >>31391510 #>>31392012 #>>31393684 #>>31395535 #
18. brundolf ◴[] No.31391510{4}[source]
I can't speak for your whole market, but I know for me the pre-loading flow sounds really clunky because I'd have to go and manually add funds each month (right?)

It's understandable if your usage data showed the fee-capping feature just wasn't popular enough to be worth maintaining, though that would surprise me based on this thread (but possibly HN just isn't representative of the whole market)

replies(1): >>31391926 #
19. ◴[] No.31391652{4}[source]
20. ceejayoz ◴[] No.31391926{5}[source]
I’d be happy with a “refill if under $10 up to $x/month”. If they can cut off when you’re out of credit they can presumably do it for other criteria, too.
21. the_duke ◴[] No.31392012{4}[source]
I'm actually very curious: why is bandwidth so much cheaper on more traditional VPS or dedicated server hosts like Hetzner ? This extends to their somewhat new-ish cloud product, where you get 20TB traffic included - even on a tiny instance. And it's 1 Euro per TB after that. [1]

Do they just decide to not profit from bandwidth or are they doing something special that allows them to be so cheap?

[1] https://docs.hetzner.com/robot/general/traffic/

replies(3): >>31392183 #>>31392364 #>>31393464 #
22. Mo3 ◴[] No.31392143{4}[source]
Depends on what you would consider a "wild amount".

Their app platforms' bandwidth pricing is pretty painful at 0.10$/GB. With these prices and considering the app platform lacks functionality like multi-regional droplets or VPC integration, they are a subpar choice even compared to Firebase or Amplify.

replies(1): >>31392591 #
23. mrkurt ◴[] No.31392183{5}[source]
There are three ways to manage bandwidth prices:

1. Put servers where bandwidth is cheap (not Sydney, for example)

2. Constrain throughput per server

3. Buy from cheap transit providers like Cogent

Hetzner does all three. Bandwidth in the US/EU is very cheap. They meter total throughput on their services. And they use cheap providers. None of these are bad choices, just different than ours.

Our product has multiple layers, too. When you connect to a Fly app, you hit our edge, then traffic goes to a VM that's probably in another region. When you hit a hetzner server, there are no intermediate hops.

We usually pay that three times as data moves from customer VMs to our edges to end users (out from our edge to worker vm, out from worker vm to our edge, out from our edge to end user). Or 10x, in some cases, if data moves from Virginia to Chennai to an end user.

We pay $0.005/GB in the US and $0.9/GB in Chennai. You can see how this might add up. :)

replies(3): >>31393547 #>>31396647 #>>31402854 #
24. chillfox ◴[] No.31392364{5}[source]
I would love to hear the answer to this as well.

My guess is that they either don't profit from bandwidth or they have peering agreements from back when the internet was young.

25. augstein ◴[] No.31392452[source]
Does that mean if my webapps get DOSed or something like that, and I can‘t react very quickly, I could face a bill potentially in the thousands of dollars?

Currently considering switching from Heroku, but fixed pricing is a must. I‘d rather they shut down my apps temporality in case something is out of control, then get broke ;-)

Any other recommendations besides fly.io?

replies(1): >>31392497 #
26. franciscop ◴[] No.31392496[source]
This is the reason I use Heroku and would never on a personal level use some of the bigger solutions, or apparently Fly.io. As an individual and despite being generally careful, I just cannot have a tiny risk of having a $100k+ accidental bill. I'd rather my project goes down if there's a DDOS attack, or if I made a typo and created an infinite loop. If I take some of my hobby projects to the "next level", it'd be def behind a LTD company.
replies(2): >>31393356 #>>31394114 #
27. mrkurt ◴[] No.31392497[source]
No, we don't bill people for traffic from attacks. We also waive fees from big, legitimate bursts. The intent of our bandwidth pricing is to allow high usage, sustained bandwidth workloads. It's not to sneak one over on you.
replies(2): >>31392559 #>>31395412 #
28. hota_mazi ◴[] No.31392559{3}[source]
How about large traffic from a legitimate spike (e.g. front page of reddit or HN)?

You have enumerated a lot of alternatives so far (prepaying, waiving attack costs) but you still haven't addressed the number one scenario that everybody has been asking about, and which was the reason why Heroku was such a hit: do you offer a flat fee which, if exceeded, simply shuts down the app until the next billing cycle?

replies(1): >>31392588 #
29. mrkurt ◴[] No.31392588{4}[source]
"We also waive fees from big, legitimate bursts."
replies(1): >>31392784 #
30. xena ◴[] No.31392591{5}[source]
Author of the post here. Fun fact: if I paid that for how much traffic I'm getting, this post would cost me $5 for being on the front page of hacker news for a few hours.
31. tnzk ◴[] No.31392707{3}[source]
Most of static site hosts nowadays provide (serverless) functions for you to do something on server side.
32. jen20 ◴[] No.31392784{5}[source]
Contractually?
replies(1): >>31393345 #
33. ryantgtg ◴[] No.31393115[source]
I might be in the minority here, but I don’t have the slightest clue what my monthly bandwidth currently is on heroku, and so I can’t estimate what Fly will cost.

Um, how do I find this out? Preferably historical usage.

replies(1): >>31395363 #
34. jamesgreenleaf ◴[] No.31393150[source]
I use privacy.com for things like this. Make as many CCs as you want with whatever limits you want.
replies(1): >>31393848 #
35. hota_mazi ◴[] No.31393345{6}[source]
Great question. I want to know the answer to it.

I apologize for being skeptical but the wording in the contract seems to be extremely handwavy and they don't give me any confidence that if my bill goes from $4 to $200 that month because I made it to the front page of reddit, my bandwidth will magically be waived.

Right now, I feel 100% sure that my credit card would get charged.

replies(1): >>31395752 #
36. jshen ◴[] No.31393356[source]
Have you looked at render? Been using it for my hobby sites and am very happy with it.
replies(1): >>31409316 #
37. getcrunk ◴[] No.31393464{5}[source]
transit pricing can still be had readily for ~.10 cents per megabit. that's per second mind you. so you pay for capacity not for bits transferred. {$cloudprovider} makes a sweet margin by upselling that to you in terms of bytes transferred. CF wrote a post explaining it [1]

Obviously, you would need to manage servers,colo,network and keep it up on your own, or pay for it. And cloud providers offer alot of value as well. but if you are at the right scale you can diy it (in-house ops/network team) you can save ALOT of money.

1 - https://blog.cloudflare.com/aws-egregious-egress/

38. boundlessdreamz ◴[] No.31393547{6}[source]
The chennai pricing in incredibly steep. It's weird that bandwidth prices for end-users in India is among the cheapest (if not the cheapest) in the world but enterprise customers are paying so much.
replies(1): >>31394186 #
39. manigandham ◴[] No.31393636{3}[source]
This topic has been discussed many times. There's no easy solution to what happens after the cap is exceeded - should the vendor delete everything? - which is why so many of them don't bother.

And for customers, it's far easier to negotiate billing disputes then to try and recover from an account deletion because of spending caps (and there have been plenty of examples of companies shutting down because of such a mistake here).

replies(3): >>31395003 #>>31395377 #>>31399802 #
40. oxff ◴[] No.31393664{3}[source]
Yeah, if I'm going to be signing up with my credit card I'll just log back into my AWS account since I have already pricing monitoring setup for that stuff. I definitely don't want to worry about it (surprise costs) for scratch / hobby stuff, let alone monitor bills for it.

With Heroku it is stupidly simple to get things going, no credit cards, "fire and forget". Works great for hobby projects, and examples you want to show.

41. raytracer ◴[] No.31393684{4}[source]
Having a billing limit is important to me as I don't want to risk unbounded costs for personal projects.

> we'll just suspend your apps when the credit runs out.

This sounds great! I've looked at Fly.io before but didn't realise this was a thing so didn't go past looking. I'll definitely give Fly.io a test run now. :)

42. andrethegiant ◴[] No.31393740{3}[source]
https://www.netlifycms.org
43. FBISurveillance ◴[] No.31393742{3}[source]
This. I've had a very real situation with DataDog: I've accidentally created a Synthetics test (and forgot about it) on a test account and incurred $5k+ bill at end of month. Zero notice or anything.

I ended up swallowing the bill but will not be using them again since this is plain scary.

Edit: funny thing - to add insult to injury, I've started to hear from their sales people on "my growth plans", even though I've had a support ticket hoping to resolve this to no avail.

replies(1): >>31393843 #
44. JohnBooty ◴[] No.31393823[source]
I don't want unlimited bandwidth (I mean, it'd be nice - but I realize it costs money) -- I want predictable pricing and spending caps for my personal projects.

If I can't have that, then I just can't take the risk of my site getting hammered (by attackers, getting linked on HN, whatever) and racking up some kind of bill I can't pay. I realize the chances of that are small but that's scary.

I realize that, obviously, "stay up at all costs" is what a business needs and that's where the money is. Fly.io won't get rich off of personal projects. But, I do think they serve to get developers onto the platform.

Your bandwidth allocations and rates seem very fair and generous, btw. I do really want to check out your platform.

45. viraptor ◴[] No.31393843{4}[source]
Datadog is one of the worst offenders in this one. It's like they actually want to get you into that situation. Wanna see your prepaid capacity? Lol, email our support. Wanna use front-end monitoring? Here's an example with the defaults hidden. (Oh btw the defaults enable all the features and set the sampling to 100%) How do I turn on sampling? Don't worry, limitless tracing is the way, we'll figure out how to filter your traces. (Oh btw you'll still pay for ingestion, we're just omitting it here)
46. ◴[] No.31393848{3}[source]
47. phamilton ◴[] No.31394011[source]
When I worked in adtech (Brightroll) we hosted a segment mapping server on heroku. All it did was look at a url query for the target url, append a value from a cookie to it, and 302 to that url. The value in adtech is that I can tell you which segment a user is in by taking the data in my cookie and appending it to your url.

We launched it on Heroku using Nodejs and sent billions of requests a day to it. The thing ran on like a few dozen dynos, but it was responsible for like 20-30% of all of Heroku's bandwidth. Fantastic value for us. Immediate headache for Heroku.

48. TJSomething ◴[] No.31394032{3}[source]
Yup. Not too hard. This outputs the current bandwidth in gigabytes when you pass your app name.

  #!/usr/bin/env bash

  set -euo pipefail

  QUERY=$(cat <<EOF
  {
      "variables":{
          "app":"$1",
          "start":"$(date +%Y-%m)",
          "end":"$(date -d "$(date +%Y%m01) +1 month -1 day" +%Y-%m-%d)"
      },
      "query":"query (\$app: String!, \$start: ISO8601DateTime!, \$end: ISO8601DateTime!) { app(name: \$app) { organization { billables(startDate: \$start, endDate: \$end) { edges { node { app { id } category quantity } } } } } } "
  }
  EOF
  )

  curl https://api.fly.io/graphql \
      -H "Authorization: Bearer $(fly auth token)" \
      -H 'content-type: application/json' \
      --compressed \
      -X POST \
      --data-raw "$QUERY" \
      --silent |
      jq '[.data.app.organization.billables.edges[].node | select(.app.id == "'"$1"'" and .category == "data_out") | .quantity] | add'
49. crummy ◴[] No.31394114[source]
Is it possible to rack up a 100k+ bill with personal projects on platforms like fly.io? Like some absolutely massive DDOS or something?
replies(1): >>31395208 #
50. donavanm ◴[] No.31394186{7}[source]
Jio and friends are (were?) subsidizing connectivity and trying to drive growth to make it up later/elsewhere like payments and services.

Service providers come to the opposite problem. Local infra sucks, the market is full of incumbents, and india is generally protective of those markets.

Very similar dynamics with china as well.

51. xchaotic ◴[] No.31395003{4}[source]
Imo it’s really simple, actually. Stop the service and delete after the next billing cycle. Price that in for regular price of the service.
replies(1): >>31395236 #
52. xchaotic ◴[] No.31395208{3}[source]
It could also be a simple user error- there’s been stories on HN on how people racked up massive bills for example because CI was running continuously etc.
53. manigandham ◴[] No.31395236{5}[source]
That's limited to free tiers that usually deactivate or delete if there's too much usage.

Anything with production usage and pay-as-you-go pricing means data at rest still costs money - and requires deleting to avoid accruing new charges. Do you want your databases and volumes and object storage deleted when your app stops?

And if this was offered then there would be a whole new class of mistakes leading to lost data. Like I said, billing is easier to negotiate than deleted accounts.

replies(2): >>31399339 #>>31399875 #
54. flurdy ◴[] No.31395363{3}[source]
I only found out my bandwidth after putting cloudflare infront of my apps as they email a monthly bandwidth saved report.
55. imtringued ◴[] No.31395377{4}[source]
It's very easy to solve this problem. Just let people set a cap on the things with usage billing:

"I want to cap the amount of data I store to 50GB and the amount of traffic I serve to 1000GB"

Of course there is an obvious problem with this, the pricing structure would become transparent and you don't want that as a cloud provider. You want your customer to just pay his bills and not even know why it costs this much.

replies(1): >>31414971 #
56. weird-eye-issue ◴[] No.31395406[source]
Do you hate Cloudflare?
57. imtringued ◴[] No.31395412{3}[source]
How about you just offer the option to throttle free instances once they run out free bandwidth? That way your free tier will be "safe".
58. Kinrany ◴[] No.31395535{4}[source]
Do you also have a monthly prepayment subscription where the balance is topped up to a fixed (ideally, optionally calculated automatically via web UI by the user)? Naively that's what I'd expect the solution to look like.
59. sodality2 ◴[] No.31395752{7}[source]
Contractually? I doubt it. But they have refunded many, many people on their forums after they report accidental charges. Whether they continue is a different story, but I feel safe using it and certain that I won't be overcharged.

To be clear a bandwidth limit would be awesome! And the pricing may not be for everyone. However there is a large amount of leeway as evidenced by the community forum posts.

replies(1): >>31397407 #
60. marcus_cemes ◴[] No.31395938[source]
I've actually been deterred from Heroku because of the pricing. I find $7/month too much for a website or a blog, especially as I like starting new projects. There may be months where nobody visits my sites. I pay 2.49 euros/month for a VPS in Germany with 20 TB of free monthly bandwidth, 2GB RAM, 20 GB of disk space, no brainer. It's just a bit more manual.
61. mrkurt ◴[] No.31396647{6}[source]
$0.9 is a typo, I meant $0.09/GB in Chennai. We're not taking that much of a haircut.
62. jen20 ◴[] No.31397407{8}[source]
Good will does not feel like a good way to scale this. For a business that might be ok, but I’m highly unlikely to recommend to a business something I haven’t personally investigated, and I’m not writing cheques whose value is dependent on the good will of a startup.

I don’t understand why cloud providers will not accommodate this basic “prepay to X and allow me to use the credit” model.

replies(1): >>31402598 #
63. brundolf ◴[] No.31399339{6}[source]
> billing is easier to negotiate than deleted accounts

Maybe, but I'd still like the option. My blog site is stateless so I couldn't care less if the service got deleted

64. newaccount74 ◴[] No.31399802{4}[source]
It's pretty simple: Ask people when signing up if they want to set a spending limit or not. If they do, return HTTP 500 as soon as the spending cap is reached. If it's for storage, return a quota exceeded error. Obviously the vendor shouldn't delete data, that would be stupid.

A lot of people try to get hobby users on a platform as a form of PR -- if you don't have spending caps, you are probably going to scare a lot of them away.

And I've never heard a company shutting down because they exceeded a limit -- I've only heard of people being surprised by unintended extremely high bills.

replies(1): >>31415018 #
65. newaccount74 ◴[] No.31399875{6}[source]
The high charges are almost never storage costs, its almost always processing or bandwidth.

And storage costs are simple to predict -- as soon as you see the cap would be exceeded, stop accepting new data.

replies(1): >>31406957 #
66. sodality2 ◴[] No.31402598{9}[source]
>I don’t understand why cloud providers will not accommodate this basic “prepay to X and allow me to use the credit” model.

They actually do:

> You can configure fly.io apps with a max monthly budget, we'll suspend them when they hit that budget, and then re-enable them at the beginning of the next month.

From their Launch HN: https://news.ycombinator.com/item?id=22616857

replies(1): >>31404653 #
67. snark42 ◴[] No.31402854{6}[source]
You forgot play the peering game which can lead to substantially cheaper bandwidth when you connect to enough Tier1/2 ISPs. I think Hetzner does this some as well.
68. brundolf ◴[] No.31404653{10}[source]
According to this they got rid of the feature at some point: https://news.ycombinator.com/item?id=31391451
69. manigandham ◴[] No.31406957{7}[source]
Overages are overages, whether its 1 penny or thousands of dollars. Data also still costs money per time and can be unpredictable.

This kind of pacing and billing buffer is an immense amount of complexity at scale for very little benefit (even if an individual user might like it).

replies(1): >>31409955 #
70. joriskok1 ◴[] No.31409316{3}[source]
I also really like render, very easy to use.
71. newaccount74 ◴[] No.31409955{8}[source]
Can be unpredictable? How would data storage costs increase if you stopped accepting new data?

SaaS companies manage to pull of ridiculously complicated things, but coming up with a billing scheme that does fuck over the customer is asking too much?

The simple truth is that usage based pricing is designed to be unpredictable, and surprising customers with high bills is probably considered a feature, not a bug.

replies(1): >>31414920 #
72. manigandham ◴[] No.31414920{9}[source]
Data (and all resources) cost money per time. You don't need to add new data to an S3 bucket to get a bill every month because the existing data accrues charges.

The billing scheme is very transparent and friendly by being pay-as-you-go. It doesn't "fuck over the customer".

Your entire complaint isn't about the pricing scheme but about an additional feature to stop billing at some point - which I've explained is not easy to calculate precisely because charges accrue on time and adding even more complexity for calculations and potential for mistakes is not worth it for the many reasons I outlined previously.

> "The simple truth"

You keep repeating that word. There is nothing simple about this. Let's end this here.

replies(1): >>31415498 #
73. manigandham ◴[] No.31414971{5}[source]
> "an obvious problem with this, the pricing structure would become transparent "

How is the pricing structure not currently transparent? What number are you missing exactly?

74. manigandham ◴[] No.31415018{5}[source]
> "Obviously the vendor shouldn't delete data, that would be stupid"

Since data accrues charges over time, there is no alternative if you want a hard cap. Which is why none of this is very simple at all and requires a tremendous amount of planning and complexity just to implement, let alone all the possible new issues and mistakes it creates for customers.

Again, this is the typical "write some code in a weekend" approach that's missing all context of what it actually takes. And as I mentioned before, it's far easier to just negotiate billing then to deal with the aftereffects of whatever service and data disruption this feature would cause for the tiny fraction of customers that end up with this problem.

Waving your $5 fee is far easier and cheaper than spending millions on trying to avoid it in the first place, only to get replaced with potential complains that a production account was suspended or deleted.

75. newaccount74 ◴[] No.31415498{10}[source]
> You don't need to add new data to an S3 bucket to get a bill every month because the existing data accrues charges.

Yes, but it's pretty predictable. Once there's enough data in your bucket that the monthly cost would go over the limit, just stop accepting new data.

Nobody cares if the spending limit is accurate to the cent. What people care about is not being surprised by huge invoices.

> The billing scheme is very transparent and friendly by being pay-as-you-go.

Have you looked at eg. the glacier pricing scheme, or at lambda pricing? It's almost impossible to know how much it's going to cost you ahead of time. The only thing you know is that if you happen to use it differently than anticipated, it's going to be expensive.

replies(1): >>31417390 #
76. manigandham ◴[] No.31417390{11}[source]
> "it's pretty predictable"

It quite literally isn't, otherwise there would be no billing surprises in the first place. Your entire argument about predictability is counter to the problem of unpredictable charges.

> "just stop accepting new data"

This is still effectively data loss and a major problem in production. Customers would rather negotiate a bill than lose data.

> "Nobody cares if the spending limit is accurate to the cent. What people care about is not being surprised by huge invoices."

Then it's a soft-cap, and if that's all you want then you already have billing alarms. Otherwise what's the buffer amount? What overage is acceptable? Is there a real hard cap? What if that's reached? You didn't actually provide any solution here.

> "the glacier pricing scheme, or at lambda pricing ... It's almost impossible to know how much it's going to cost you ahead of time."

How so? AWS is completely transparent about pricing. The calculations for it might be hard, but that's an entirely different issue. There are plenty of tools you can use if you don't want to do it yourself, however this is another logically incongruent point where you claim billing is easy enough to calculate and predict accurately for caps yet simultaneously hard enough that it's "almost impossible".

replies(1): >>31419738 #
77. newaccount74 ◴[] No.31419738{12}[source]
You are twisting my words. I said it's easy to predict storage costs, to counter your claim that you'd need to delete data to stay within budget.

The biggest problem are mainly exorbitant bandwidth costs, and those are trivial to cap -- just stop serving requests.

Also, billing alarms are not a soft cap. They don't prevent you from waking up in the morning to a 5000€ bill.

> You didn't actually provide any solution here.

I'm commenting on the internet, I don't need to come up with a way for AWS to implement billing caps, especially since they have designed their service pricing in a way that makes estimates really hard.

But for most services, billing caps really aren't that hard, especially since the company we are discussing here (fly.io) apparently already allows billing caps if you prepay (according to other comments here).

replies(1): >>31420414 #
78. manigandham ◴[] No.31420414{13}[source]
> "it's easy to predict storage costs"

You're just repeating this. Predictable is the opposite of surprise.

Even if storage use was very stable, so what? The overall bill is the problem so where the charges come from doesn't matter, only that eventually a limit is crossed. An overage is still an overage and the only way for billing to stop immediately is to delete and drop everything. This is the fundamental issue that you're not considering. It's what happens at the limit, not about how you get there.

> " billing alarms are not a soft cap"

Soft caps that don't actually stop anything are effectively nothing more than billing alarms. What else is their purpose?

> "I don't need to come up with a way for AWS to implement billing caps"

I didn't ask for implementation, I'm inquiring as to what logically is supposed to happen in the scenarios that occur based on your proposed "pretty simple" solution. If you can't answer then it's not so simple is it? You either haven't thought it through entirely to conclude that it's not actually possible to do that way.

> "designed their service pricing in a way that makes estimates really hard"

How so? You also keep repeating this without evidence. How is providing numbers on exactly what they charge for make it difficult? It's as transparent as it gets. They also have a calculator on their site. What more are you expecting?

> "for most services, billing caps really aren't that hard"

The nature of the service changes everything. Fly.io doesn't have billing caps, they just stop the apps when the credits run out and eat the bandwidth cost for now. The economics of scale can change that answer drastically, however even Fly repeats what I've said before: "the majority of people want their stuff to stay up" and "shut it down so you don't get billed" is usually not the preferred solution compared to negotiating a large bill.

replies(1): >>31425897 #
79. newaccount74 ◴[] No.31425897{14}[source]
> I'm inquiring as to what logically is supposed to happen in the scenarios that occur based on your proposed "pretty simple" solution.

Here's the simplest solution: If the limit is reached, stop serving requests, stop accepting new data, but don't delete any data. Allow static storage costs to go over the limit. That is probably what 99% of people who ask for a budget cap want, and it's the most logical thing to do because typically 99% of the charges are for bandwidth/requests/processing and only 1% for storage. If I set a limit at 10€ and amazon ends up charging me 10.2€ I can live with that.

The next simplest solution would be to look at how much is currently stored, multiply that with the storage cost per hour, multiply that with the remaining hours in the month, then subtract that from the monthly budget, and stop serving requests or accepting new data as soon as this lower limit is reached. This will guarantee that you never go over the limit without having to delete data. If data in storage is deleted before the end of the month, you'll end up spending less than the limit.

Now if you consider this basic math too complicated for a software engineer making $300000 a year, you could do something even simpler: allow the customer to set a limit on each resource. Eg. let the customer say, I want to limit S3 to 100GB of storage and 5TB of bandwidth and 2 million requests (or whatever). Of course that would be a bit of a hassle for the customer, but it would be very effective at preventing surprise charges.

> the majority of people want their stuff to stay up

At any cost? That's unlikely. I'm pretty sure that every company has some limit where they'd prefer the service to be down rather than pay the bill.

But if you go back up the thread you'll see that this discussion is about hobby users and tinkerers, and people who just sign up to try out the tech. These people absolutely want a hard cap on potential charges, and if you don't offer that you might scare them away.