中曽根さんの摂取は控えているが、こういうのと毎日対峙しているから結局ダメ
QT: https://fedibird.com/@noellabo/108236471224272697 [参照]
主に、Fediverseへの関心に基づいた投稿を行うアカウントです。DTP・印刷に関する話をしたり、同人の話をしたり、カレーをブーストしたりします。
Mastodonのcollaborator(開発者の一員)です。また、独自機能を盛り込んだFedibirdを管理・開発しています!
Mastodonサーバ『fedibird.com』の管理者アカウントでもあります。ご連絡は当アカウントへ、サーバインフォメーションについては https://fedibird.com/about/more と @info を参照してください。
中曽根さんの摂取は控えているが、こういうのと毎日対峙しているから結局ダメ
QT: https://fedibird.com/@noellabo/108236471224272697 [参照]
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
@kainoa We are not sure of the cause, but it is currently unstable. We have begun working toward a solution.
@mizuzame いま、メンテナンスでサムネイルの表示がうまくいかなくなっています。ご不便おかけしておりますが、解消まで少々お待ちくださいませ!
※ 古い投稿に対して新しいサムネイルを生成中で、膨大にあるため時間がかかっています。その間の仮表示がうまくいっておらず、対処中です
#fedibird #fedibird_info 画像サーバの件、だいたい期待通りに動くようになりました。
ご不便お掛けして申し訳ございませんでした。
以下解説。
現在、fedibird.comの画像や動画等の添付ファイルは、オブジェクトストレージというサービスを使って保持しています。
以前はAmazon Web ServicesのAmazon Simple Storage Service(一般にAWSのS3と呼称します)を利用していましたが、現在はWasabiのS3互換のサービスを利用しています。
また、Mastodonは画像を受け取ったあといくつかのサムネイルを生成して利用者に提供しますが、この形式を変えたり増やしたりしました。
ただ、まだ一部画像がS3に残っているので、移行できていない画像を表示するために、アクセス転送しています。
また、新しい形式や追加したサムネイルは、新規画像についてはその場で生成されますが、過去の画像については再生成が必要となっています。対象は膨大で、すぐには終わりません。
そこで、新しいサムネイルがない場合に以前のサムネイルを表示するようにアクセスを転送しています。
これらの転送の仕組みが複雑で、さきほどまで全てがうまく動くように設定できていませんでした。
#fedibird #fedibird_info バックグラウンド動作させていた生成タスクもかなりの負荷だったので、一区切りついたところで一旦止めています。
おそらく応答速度が遅かったの、改善したんじゃないかな?
#fedibird #fedibird_info メディアの保持とコストの話です。
はじめに言っておきますが、fedibird.comの利用者がアップロードしている画像は、保持している画像のほんの一部。
全体の6%未満です。
ほとんどリモートから取得した画像のキャッシュです。
使ってもらってナンボです。くれぐれも遠慮しないように。
さて、本題。
基本的に、VPSなどで借りているサーバに割り当てられているストレージでは容量が不足しますし、データ破損やバックアップが大変なので、オブジェクトストレージというサービスに保持しています。
AWSのS3が鉄板で、大容量を保持していても保持コストはそれほど高くはないのですが、S3はデータの操作や転送量に対しても費用がかかり、こちらが莫大な金額になりがちです。
対策として、Amazon Lightsailを経由させることで無料転送枠を組み合わせて安価に対応してきたのですが、利用が増えたことでそれすらも超過するようになり、このところエグい課金が適用されることが続いていました。
そこで、S3はあきらめて、Wasabiの利用に切り替えました。
既存画像の転送もかなりの時間とコストが掛かったのですが、やるだけの価値はありました(なお、まだ完了してません)。
#fedibird #fedibird_info Wasabiは転送量課金はされないのですが、最近、Mastodonで利用するときのように、公開アドレスでどこからでも参照できるような利用形態が禁止されてしまいましたので、一工夫する必要がありました。
S3にしろ、Wasabiにしろ、オブジェクトストレージを直接参照させるのではなく、実際には画像をキャッシュして再配送する、メディアサーバを立てて、そこを経由してアクセスしてもらっています。
また、さらにCloudflareやCloudFrontのようなCDNをはさみ、そこでのキャッシュや分散配置の恩恵も受けられるように構成しています。
キャッシュサーバは、安価なVPSとnginxの組みあわせで、Lightsailにおくことで、S3との内部転送コスト無料、外部転送コスト固定の恩恵を受けたり、今回のWasabiの公開利用できない制約を回避するために代理で認証アクセスして実質的に公開利用出来るようにするなど、副次的なメリットも得られています。
また、オブジェクトストレージを変更しても同じURLでアクセスできるようになるメリットも大きいです。
規模が小さくても、サービス本体と同居させておく構成にメリットはあります(Cloudflareだけでもいける)。
#fedibird #fedibird_info で、最終的にはWasabiとキャッシュサーバの組み合わせで月額1万円未満の運用を目指し、だいたい実現できたかなというところです。
ここまでは(超過料金が嵩むなどして)10万かかったり20万かかったりしてたので、ようやく落ち着いた感じですね。
#fedibird #fedibird_info ああ、それと、低解像度サムネイルの生成で保存容量が増えてるんですが、別のサムネイルの形式をWebPに切り替えるなどして、全体に増えないよう手を打っています。
オブジェクトストレージや画像キャッシュサーバだけでなく、Mastodon本体を置いているVPSやベアメタルサーバについても、無料転送枠があって、これも超過するとエグい課金がやってきます
メールサーバも通数超過すると……ということがあり、SendGridの有料サービスで枠をとり、Mailgunをサブに使っています。
いろんなところで節約を考えないといくらでも費用増えていくので、ちょっとご不便お掛けしたりしてますが、いろんな工夫をしているという次第です。