April 24, 2020

Mastodon で使用するオブジェクトストレージサービスを変更した

私が管理している Mastodon のサーバ mstdn.owatan.jp で使用している、 オブジェクトストレージサービスを Wasabi から Amazon S3 に変更しました。

きっかけ

Wasabi を Mastodon のメディアサーバー (サービス) として使いはじめて約 9ヶ月ほど経っていましたが、 以下のような不満点を抱えていました。

  • サーバは国内にあるが、Wasabi は国外リージョンしかないのでつらい
    • 画像の GET/PUT にそこそこレイテンシが発生する
  • たびたび障害で落ちてつらい
  • 約 700円/月 ($6 ぐらい) で、安いと言えば安いが安いわけではない

そこで、他のオブジェクトストレージサービスに変更しようかな〜と考えていたところ Amazon S3 を激推しされたので、移行先として S3 を選定しました。 また、Wasabi は使用したストレージ使用量にのみに課金がかるシンプルな課金体系 (トラフィックの in/out は気にしなくて良い) でしたが、 移行先の S3 はストレージ使用量に加え、トラフィック量にも課金がかかることから、これを低減するために CDN サービスとして さくらインターネットウェブアクセラレータ を採用しました。

この環境で、1週間ほど経過したので体感したことを書いてみます。

メリット

  • 画像のアップロード/ダウンロードが早くなった
    • 国外に置いてるサービスを国内に持ってきたため
  • ドメインがサービス固有のものから独自ドメインに変更できた
    • s3.us-west-1.wasabisys.com -> media.mstdn.owatan.jp
    • 妥協ドメインじゃない !!
  • まだ 1ヶ月きちんと使っていないが、コストは下がりそう
    • きちんと1ヶ月運用した場合のコストは、そのうちレポートします
    • 参考までに、移行作業を含め 1週間でかかっている料金は S3 が $2.5 、CDN が 70円 (13GiB; 5円/1GiB)
      • CDN には 500GiB の無償枠が付いているので、課金対象にはしばらくならなさそう

デメリット

  • 3ヶ月に 1度、CDN サービス側の証明書を入れ替える作業が発生した
  • メディアの URL が変わったので、リモートサーバ側でメディアのロストが発生した
    • mohemohe/asterism-media-migrate を実行してもらうと、戻る (懇願)
    • リモート側から見てメディアの消失が発生しないように、Mastodon サーバを稼働させる際にはメディアサーバの FQDN には注意しましょう

Tips

付録

私が移行する際に、色々読んでも .env.production の書き方が分かんね〜〜となったので一部公開します。 探している人の役に立ちますように。

S3_ENABLED=true
S3_BUCKET=media-mstdn-owatan-jp // S3 のバケット名
# AWS_ACCESS_KEY_ID=
# AWS_SECRET_ACCESS_KEY=
S3_REGION=ap-northeast-1 // S3 のリージョン
S3_PROTOCOL=https
S3_ENDPOINT=https://s3.ap-northeast-1.amazonaws.com // S3 のエンドポイント名
S3_ALIAS_HOST=media.mstdn.owatan.jp // CDN を挟んで独自ドメインで運用する場合は、CDN に向けているドメイン名

© 2020 owatan, Powered by Hugo & Kiss.