Earlier quoted context omitted.
This must be a regression bug in AWS's internal system. At a past job (2020) we used S3 to store a large amount of genomic data, and a web application read range requests to visualize tiny segments of the genetic sequence in relevant genes - like 5kb out of 50GB. If AWS had billed the cost of an entire genome/exome every time we did that, we would have noticed. I monitored costs pretty closely, S3 was never a problem…
You are right, this is about canceling range requests and still getting billed, not about requesting ranges and getting billed for the complete file egress. Sorry; we'll make the post clearer.
The AWS S3 Denial of Wallet Amplification Attack
81–90 of 97 posts
Re: The AWS S3 Denial of Wallet Amplification Attack
#82Why is anyone using S3 when Cloudflare R2 is free?
As others mentioned, it still lack many features if compared to S3.
Re: The AWS S3 Denial of Wallet Amplification Attack
#83Earlier quoted context omitted.
That sounds egregious enough that I have trouble believing this can be correct. My understanding is that AWS bills for egress for every service, parts of the file that aren't transferred are not part of this so can't be billed. There could certainly be S3-specific charges that affect cases like this, no idea. But if AWS bills the full egress traffic costs for a range request I'd consider that essentially fraud.
Sorry, I think that part of our write-up is misleading (I was involved in analyzing the issue described here). To our best understanding, what happens is the following: - A client sends range requests and cancels them quickly. - The full range request data will be billed (NOT the whole file), so I think this should read that the entire requested range gets billed, even if it never gets transferred (the explanation we…
Re: The AWS S3 Denial of Wallet Amplification Attack
#84Earlier quoted context omitted.
Sorry, I think that part of our write-up is misleading (I was involved in analyzing the issue described here). To our best understanding, what happens is the following: - A client sends range requests and cancels them quickly. - The full range request data will be billed (NOT the whole file), so I think this should read that the entire requested range gets billed, even if it never gets transferred (the explanation we…
This is a problem with lots of services. Blocking large quantities of legitimate looking requests is a hard problem. Request cancellation is also tricky and not supported well in a lot of frameworks/programming languages.
Re: The AWS S3 Denial of Wallet Amplification Attack
#85Earlier quoted context omitted.
More or less. The article quotes AWS as saying the following: > Amazon S3 attempts to stop the streaming of data, but it does not happen instantaneously. ...which doesn't really explain it. It shouldn't send more than a TCP window after the connection is closed, and TCP windows are at most 1 GiB [1], usually much less, so this completely fails to explain the article's observed 3 TB sent vs 130 TB billed. The article…
> this completely fails to explain the article's observed 3 TB sent vs 130 TB billed I interpreted that to be that their code was doing this over and over again, so in total they retrieved 3TB over a set of requests. Still horrifying, but mildly more explainable.
One could disprove this explanation with a packet capture; just add the remaining window.
Re: The AWS S3 Denial of Wallet Amplification Attack
#86Earlier quoted context omitted.
More or less. The article quotes AWS as saying the following: > Amazon S3 attempts to stop the streaming of data, but it does not happen instantaneously. ...which doesn't really explain it. It shouldn't send more than a TCP window after the connection is closed, and TCP windows are at most 1 GiB [1], usually much less, so this completely fails to explain the article's observed 3 TB sent vs 130 TB billed. The article…
> AWS customers are not billed for the data actually transferred to the Internet but instead for some amount of data that is cached internally. But egress fees only apply to S3 transfers outside AWS ? So which is it? Data transferred to the Internet? Or data processed internally?
Right now some class action lawyer is drooling.
Re: The AWS S3 Denial of Wallet Amplification Attack
#87Earlier quoted context omitted.
That sounds egregious enough that I have trouble believing this can be correct. My understanding is that AWS bills for egress for every service, parts of the file that aren't transferred are not part of this so can't be billed. There could certainly be S3-specific charges that affect cases like this, no idea. But if AWS bills the full egress traffic costs for a range request I'd consider that essentially fraud.
Sorry, I think that part of our write-up is misleading (I was involved in analyzing the issue described here). To our best understanding, what happens is the following: - A client sends range requests and cancels them quickly. - The full range request data will be billed (NOT the whole file), so I think this should read that the entire requested range gets billed, even if it never gets transferred (the explanation we…
Re: The AWS S3 Denial of Wallet Amplification Attack
#88Earlier quoted context omitted.
This is a problem with lots of services. Blocking large quantities of legitimate looking requests is a hard problem. Request cancellation is also tricky and not supported well in a lot of frameworks/programming languages.
But the thing you are supposedly getting billed for is data transferred to the Internet. If the connection is closed there might be some data that goes out before the reset is received, but not that much. So either this is a bug, or the pricing documention is ... incorrect about what they actually charge you for.
Re: The AWS S3 Denial of Wallet Amplification Attack
#89I had the exact same thing happen to me last Friday. My ISP metered 300GB, AWS measured 6,000GB. A factor of 20. I don't think this is reasonable. https://news.ycombinator.com/item?id=40203126#40205213 https://github.com/ZJONSSON/node-unzipper/issues/308
Re: The AWS S3 Denial of Wallet Amplification Attack
#90Earlier quoted context omitted.
But the thing you are supposedly getting billed for is data transferred to the Internet. If the connection is closed there might be some data that goes out before the reset is received, but not that much. So either this is a bug, or the pricing documention is ... incorrect about what they actually charge you for.
Sadly this is no bug. Customers are NOT billed for actual data transferred. Customers are billed for "some kind of" data requested. If you interrupt the data transfer before downloading all requested data then it's "your fault". AWS documents this detail somewhere hidden on the S3 pricing page ( https://aws.amazon.com/s3/pricing/ ). Search for "Data Transfer Out may be different from the data received" in the "Data t…
From the OP it sounds like the amount billed is too high to be explained by that.
If what you are billed for isn't actually data transferred, then it is deceptive to say that you are billed for "data transferred out".