Set up a practically free CDN
gist.github.com
gist.github.com
Because they give a lot away and post blog posts attacking AWS folks think they are cheap. But a lot of their free stuff may be in the marketing budget. The issue here is:
1) Their paid offerings for their core product, CDN, does not have a public pricing guide. That's a BAD sign if they claim to be competing on price. So we can pretty safely assume their paid service bandwidth charges are NOT the 80X cheaper than amazon despite their claims here.
2) They hype their bandwidth alliance. I tried following this up on Azure, it's basically all call a sales person / maybe you'll get a deal type stuff. Smoke and mirrors again.
3) If you actually try to use their CDN to serve something high bandwidth (games / software updates / video streaming) that is going to violate some type of clause which says that the free CDN is not REALLY unlimited.
4) Financially they spend a mind boggling amount on sales costs. Between sales costs and cost of sales I think they are negative relative to revenue.
BTW - If you try any of the other "free" and "unlimited" providers (for $5/month etc) you will also find out once you try to move some real data volumes (video etc) - it's all a lie over and over.
Same things with geo issues. Cloudflare claims to have "one" price globally. These are almost alwyas false claims. It's easy to test - setup a stream into a high cost area, stream a bunch of video there - you'll usually get a call over some tricky TOS issue they pull out.
In short, if you want pay and forget, there is a reason the big cloud players have a business still.
> one of the top cloud providers, if not the top
rather than:
> one of the top, if not the top, cloud providers
since the latter cashes out to:
> one of the top cloud providers, if not the top cloud providers
(Sorry. I know it’s annoying … but it’s my life’s mission to eradicate this particular construct.)
AWS is probably ~20% above others from sources I know that work on AWS and Azure billing teams.
But I used to play with the "free" and "unlimited" players - and it's almost always the same.
The network quality is crap.
The network cannot sustain bandwidth during periods you need it.
There are hidden TOS stuff (sometimes made up) that they grab you with if you start using "too much" of the "unlimited" free service.
They are losing money so cannot sustain the pricing.
Pricing is opaque or not aligned with underlying costs.
Or they just flat out will not disclose their "80x cheaper" pricing because it's a total lie that it's 80x cheaper.
In short, I'm tired of that as I've gotten older.
Let's take cloudflare. If I egress 1PB of 8K video 100% into India per day, my guess is their per minute "upfront" stream pricing generates a call from some sales dude. Oh, you violated xx/yy/zz, we can't support that etc. Ugh. Same with their CDN stuff. If I start doing 100% egress into South Africa - wham - some weird call. I don't even have to look anymore to know how this goes.
If I strung together all their bandwidth alliance folks and started moving AWS Snowmobile data around per week (100PB per week, distributing it using the bandwidth alliance backbone for "free", without using other significant paid services) you get the call.
I ask simply, where is their 80x cheaper CDN pricing? OH, asking for pricing, you must work for AWS. It's pathetic really - that's the response? Point me to the webpage for this.
Before any discounts for committed use (normally 12 months or more) AWS Cloudfront goes down to $0.02/GB. The supposed 80x cheaper Cloudflare price is then in the $0.0002/GB range. IF you actually believed they had their costs low enough to offer this, they would clean up. Instead it is almost certainly a lie - but I'm happy to be proven wrong. If you do have needs this cheap, you might look at building your own CDN (see Netflix and friends).
The real irony is they do blog posts using AWS pricing, but don't release their own. I use cloudflare, I think they are great as a hobby level user of their stuff. But stuff for work goes to GCP (in past) and more recently AWS and Azure (which has a big in these days with office 365 / directory / remote desktop stuff into bigger players despite what may be underlying tech weaknesses).
1: we are paying (ballpark) 5-10k for our account. We have 5-10 domains on the enterprise plan, and we have roughly 100m requests per month plus about 70TB bandwidth, IIRC... Mind you, we have other sites that are on Pro ($20) or business ($200) plans and they are coming in at around a million requests a day (only about 2-3Gb a day) and no one complains.. could be the 5-10k we spend a month with them makes them think twice... Most of our cost is for the 24/7 tech support, regular meetings, etc. extra domains are a somewhat fixed cost (little over double a business plan domain) and that gives us extra features.
2: for Azure and BW Alliance, we were told you need to use a storage account and use "Internet Routing" not "Azure Routing" for the account. Azure routing is, IIRC, 12c per Gig. Internet routing is closer to 8c... Cant see an option for Servers, but I think Internet Routing might work for them too...
3: Any proof of this? I do know there is a limit of 256Mbyte for free account files, but not sure about what the limits on Pro or Business accounts...
4: https://cloudflare.net/news/news-details/2021/Cloudflare-Ann... Seems they spend nearly double on Sales and Marketing than they do on R&D... and they seem to be currently loosing money, but what startup doesn't lose money for the first few years?
[Edit: formatting]
There is currently a widespread fear that quantitative tightening could arrive very rapidly, with disastrous effects on high multiplier tech stocks and other debt-fuelled businesses. They've all been getting hammered in uniform since at least December.
Perhaps Azure should offer to mail you the MicroSD card as well? Postage is only $0.58 for a First Class stamp, and less with a postal meter.
That would still be cheaper than Azure's transit traffic.
I work a lot with video production and mailing SD cards or driving around hard drives is still the best way to transfer data quickly and cheaply. The cloud is too expensive (both storage and egress) and P2P (Syncthing) is too slow with more than 2 contributors. Despite most of my regular team now having FTTH (except me!!), we still manually transfer media files and use P2P for the rest of the project.
Didn't they used to charge for transfers between resources in different AZ's in same region? And VNET peering I think was chargeable, so you'd have situations where within a region you'd be paying outbound AND INBOUND charges.
Anyways, the little I looked, the "free" bandwidth alliance data transfer really wasn't free from what I could see but I didn't look too hard.
For those following along, the aws cloud front price for 70 TB / 100m requests runs $5,400 or so. Discounts available if you will do a one year term - say 20%. Ie, they are in ballpark.
I can believe cloudflare is cheaper for sure, but it’s not your an idiot for using aws level I don’t think. And aws is printing money.
I once paid $3 per GB (6 figures per year) way way back so this all looks cheap to me.
https://support.cloudflare.com/hc/en-us/articles/44072079721...
And azure's Pricing is here:
https://azure.microsoft.com/en-us/pricing/details/bandwidth/...
Its not 12c per gig, its 8.75c per gig for Microsoft Routing... (at least from Europe and NA) and 8c for Internet Routing... Not a massive saving... Mind you, if you are based in South America, you go from 18.1c per gig down to 12...
For Us, mostly based in Europe, it would be a difference of around 995 per month on Azure Bandwidth costs, if all our bandwidth just came from Azure. Same for South America is 6 grand in savings...
AWS egress is 0.05 at scale. That is competitive with Azure egress.
We keep on hearing things like AWS is 80x price, but no one will actually show the math where I can actually get 0.01 range egress.
So, yes, there is a discount to be had, but there are discounts with AWS as well.
> Our free customers create scale, serve as efficient brand marketing, and help us attract developers, customers, and potential employees. These free customers expose us to diverse traffic, threats, and problems, often allowing us to see potential security, performance, and reliability issues at the earliest stage. This knowledge allows us to improve our products and deliver more effective solutions to our paid customers. In addition, the added scale and diversity of this traffic makes us valuable to a diverse set of global ISPs, improving the breadth and economic terms of our interconnections, bandwidth costs, and co-location expenses. Finally, the enthusiastic engagement of our free customer base represents a “virtual quality assurance” function that allows us to maintain a high rate of product innovation, while ensuring products are extensively tested in real world environments before they are deployed to enterprise customers.
That's the value they get for providing the service for 'free' for quite a lot of websites that aren't moving real data volumes. For millions of websites, this is a sweet deal for them since it still saves them hundreds of dollars in bandwidth a month while they provide enough value to CF indirectly to not be considered a loss-leading customer (in which the customer would get "the call" saying they need to start directly paying for their usage of CF).
So is it an opaque, customer-hostile pricing strategy? Sure, but even image boards doing petabytes a month serving images are within the realm of never needing to pay for their direct usage of the service since CF still sees that as a worthwhile marketing and intelligence source. It's only when you actively cause them to lose money (such as streaming video in eg. the Oceania region) or start proxying raw binaries on a domain that proxies nothing else [1] that CF doesn't see a reason to keep your domain around as a charity case.
0: https://www.sec.gov/Archives/edgar/data/1477333/000119312519...
1: https://community.cloudflare.com/t/the-way-you-handle-bandwi...
My experience was their sales team talked a good game up until the time to bid, and then Akamai closed enough of the pricing gap to not make it worth switching. Cloudflare seemed like great technology but their pricing suggested they had already won the business. I can only imagine how they treat existing customers once there are switching costs.
Most of their pricing is public: https://www.cloudflare.com/plans/
This includes the CDN product, workers, security services like Access and Teams. Only the Enterprise plan and other products require negotiation, but the majority of customers are easily covered by the standard options.
> "high bandwidth (games / software updates / video streaming) that is going to violate some type of clause"
The clauses are publicly stated in their terms. The CDN is for typical website assets and not large files, but many sites are running TBs of bandwidth for free or with the regulars plans though. Large file delivery requires different technical setup from small/dynamic requests, and there are CDNs specialized for that. You can also rent unmetered servers or interconnects yourself and get much better rates instead of using a CDN.
https://www.cloudflare.com/terms/
> 2.8 Limitation on Serving Non-HTML Content
> The Services are offered primarily as a platform to cache and serve web pages and websites. Unless explicitly included as part of a Paid Service purchased by you, you agree to use the Services solely for the purpose of (i) serving web pages as viewed through a web browser or other functionally equivalent applications, including rendering Hypertext Markup Language (HTML) or other functional equivalents, and (ii) serving web APIs subject to the restrictions set forth in this Section 2.8. Use of the Services for serving video or a disproportionate percentage of pictures, audio files, or other non-HTML content is prohibited, unless purchased separately as part of a Paid Service or expressly allowed under our Supplemental Terms for a specific Service. If we determine you have breached this Section 2.8, we may immediately suspend or restrict your use of the Services, or limit End User access to certain of your resources through the Services.
If this was truly acceptable and not in some grey area, why doesn't Backblaze simply route all downloads through Cloudflare by default, rather than having each individual customer go through the hassle of setting this up?
https://www.cloudflare.com/en-gb/bandwidth-alliance/
With this said, I believe there are restrictions for certain types of content (eg: video). Cloudflare needs to be more clear here to avoid confusion.
I'm not seeing it saying anything about different rules applying regarding CloudFlare ToS such as "2.8 Limitation on Serving Non-HTML Content" to Bandwidth Alliance sources.
But has that been said somewhere I'm not seeing? Would love to see it!
Because Backblaze makes more money charging you for repeated downloads?
CloudFlare are about to launch their own object/file store with native CDN called R2. They have even come up with a wonderful trick for migrating to it from S3 and it’s looks like it’s going to have an incredible generous level of free egress. I suspect that it will beat out the B2/CloudFlare combination once it launches.
https://blog.cloudflare.com/introducing-r2-object-storage/
Edit: Typo
I went in fairly big (for me) and sold near the top with a stop loss #gainz. Then bought again when it went down like 10% trying to 'buy the dip.' But it keeps falling!
I don't get it. I love their products and ambition. That was a huge bump and decline.
Anecdotally, I have yet to work with a company paying Cloudflare substantial amounts of money.
Maybe something about 'large edge network cloud to reach your customer quicker' or something I'm not sure how to describe it in a compelling way. Maybe sprinkle on some web3 or distributed bs.
I think AWS, now Google is getting there, have that a lot of stickyness because it has all the services imaginable interconnected (not well sometimes but still). It's a platform not individual products. It's hard to pickup and leave, especially if Cloudflare doesn't have 1:1 replacements.
“Workers” is brilliant, but the strategy with WASM on it is where I really think it is going to shine. The more languages and more of your stack that can be compelled to WASM the more you will be able to run on their edge. I truly believe WASM is the future in so many places other than in the browser.
I also feel the one part of their stack that’s missing is a transactional acid database (I hope for sql, but nosql would be fine). But it highlights a fault with the “edge first” strategy. Workers at the edge making multiple round trip requests to a central database is slower than running your app closer to the db. My wish is that they are developing some sort of edge replaced db that automatically launches read replicas at the same edge locations as where most of your worker load is. You probably have to have the main/master in a central location though. (I think Fly.io are doing something a little like this with Postgres)
This thing makes like $500m of annual revenue, not profit, whatever path to profitability one can imagine, hard to see how it can be "worth" $32000m. It's like 5000 years of earnings are priced in along with the assumption competitors don't try too hard for the same time period.
Basically every reality-based investor has long left the room. It's a meme stock. It's Dogecoin for devops kids. Underlying biz does not matter for meme stocks, one must look at what the meme lovers do, what trend they follow, etc. At the moment they're being moody, that's why it's down for now along with similar memetech stocks.
As a bonus they provide the captchas for all the crypto sites. When that sugar daddy leaves the room, LOL.
FB was probably undervalued 8ish years ago. But FB also had a clearer narrative around TAM and LTV than NET does.
The current price bakes in some biggish assumptions (1) NET’s TAM is not even close to saturated (2) LTV per customer will keep growing as NET adds on new services that existing customers will want to pay for. There are many valid reasons to believe this, if you follow their earnings calls.
That doesn’t mean today’s price is bona fide bad or good. Rather, it reflects Wall St’s faith in Cloudflare’s ability to materialize grand-but-achievable ambitions.
The earlier peak price had far too much growth priced in, it was not sustainable imo. When price outpaces value, it’s normal to see a correction.
I wanted to look up whether cloudflair.com was already registered, and apparently the registrar is cloudflare themselves. That's funny
However the author thinks percentages work.... They are not right.
It probably means AWS is 440% more expensive.
Say “half the cost” or “cheaper by half”.
If the phrasing makes it clear they're talking about a higher price, then yes that's a good interpretation. You get half as good a deal.
Someone might say "half as cheap" to talk about a price drop by 50%, even though that's not really correct, but such is language.
Nobody says that. If someone said "once as expensive" I'd interpret "once" as talking about time.
"Once" can be a counter but not a multiple.
First, it's important to clarify why comparative adjectives don't work here. Look at the following sentence.
- A $5 cookie is worth twice as much as a $2.50 cookie
Here, we establish the baseline (the $2.50 cookie), and express how much better the $5 cookie is.
We could also say the inverse:
- A $2.50 cookie is worth half as much as a $5 cookie.
What we can't do is the following:
- A $5 cookie is double more expensive than a $2.50 cookie.
We can make a statement (the cookie is more expensive), or share the factor by establishing the baseline (twice as expensive as), but not both at the same time.
The author tries to say 440% cheaper, (not mentioning storage or transfer) and I believe their logic was something along the lines of the below:
- 440% = 440/100
- Cheaper = Reciprocal of More expensive
- 440% cheaper = 1 / (440/100) = 100/440
- S3 is very difficult to estimate a 'per GB price' because it depends on where the data is being transferred to, various pricing tiers (S3, S3 intelligent, 'Glacier', 'infrequent access', 'One Zone', first 100GB free, egress through Cloudfront, and HTTP verb specifics). Fortunately, they have an estimate calculator, which gave me 9 USD for 100GB transferred out to the internet, or 0.09USD/GB for transfer.
- Storage is a different proposition, with Amazon telling me it'll cost 2.30 USD for 100GB as long as I never look at it (ie: 0.023USD/GB)
- Backblaze is much easier to reckon with, with $0.005/GB for storage, and $0.01 for transfer.
- Therefore, for transfer Amazon's 0.09 * (100/440) = 0.02, which is MORE than Backblaze would charge me.
- For storage, Amazon's 0.023 * (100/440) is indeed 0.005.
So, Backblaze does indeed seem to be [440%, reciprocal of more expensive] as Amazon for storage cost alone.
This is a risky setup.
Cloudflare does have a product specifically designed to stream video. It is priced accordingly.
> Cloudflare Stream is the most affordable and easy-to-use streaming platform.
Instead, it's an article about how to use Cloudflare to deliver static assets for free, on Cloudflare's free tier.
Edit: I would love to read more about how to set up a cheap self-managed CDN, perhaps using cheap VPS servers spread out in different regions.
https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-svcb-...
https://github.com/MikeBishop/dns-alt-svc
This one might have a larger chance of being accepted, since it provides some things which HTTP standard bodies and HTTP client vendors want. It doesn’t (at this stage, anyway) provide for the load-balancing “weight” field from the SRV record, but it does support MX-style priority numbers, and also port numbers. Very interesting, to say the least.
Good thing it already exists!
See also: https://blog.apnic.net/2021/04/07/building-an-open-source-an...
https://gist.github.com/jcubic/a8b8c979d200ffde13cc08505f7a6...
If you're just using it to upload public static content for your site, this shouldn't be an issue. But if you're dealing with private content it probably isn't the optimal solution.
Is free, secure, and fast to much to ask? Joking of course.
I would love to hear some of the implications of this approach. I can already think that the attacker would know the size of the file, so that might give him information regarding e.g. the file type. It might be of interest to an attacker to know that most clients get files of a specific size, but a certain client gets a file that is much much larger.
I wonder what other implications might there be.
I'd be shocked if generating pre-signed URLs required talking to the Backblaze server, that should be something done totally in client code.
However, even with AWS S3, I discovered that the official AWS ruby SDK client was much slower that it could/should be at generating pre-signed URLs (and even just public URLs!), and was able to write my own ruby code to be significantly faster.
https://github.com/jrochkind/faster_s3_url
I'm curious for the specifics on what code you were using to generate pre-signed URLs for file upload or download with backblaze, and what you are comparing it to when you say it's a lot slower. It could be un-optimized code, but whose "fault" it is depends on what code it is, open source etc.
Not only is it cheaper, it's also with less hassle ( there's nothing to manage, you just send static HTML / code to build to static HTML).
In my case, I'm serving data that updates every 10 minutes but is otherwise identical for every user. Cloudflare handles that use case perfectly.
They also have their own storage options that are tightly integrated to their CDN, but basic FTP and simple API for it still. No S3 or bulk options there yet. Promised S3 API support “soon” though
LRU exists for a reason.
And with Rails, it appears that there’s a third party ActiveStorage adapter for BackBlaze.
https://github.com/jeygeethan/activestorage-backblaze
Direct uploading from client : https://github.com/jeygeethan/activestorage-backblaze-javasc...
Randall Munroe estimates it'll be 2040 before the Internet has more bandwidth than FedEx: https://what-if.xkcd.com/31/
While B2 isn't as fast as S3 and some tasks are way slower (eg: deleting files), I'm able to max out my server's 1Gbps connection when sending or downloading files from their European DC (using rclone and a server also in Europe).
Sadly people's connections are so asymmetrical they're likely to have problems or get upset from that kind of thing.
If you start to exceed that limit they are free to suspend your account.
So it depends very much on your use case, but there were too many risks for my use cases.