※ヘッダ画像は、まろやかなカフェキチ先輩が書いてくれたドン・ゴロツキのキャラクター「56ちゃん」です!
マストドンとは
ここを読んでくださる方はたいてい(っていうかほぼ全員)わたしのマストドンアカウント経由で来てくださってると思うのですが、いちおうwikipediaへのリンクを貼っておきます。
すごく簡単に言うと、個人でもTwitter社もどきになれるよ!っていうソリューション。ちっちゃい呟き系SNSが割と…「これまで考えられてきたSNS構築の手間」とは比較にならないくらい、ラクにつくれる。かつ、超気軽に各SNS(インスタンスと呼びます)同士がつながれる。
別インスタンスの人をフォローしまくれます。どこのインスタンスの人か忘れたりするくらいにはw
で、私も『ドン・ゴロツキ』という、非常に小規模なSNS=インスタンスをつくった次第です。
ドン・ゴロツキを立てたわけ
実は『ドン・シエスタ』という別インスタンスも、私は既に持ってました。なぜ追加で『ドン・ゴロツキ』を立てたのか?
4つくらい理由がある。
シエスタは超クローズドなので、多少オープンな(新規登録を受けつける)SNSやってみたかった
jpがなんか変な空気だったので※きぼう…以下略※、ちっちゃい避難先(自分含む)作ってみよかな?と思いついた
イチから自力でインスタンスを構築してみたかった。自力メンテできるようになりたかった
できるだけ安くカスタマイズしたい
こんな感じ。
最初、色々試しました。Conohaのスタートアップスクリプトを使う、AWSで立てる系のブログ眺めて頑張る……ねえ?いくらなんでもスタートアップスクリプトは上手くいくと思うじゃないですか?失敗ですよ。今となっては理由わかるんですが(そもそもドメインの設定を先にしないとできるわけがない)、わかんなかったっすよねー。
で、悟り始める。
「だめだこれ。まず立てられないし、奇跡的に立てられたとして、滅茶苦茶セキュリティ危ないヤツになる」
なんも分かってないですからね。ネットに転がってるマニュアル通りやったとして、気づいてない大穴があるに決まってるんですよ。このままではアカン。
ということで、
前々から気になっていたDiscordの鯖缶工場さんに参加させていただき、インスタンス構築支援を依頼しました。
どのように #鯖缶工場 へ頼んだか
本当に素晴らしくご指導いただいて、「ありがとうございます」を500回言っても足りない 。言い続けたい #鯖缶工場。ですがそれだけでは何の説明にもならないので、素人たる私が、どのように #鯖缶工場へ依頼したか?を書き出してみます。
★大まかな流れ
Discordの鯖缶工場(リンクこちら)に参加する
「立ち上げ支援依頼」のチャンネルに、支援依頼を書き込む
リーダーさんが要求をまとめたうえで、支援者を募ってくれる(3名まで)
専用チャンネルを作っていただく(例:ゴロツキ丼)
ゴロツキ丼チャンネルで、支援していただきつつインスタンス構築していく
2の支援依頼の段階で、下記の通りズラズラ書き込みました。インスタンス作成において、なにを重視しているかを(素人なりに)示したほうがいいかなと思ったので。※今となっては無理すぎること書いてる……100人登録とか絶対無理
■インスタンス名:がらくた丼(仮)
■インスタンステーマ:汎用鯖(規約ゆるめ)
■希望するインスタンスの規模:100名程度上限で、問題ない稼働
■予算感
-----
ともかく安くあげたいというところです。海外VPSが安いということでトライしてますが、「それかえって高いし危ないよ」などあったら教えていただきたいです。また月5ユーロくらいまでは出せるので、2GBにできるならしたい(のですが英語でよくわからなくて挫折しています)
あとメールサーバ等は他にいらないんしょうか?
■利用VPS:aruba cloud
https://www.arubacloud.com/
・1.00ユーロ/月 契約済み
■Docker/非Dcoker
-----
技術が乏しいので、アップデートがしやすいものがありがたいのと、どちらも試して失敗しているので分からなくなっています。。
■取得ドメイン
-----
freebomで garakuta.なんちゃら(無料)
ムームードメインで gorone.xyz(有料)
※無料だとうれしいですが、これは買われると消滅してしまうんですかね?
引用元:Discord
ここでDockerを使うか、使わないか? メールサーバはどうするか?という確認があって、私はDockerを使わない=非Dokerの選択をしました。Dockerまったくわからないし、サーバを他サービスと併用する気がなかったからです。ドメインは、cloudflareが使えないとのことで無料取得ぶんは却下。メールに関しては、このときお勧めされたリレーサービスのMailgunを、ドン・ゴロツキで使っています。ありがたや。
実際のご指導@鯖缶工場
これがですね…教えてもらったことは自分なりに理解した(つもり)ですが、他人に説明できるレベルというのには、ちょっと達してないんですね…AWSの無料枠を使って、ひとりで立て直して復習してるところです。jemalloc適用がすごく効いてる、という感じでしょうか(たぶん…)
基本的には、改造のほぼない、シンプルな構成で教えてもらったと思います。詳しく知りたい人は、Mastodonの公式ドキュメントを読むか、親切なインスタンス構築ブログを読んでみると幸せかも(逃げ)。
ただし、ドン・ゴロツキのためだけに工夫していただいた事柄が、いくつかあります。それはぜひご紹介したいので、ざっくり書いてみたいと思います。主にメディアストレージの節約ですw
★画像容量を大幅に節約する改造
ドン・ゴロツキは、メディアストレージ(画像保存しておくところ)を分けています。aruba cloudにくっついてるオブジェクトストレージ・サービスの利用です。これが10GB/0.5ユーロっていう料金設定なんですが、何もしないと速攻で5GB/日くらい消費してしまうんですよね…死ぬ。お財布が死ぬ。これはまずいということで、保存時に画像を軽量へ変換する改造を追加しました。
PNG画像は、jpg画像に変換される(該当PNGのサイズがjpgより小さかったら変換しない)
最大サイズが800×800、画質:80になるよう変換される
透過PNG/gif/動画は処理しない
Githubはこちらです(オーナーにしてもらっていますが私はなにもしていません…)
これはそもそも、アイマストドンの管理者さんが書かれたコード(PNG⇒jpg変換の機序、影響しないケースのルール定義など)に、支援者の方がカスタマイズ(画質の変更/リサイズ機能)を加えてくださったものです。アイマストドン管理者さんの説明プレゼン資料もありますのでぜひ。
この時点でメディアストレージの増加は、大幅に1GB/日くらいに減りました。何だろう…ぜんぜん画質の劣化わからないんですよ。支援者の方に「これ効いてますよね!?」って聞いて確認しないとわからないw スマホ利用だったらまずわからないです、私は(目が節穴の可能性)。すごいことですよね。
★画像容量を大幅に節約するCrontab
連合からも日々、画像を受け取ってメディアストレージは膨れていきます。前日分より前の、連合から受け取った画像は削除する(読み込めば再取得はできる)というcrontabをつくり、毎日走らせています。これも支援者の方が考えてくださった策です。ちなみにプロフィール関係の画像(アイコンやヘッダ画像)には影響しません。
これの効果がすごくって、0.05GB/日の増加(2019年10月現在)に抑えられてますw
しゅごい。あと半年くらいは70円払わなくていい。あと「またお前それかよ」って感じなんですけど、何が消えてるか全然わからない。前日分の連合ってほとんど見ないし…再読み込みすればほぼ取得してきてくれるし…
結論
#鯖缶工場 しゅごい。
おまけ:ドン・シエスタのこと
もうひとつの『ドン・シエスタ』もついても、少しふれておきますね。
こちらはホスティング・サービスを利用。私はmasto.hostにお願いしています。「有料でマストドンのインスタンスたてて保守してあげるよ」というwebサービスです。
はっきり言おう、「なんの文句もない」。
masto.hostはポルトガルのHugo氏が運営していて、敷居を高く感じがちかな。しかしご安心あれ、Hugo氏のホスピタリティが物凄いので(メール返信が秒速とか)、国境を越えた安心感があります。ただしサーバ自体が日本から遠方なので、クラウドフレアなどで工夫して、アクセスの重さは解消したほうがいいかもしれませんが。そのやり方すらHugo氏が教えてくれたんですけど。本当にありがとうHugo氏。
またマストドンのインスタンス運営においては、スタートよりアップデートのほうが懸念事項という向きもあるくらいなんですが(難しいんだ…)、masto.hostなら何もせずとも最新バージョン。ver2.5.0のときも、迅速に上げてくれていました。必ずメンテ前予告を行ってくれるので安心です。それで月5ユーロですからねえ。
気軽に安定して使いたいならホスティングがいいですし、臨機応変に対応したければ、やはり自分で立てると中身が分かっているので(なんとかなる)っていう、また別の安心があります。
さて、「ホスティングにも関わらず支払いを滞らせて大騒ぎする」という鯖缶として最低行為を働いた塩ライスなんですが、そのお話はまた今度。ここまで読んでくださった方、ありがとう。
ライスには塩を