Wasabi has a very attractive pricing model at $0.0059 per GB/mo ($5.99 per TB/month) and no egress fees, which makes it by far the cheapest object storage provider on the market. And the performance is pretty good. But there is more to it.
Two reasons you should not use Wasabi
One little detail in the pricing model is that you're billed at least 90 days for every object you upload. If the data inside a bucket is not updated very often, it's not a big deal.
For the first usage, I quickly realised that the Wasabi pricing model wasn't viable for this usage. Restic segments its data into packs and chunks and rewrite them a lot when pruning backups. Even if 1% of chunk had been actually updated, I'd have to pay another 90 days for the new chunk. And with daily backups, it adds up pretty quickly. I am now using Hetzner's Storage Box offer which basically offers a ZFS dataset over SSH. It has the advantage of being much faster and having snapshots. I'm billed for the space I actually use, which is less than 500 GB for 5.88€. 🙂
Now, for Mastodon I was pretty happy for quite some time, but the quality of the service has decreased a lot. Downtimes are getting more and more frequent, and at one point half of the fediverse's favorite object storage provider was down for a week.
My bill has been pretty stable for a year at around 10$, which is more than the base price of 1 TB for 6$, because a lot of media files are actually temporary cache for the instance, and deleted after a while. So I had more than 1 TB when taking the active + deleted storage into account.
But lately, my bill has been exploding. For this month it is predicted to be around 20$, even though I have only 600 GB of active storage.
That's because I have more than twice the number of objects and five times the used space of deleted storage. Yes, that's how the pricing works, but it's difficult to accept. When taking that into account along with the repeated outages, I decided to move out.
The (real) cheapest provider: Scaleway
Scaleway recently updated their pricing: a free tier for the first 75 GB and then €0.01/GB. It's pretty cheap with not hidden clause. According to this, my bill should go down to 6€ per month. And it's a French company, not focused exclusively on getting funding from VCs. And I can host my bucket in Paris or Amsterdam.
Ok, let's migrate!
Migrating an S3 bucket with rclone
I used rclone to migrate my bucket. rclone supports a bunch of storage providers including Wasabi and Scaleway. I recommend running it on some remote server for better performance (and because it will take some time...).
To keep things short, here is my
Grab an API key from both providers, make sure you use the correct regions, and you're ready to go.
First, sync the whole bucket once or twice:
rclone sync wasabi:mybucket scaleway:mybucket
Then update your Mastodon instance's
S3_ENABLED=true S3_BUCKET=mybucket AWS_ACCESS_KEY_ID=xxxxx AWS_SECRET_ACCESS_KEY=xxxxxxx S3_PROTOCOL=https S3_HOSTNAME=media.instance.tld S3_ENDPOINT=https://s3.fr-par.scw.cloud/ S3_REGION=fr-par
Restart the services.
Then, to make sure no files have been added to the Wasabi bucket in the meantime, do a
copy (not a
sync, which will delete new files on the Scaleway bucket)
rclone copy wasabi:mybucket scaleway:mybucket
I had a million and half object to migrate for about 600 GB. Each rclone operation took more than a day. To make things faster I recommend increasing the number parallel processes with
--progress --transfers 50 --checkers 50.
So far so good
So far I didn't have any issue with Scaleway, performance is good and I know what I can expect from my next bill. Moreover, their new web console is pretty nice.
Good job, Scaleway!