Switching from S3 to Tigris on Fly.io
benhoyt.com
benhoyt.com
1- The author compares performance of this provider Tigris with AWS S3 and how the latencies are 300ms and 1s respectively for the test image, fully aware that Tigris built on top of fly.io comes with a cdn combined, unlike S3, a fair comparison would have been comparing Tigris with AWS S3 + AWS Cloudfront(AWS CDN) combination (both in terms of cost savings and speed)
2- No mention on reliability, a lot of S3 alternatives have spawned up over the years, and they’ve all faced data corruption issues to some extent, that can be horrendous for a lot of object storage usecases. It sucks to put down new companies who are trying innovation, but storage layer as crucial as object storage requires reputation and proven resiliency often times.
Still pretty cool project ! Props to fly.io and tigris for making new alternatives to AWS.
Data corruption is horrendous for all use cases. But if the use case is backups, it’s particularly horrendous.
When you say “all”, do you mean the other big two players too? Or just the new crop of smaller ones?
I remember wasabi one time losing the data of a customer (no comments tho, its very rare and they are significantly cheaper than big 3, so you get what you pay for)
But personally, I’d never touch azure, they get hacked every 3 months or so, get some sort of a fatal bug on their critical products, google and aws much better in that regard.
Personally I do not trust object storage much at all, and like keeping an offline backup of aws s3 objects (its not a snapshot, but rather and continuously updating locally stored disk backup, that tracks all S3 changes with s3’s etag parameter and a postgres table, ofcourse might be hard to continue at larger scales.
An alternative to AWS S3 only makes sense from a pricing standpoint, otherwise they are the king, my favourite feature is their AWS S3 Upload Accelerator, which speeds up user uploading of assets to your object storage, very handy for my current startup.
But yea, overall I’d be very wary of using AWS S3 alternative except for the most simplest of usecases. It’s a very polished, well integrated product from amazon at this point. Most startups in the S3 space, do. not. compare.
2. I actually do describe my concerns about durability near the end: https://benhoyt.com/writings/flyio-and-tigris/#disclaimer-an...
But having an s3 like provider directly inside fly.io, is a pretty cool selling point by itself :D
2. Indeed, noticed the disclaimer now, was just commenting overall in the hn post :D
Have a great day !
how much it typically takes to propagate the changes? Also what is the consistency model of the storage?
It seems like they charge for outbound traffic? Why would someone use Tigris instead of R2? [2][3]
--
1: https://web.archive.org/web/20220812231246/https://www.tigri...
R2 seems to be quite cheap for the right use cases.
And we don’t charge for egress to internet.
If you are looking for an active-active multi-region read-anywhere write-anywhere object storage service then you would choose Tigris over R2 :)
Yes, right. People pay for negative reviews all the time. The article can still have merit. But that disclaimer is manipulative. Better just say "Tigris paid me for this content" and nothing else. Also, a "small amount" can be anything, it's all relative to what the author thinks is small.
Also, as you'll see in this article, I'm not shy about describing issues I ran into or concerns I have: for example, I don't think it's good that they set Cache-Control to max-age=3600 by default, and I have concerns about their durability.
I'd be curious how this is actually implemented on fly too. does the tigris block store use fly volumes (https://fly.io/docs/reference/volumes/)? this doesn't seem to add up since fly volumes are on NVMe SSDs and are $0.15/GB/month, compared to tigris which charges $0.02/GB/month. is there some secret sauce for attaching hard drives to fly instances?
So if you're worried about reliability, or simply want to use two providers for redundancy like I wanted, you can use this feature. I just setup a bucket on Cloudflare R2, made it the shadow bucket for Tigris, and now whatever is added to the Tigris bucket, is also immediately replicated to R2.