MastodonのストレージをS3からCloudflare R2に変えたら維持費が安くなった話

2024年1月22日テクノロジー

3カ月ぐらい前、MastodonのストレージをAmazon S3からCloudflare R2に乗り換えたという記事を書きました。

3カ月運用して、コストの全貌がおおまかに判明したので、改めて記事にしてみる次第です。

結論はタイトルの通りなんですが。

用途の前提条件

いかなる場合もS3よりR2のほうが安いよ!とは言えないので、私の用途をまとめると、

  • おひとりさまMastodon/Misskeyのストレージ
  • ひとりとはいえ、Mastodonはリレーサーバーに接続しているので、連合TLは濁流のように流れている
  • サーバーそのものはAWSではないサービスで運用している
  • CDNはS3にかかるもののみCloudFrontを使って、それ以外はCloudflareをはじめ他社CDNを使っている

というものです。

EC2で運用していたり、あるいは一般的なウェブサイトとか、ログ置き場といった使い方をする場合、
削減率は異なるものになると思われます。

金額

先の記事にある、2023年8月度のAWSからの請求額は

$7.51でした。

※この金額はほぼすべてS3で占めています。

そして、2023年12月度のCloudflareからの請求額は

$0.80!!

同月度のAWSは

$0.03!!!

そしてこの金額はAWSさんが目をつぶってくれたので、実質0円!!!
(※請求があまりにも少額すぎる場合はAWSが免除してくれるシステムがある)

ということで、日本円換算(クレカの利用明細より抜粋)すると、
2023年8月は¥1,099だったものが
2023年12月は¥118になりました。

驚きのコスト削減率9割

やはり転送量がでかい

請求書を見ると、ストレージ料金だけしかかかっていない。

転送料金に関しては無料枠で収まった模様。

要するに、だいたいこういうこと。

(※ストレージに関するもののみ:AWSはこれに税が乗るとさっきの請求額になる)
(※表の通り、8月の反省を踏まえて、Mastodonのデータ量を削減する努力もしてます…。)

Amazon S3の無料枠は1年で終わるため、2年目以降は無料枠なしで戦うわけですが
Cloudflare R2は無料枠がずっとついてくる恩恵ですね。

・ストレージ10GBが毎月無料、超えたら1GBあたり0.015USD
・書き込み操作が100万回が毎月無料、超えたら100万回あたり4.50USD
・読み取り操作が1000万回が毎月無料、超えたら100万回あたり0.36USD

弊ブログ:Cloudflare R2をMastodon等用に作ってみた

データ引っ越しが発生した10月も転送量を超えなかったのは意外でした。
予め転送量を削減しておいたのが効いた気がします。

R2の注意点

これは手放しで喜べる結果ではあれども、文句はあります。ちょっとだけ。

「結局いくら使ったか」が分からない

まず、使用量の内訳や推移を知ることができないこと。

要するにCloudWatchに相当するものがないということ。

一応、各バケットの操作量目安は存在します。

しかし

  • バケット単位で分かれて表示されていること
  • 請求はR2利用開始日を起点に1カ月ごとだが、ここの数字は1日~末日の集計であること

から、数字への信頼性はちょっと微妙。

さっきの表の操作回数も、12月はスクショを撮っていた数値をもとに推測した回数です。

請求書に載れば具体的にいくら使ったのかは分かりますが…
請求が発生しないと何も分からないというのは、ちょっと不親切だなあという気はしました。

総合クラウドプラットフォームであるAWSと比較するのは、かわいそうなのかもしれないですが。

請求が少額だと次の月に合算される

1カ月あたりの請求が$0.50を下回ると、請求額がプールされます。
そしてプールした合計金額が$0.50を超えた月で、請求書が発行されます。

決済システムの都合なんだそうです。

私の場合、10月度(10/9~11/8)が$0.29だったようで。

11月中旬ごろに、Cloudflareからの初めての請求書が来るかなーとワクワクして待っていましたが
ぜんぜん来ず。

12月になっても来ず。
踏み倒してしまったか?請求プロセスを間違えてたか?とヒヤヒヤ。

12月10日になって、10月度・11月度の2か月分をまとめて請求されました。

…ちょっとびっくり。

請求ダッシュボードの操作に慣れが必要

AWSも特殊といえば特殊なのですが、あちらは一般人でも理解できるようなものになってきました。

一方、Cloudflareはまだまだ企業向けサービス、あるいは月額サブスクサービスがメインのためか、
R2だけ有料プランを使う個人のユーザーには少々とっつきにくいです。

たとえば、最初はサブスクリプションページに請求額が出るのかなーとワクワクしていましたが

ここは一生この表記から変わらず。「更新日」の日付だけが毎月変わっていきます。
たぶんサブスクが有効の間、ずっとこうなんでしょうね。

具体的な金額は、請求書およびドキュメント というところに、請求書が発行され次第追加されていくようでした。

たまに未払い扱いになる

原理がよく分かっていない(放置してたら自動入金されるのかな?)のですが、

請求日に請求ダッシュボードへアクセスすると、直近の請求が未払い扱いになっていることがあります。

この記事を投稿したあと、日本時間2024/2/9の夜に見た図↓

カードから勝手に落としてくれたらいいものを、なぜか未払いということにされています。

心臓に悪い。

ちなみに「今すぐ支払う」ボタンを押すと、どの未払い請求書について、いくら支払うかを選択する画面に遷移します。

法人で契約しているなら、管理できてありがたいのかもしれないですが…。

ドメインのネームサーバーをCloudflareにしないといけない

これは以前の記事にも書いている注意点ではありますが。

R2のファイルへ到達するためのドメインはCloudflareからは原則用意されず、自分で調達する必要があります。
(※テスト用途で使えるドメインは発行されますが、テスト用である旨注意書きされています)
そしてそのドメインは、Cloudflareに登録しているドメインしか使えません。

Cloudflareへの登録はサブドメイン単位ではダメで(Enterpriseプランなら可らしい)、
メインのドメインから丸ごと預ける必要があります。

まあCloudflareは元来超大手DNSサービスを擁するので、あんまり問題ではないかもしれませんが…
普段使いのネームサーバーと別れないといけないというのは、AWSにはない悩みです。

リージョンを明示的に指定できない

個人用途ではほとんど問題になりませんが、企業用途の場合は問題になりえます。

S3の場合はどこのリージョンにバケットを作るかを選択可能ですが、
R2の場合は原則「おまかせ」です。

「おまかせ」では、バケットを作成した場所に一番近いところにあるリージョンが選ばれやすいとのこと。
日本で作成すると概ね「アジア太平洋」データセンターに配備されそうです。
ただ、それがどこの国かは明示されていません。

なお、欧州でよければ、欧州に固定することは可能です。
それ以外の地域は固定できません。
(Cloudflare本体は日本に固定することも可能らしいんですが…)

データを国外に保管してはいけない企業は、現時点ではR2を選択するのは厳しいでしょう。

自分の場合はR2に引っ越してよかった

いくつかAWSでは起きない悩み事も起きることがありますが、
個人用途の場合は、だいたい現状で満足しています。

なによりデータ量が多くても、月100円ちょっとでMastodonのストレージが全部賄えますんで。
.comのドメイン維持費ぐらい安いのは大変心強いです。

ということで、おひとりさまサーバーでストレージにあんまりお金をかけたくないなあ…という方、
R2という選択はいかがでしょう?