EDIT: Example: We use Akamai as our caching layer, as their bandwidth costs are much less than Cloudfront (their analytics are better as well, and they don't charge for invalidations like Cloudfront does). We use S3 as the origin as its a lower cost per GB than Akamai's NetStorage, and the S3 API is superior to work with compared to the interfaces exposed by NetStorage (scp/ftp/rsync).
Storage and Delivery should be considered separate, as there are benefits to it being a separate service. If you throw a CDN between your customers and S3 you'll not only get a significantly lower cost, you'll also give your customers much better performance.
http://aws.amazon.com/cloudfront/pricing/ https://www.fastly.com/pricing
If I am wrong about this (and I hope I am), where can I find more information about that?
Thanks!
If your cache gets deleted or expired, you'll have to pay to move the data (at s3 rates) to the CDN again when someone requests it.
However most networks have sine wave pattern diurnal utilization. A common peak to average ration would be 3:1. Our $0.0031 is effectively the rate for an average of 1mbs. To get that average rate we'll be paying about 3x, or $0.0093 per GB transferred. So we're paying $0.01 per GB for the transit alone. This is also in a major metro area in North America. Transit costs can easily be 3-10x in EU or 10-20x in AP.
On top of that there's capex and opex for that 10gb port. Assuming you've got some decent scale you're going to get 96 10gb ports in a $300,000 to $500,000 router, or $3-5,000 per 10gb port. You need ports both north and south, so you get 480gbs throughput per chassis. But you can't run above 80% util, so call it 384gbs of peak throughput. Opex for rack position, data techs, power, etc will cost $2,000 to $5,000 per month. Amortized over 36 months let's call it $10,000 to $17,000 per month all up.
That 384gbs peak throughput is actually more like 128gbs averaged over the month. At 128gb/s average we transfer about 41,472,000 GB per month, or $0.00024 to $0.00041 per GB. Now double that cost 'cause routers actually come in pairs for fault tolerance. So we're paying $0.0005 to $0.0008 per GB of transit connectivity.
And how many hops are there back to your application? I'd hazard around 6 by the time you go transit -> edge -> border -> core -> dc -> agg -> tor. Paying for that internal network infrastructure is going to add $0.0030 to $0.0050 to our bill. All up that gets us to $0.0128 to $0.0151 per GB transferred from our host to a third party network.
Expanding the error bars lets round to $0.01 to $0.02 of network costs per GB that we deliver. To get these prices you're going to have a capital budget of tens of millions per year. OpEx would be at least $500K, or more likely a million plus, per month. If you can actually beat my pricing I'm hiring and or would like to subscribe to your news letter.
Apologies if I missed something in the math. I had to do some mental acrobatics to go from dollars per gb/s to dollars per GB/month.
I don't disagree that $0.12/GB could be considered expensive, but S3's competitors seem to be charging the same.
That is, our storage is expensive (10c per GB, per month, with the HN-new-customer discount) but our usage/transfwer costs are zero.
related:
ssh user@rsync.net s3cmd get s3://rsynctest/mscdex.exe
interoperability!AWS users will end up with the same problem in time. I wonder why the bandwidth costs are so subborn, does the cost price per traffic unit really never come down, or is someone (some people) in the infrastructure layer(s) screwing us?
It's the same way you pay a fixed hourly rate (in most cases) for your retail electricity, and your provider is paying wholesale spot market rates that can fluctuate in ~5 minute windows.
TL;DR You're paying for consistency and abstraction away from the underlying IP transport costs.
My understanding is that S3 is near indestructible from a serving perspective, but it may be computationally expensive for AWS to scale up/scale down for bursty/peaking outbound traffic serving needs.
Another possibility is that Amazon doesn't charge for inbound, but charges a premium for outbound to balance their traffic ratios so they can peer with providers vs having to buy their transit. The free inbound traffic to S3 offsets their outbound traffic not only from AWS, but their consumer-facing web properties.
As always, just my assumptions/observations.
I have no idea why you are picking on Hetzner in particular. They offer clearly defined bandwidth packages with their servers (20-50 TB) and charge for overages (0.2 cents per GB).
Hetzner is perhaps not what you would call a premium provider, but their prices are about in line with industry wholesale rates. For example a very high quality provider that competes with Hetzner in their home market charge 0.4 cents per GB and they are happy to deliver any traffic you can serve at that price point.
Then they are not "other options", that's the point.
Webhostingtalk is a good resource for the curious.
With similar pricing to amazon. Are you not reading any of the replies you've gotten?
There are cloud providers with cheaper prices than Amazon. Please feel free to read up on the alternatives.
The whole point of this exchange has been to point out that wholesale prices are far less than what Amazon charges. Some cloud providers are more prone to follow the wholesale cost level and others are not.
If you want to discuss alternatives to Amazon then first you have to define what cloud features you want/need.
But I did ~50 TB of traffic per month at various hosts for <$20 without any issue. Just choose them well, and know exactly what kind of connection they offer.