マストドン小規模サーバのためのオブジェクトストレージ料金比較

※この記事は [Fediverse Advent Calendar(3)](https://adventar.org/calendars/8730) 10日目の記事です。
※この記事は [Fediverse Advent Calendar(3)](https://adventar.org/calendars/8730) 10日目の記事です。
※大事なので2度言いました。
※投稿日は12/12となります。
※忘れてたわけじゃありません。日曜の予約だったので12/17だと思ってたんです。
※ちゃんと投稿日に投稿しようとしてたんです。信じてください。

![Cloudflare_Logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391534/64238484-d871-8875-648c-48b1b5199ae5.png)

## マストドン鯖をオブジェクトストレージに移行しました。（前置きの前置き）

2ヶ月くらい前に弊鯖 [Abyss.fun](https://abyss.fun/about) はオブジェクトストレージに移行しました。

6年間オブジェクトストレージ移行に ~~めんどｋ~~ めんどくささを感じていたわけですが、長年のやり方を変えての大決心をしたわけです。

まずはそこらへんの話をします。

[Abyss.fun](https://abyss.fun/about) はさくらインターネット社の [さくらのVPS](https://vps.sakura.ad.jp/) を利用しています。
そうです [最近ガバクラに採用されたあのさくらインターネット](https://www.sakura.ad.jp/corporate/information/newsreleases/2023/11/28/1968214232/) です！

この鯖を構築したとき、ノリと勢いだけでマストドン鯖を立てたので、ストレージがどの程度必要とかそういうのを気にせずに立てました。
なのでわざわざ面倒なオブジェクトストレージを利用するとか考えてなかったわけです。6年前の当時のことですが、 **オブジェクトストレージといえばAWS S3！だったし、S3互換というと日本リージョンがなかった wasabi か、オープンソースの minio くらいしか選択肢がなかったわけです。**

なので、そういうのようわからんしローカルにメディアストレージ用意しておけばいいや！のノリでした。

その後すぐにメディアストレージがつらいってなってメディア+DB用鯖を増設、x騒動でさくらのVPSオプションの追加ストレージ機能(NFS)に移行、と変遷をしているわけです。

で、その追加ストレージも1年持つかと思えばそんなこともなく、xからの流入騒動は依然収まらず、半年ほどでギリギリの所まで来てしまったわけです。イーロンまじゆるさん。

そこで決心をしたのが3ヶ月ほど前、もう容量無制限のオブジェクトストレージに移らんとやってられん。って状態になったわけです。

## メディア鯖をCloudflare R2に移行しました。（前置き）

で、前述の通り [Cloudflare R2](https://www.cloudflare.com/ja-jp/developer-platform/r2/) に移行したわけです。

移行先に選んだ理由は、これまたなんとなくです。
僕の場合、大体その時のノリと勢いで行動することが多いので、根拠とか後付だったりします。

そんな後付のノリで移行したCloudFlare R2、サクッと移行できて案外良かったので、今回はそのご報告としての記事となります。
（ここまで前置き）

## Cloudflare R2移行のための技術情報

今回のアドベントカレンダー記事では移行手順の紹介をメインにしようと思ってましたが、 ~~アドベントカレンダーわすれｔ~~ アドベントカレンダーを忘れていたので、 **各種S3互換サービスをサクッと紹介する比較記事とさせてもらいます。**

いや、R2移行の記事ってそれなりにあって、別に僕が焼き増ししなくてもいいかな。って感じがあるのもあります。なので言い訳ばかりではないです。信じてください。

とりあえず移行の際に使ったページの紹介をしておきます。だいたいこれ見ておけばわかるやろ？みたいなやつです。分からなかったら僕に聞いてもらってもいいし、「Mastodon Cloudflare R2」とかでググればいろんな記事が見つかるし、あっ僕が立ててる [鯖缶のためのDiscord鯖](https://discord.gg/mJJGAHv) があるんでそっちで聞いてもいいですよ！宣伝失礼しました。

- [Moving Mastodon's media files to Wasabi Object Storage - Stan's blog](https://stanislas.blog/2018/05/moving-mastodon-media-files-to-wasabi-object-storage/)
メディアファイルをS3互換サービスwasabiに移行する記事。
CloudFlare DNS使ってるならR2でいいんじゃね？
- [Cloudflare R2で静的ファイルを配信する - CORS設定を添えて -](https://zenn.dev/chimame/articles/0b28972e5ded3a)
WebクライアントからメディアコンテンツにアクセスできるようにするためにはCORS設定を入れる必要があります。
別にコレ読まなくてもわかるんだけど参考に見たので。
- [Mastodon · Cloudflare R2 docs](https://developers.cloudflare.com/r2/examples/mastodon/)
CloudFlare公式のMastodon移行ガイド。
必要最低限の情報だけ載せてるって感じなので分かりづらいところあると思う

## 色々なオブジェクトストレージを比較(料金)

移行後、某すがお氏と料金の話をしたら「えーwasabiだと$7/月くらいかかってるんだけど！」って話を聞きました。

あー確かにwasabiだとそんくらいかかるかもねー。えっ君の鯖を構築したの僕？？？？？まさか？？？？？いや当時はIaaSなんてS3かwasabiかしか選択肢なかったやろごめんて。みたいな感じで誤魔化しました。
いまはね。R2のほうがぶっちゃけお得っぽいですよ……

というわけで、S3互換主要オブジェクトストレージの料金比較です。

| - | S3 | wasabi | R2 | (おまけ)さくらのVPS(NFS) |
|---|---|---|---|---|
| 料金体系 | 容量/通信量 | 通信量 | 容量 | 容量 |
| 最初のnGB/TBまで | 50TB / 10TB | 1TB | - | 200GB |
| 料金(月) | ＄0.025/GB / ＄0.09/GB | ＄6.99/TB | ＄0.015/GB | 1738円/200GB |
| 参照URL | [参考](https://aws.amazon.com/jp/s3/pricing/) | [参考](https://wasabi.com/cloud-storage-pricing/#three-info) | [参考](https://developers.cloudflare.com/r2/pricing/) | [参考](https://vps.sakura.ad.jp/specification/) |

一応表にしてみましたが、各サービスで料金体系が異なるので、あんまり比較になりませんね。
なので、次で **小規模サーバにおいてどのサービスがコスパがいいか** という観点で解説したいと思います。
今回において **小規模サーバとして想定するのは弊鯖** です。(登録人数約600人、アクティブ30人、メディア200GB)
登録人数が多いイメージを持たれるかもしれないですが、6年も運営していると死に垢が大半を占めます。また、 **アクティブも僕が観測する範囲では30人もいないです。せいぜい10人がいいところです。この規模感でもメディアサイズは200GBちょいくらいを維持** しています。小規模サーバはこの程度なんだって感覚で、各サービスの所感を見ていただければと思います。

![一週間の統計情報](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391534/abdf1498-fdff-c5f2-e316-c1e388e79823.png)


- S3
**料金体系が複雑** だなぁというのが印象ですね。小規模サーバの通信量(下り)が月どのくらいかはわからないですが、100GB/月使ったら$9というのはやや高いかな？とも思ったりしますね。 **単純な容量での重量課金を見ても、他のサービスと比べて高め** なので、あまり選択肢にはならなそうな感想です。
なお、S3を使っている人は [R2 Calculator](https://r2-calculator.cloudflare.com/) を使って現在のS3料金とR2料金を比較もできます。これ見るとS3高くね？ってなっちゃいますね。。
- wasabi
安価サービス！って売り出したところはありますが、 **小規模サーバだと実はそんなに安くないかもしれないです。** 1TBからなので、 **最低料金が$6.99となりそう** です。実はマストドンってメディア容量あんまり使わないんですよね……古いメディアストレージは削除する機能があるので ( `tootctl media remove` 、 `tootctl preview-card remove` )。僕は1週間程度で古いメディアを消してしまうので200GB程度で収まってます。デフォルトが30日とかでしたっけ。そのくらい残しておきたい！って要望があるならwasabiくらいのストレージは必要かな？とは思います。
- R2
リクエストが増えたりファイルサイズが増えたりすると別途課金が増えそうですが、少なくとも弊鯖で2ヶ月間利用していて **大きく追加課金が発生したことはありません** 。なので単純に保存容量で計算すればいいかな？の範囲内です。ここ2ヶ月の請求書を見てますが、どちらもべらぼうに高くはなっていってません。今のところ不満はないです。
- (おまけ) さくらのVPS
ついでなので僕がずっと使ってたさくらのVPSの追加ストレージも紹介しますね。200GB確保できるのは嬉しいんですが、ここから **容量変更できません** 。しかも **200GBのプランでもそんなに安くない** です。年間一括で払いましたが、半年しか持たなかったし、完全にこれがオブジェクトストレージ移行のきっかけでしたよね。

各種オブジェクトストレージの中でも、wasabiも小規模サーバに着目をして提供されているサービスではありますが、CloudFlare R2は更に費用を抑えることができそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391534/bef62fb7-1d11-69d2-9b83-75e306662e49.png)

なお、 Abyss.funの実際の料金がこちらです。
11月は構築月だったので日割りでやや少ないですが、12月はフルフルなのでこれがマックスかな？と思っています。

## 結論：小規模サーバならCloudFlareR2が多分一番安い

今回はオブジェクトストレージの料金比較を行いました。

本当はSLAとかも調べようかなと思ってたんですが、公開していないサービスがあったりデータと実感が違っていたりと、あんまり比較に役立たないかなと思ってカットしました。

とはいえ、CloudFlareR2もそんなに障害が多いとは思えないですね。CDNで大量のアクセスや、時にはDDoSもさばいてる実績を見た感じ、対障害性については信頼してもいいのではないかと思います。

CloudFlareを単純なネームサーバとして利用している人、便利なCDNとして利用している人、ArgoTunnelを利用してセキュア通信をしている人と様々いると思いますが、もう一つの選択肢としてR2も検討してみてはいかがでしょうか。