弊マストドン(mstdn.binfish.jp)の構成と費用について

弊お一人様丼の構成が整ってきたので、ここらで一度構成や費用について簡単にまとめておく。 システム構成について ConoHa (東京リージョン) ロードバランサ リーストコネクション DSR方式 Web Server (App) OS: Ubuntu 18.04.1 LTS vCPU: 2 Core RAM: 1GB SSD: 50GB DB Server (DB) OS: Ubuntu 18.04.1 LTS vCPU: 2 Core RAM: 1GB SSD: 50GB AWS (東京リージョン) Amazon S3 (Media) その他特記事項 2つのドメインで運用 https://mstdn.binfish.jp https://binfish.social (ただしbinfish.socialはmstdn.binfish.jpにリダイレクトする) ConoHaのWebサーバとDBサーバはプライベートネットワークで接続 アプリサーバが1台ならバランサイラネーじゃんというのは、はい。そうです。なんですが、そこはまぁ遊び半分、勉強半分です。 あと過去に1回、バルス祭りのときに増強したことがあるので、まぁやろうと思ったらいろいろできるよというところで。   費用について ※参考値(2018年9月費用) ConoHa (App, DB) VPS …¥900 * 2 …

バルス祭り結果報告(マストドン)

eye catch image

バルス!!! ってことでバルス祭り(ラピュタ地上波放送)に合わせてちょっとだけマストドンのシステム構成いじってみたのでその記録。 システム構成 APサーバを2台に増やした上で、APの各サーバのメモリを2倍+DBサーバは4倍に! 単純計算で4倍になりました。 *Sidekiqの起動プロセス/スレッド数も各サーバ2倍に設定しました Sidekiq CPU 結論 増強なくてもいけんじゃね。 (おひとり鯖なんてこんなものか。。) 一応各所のコメントをざっと見た感じ、 バルスの威力はフォロー/フォロワーのクラスタに依存しそう Sidekiqのジョブが溜まってキューが詰まる 詰まった結果TLが遅延する でもよっぽど大きなインスタンスじゃない限り落ちない って感じらしい。 所感 次はなにも対策せずに通常構成のまま臨みたい。さすがに落ちるかな。というか落ちろ。 バルス!!!   ではでは。

“マストドンのセキュリティ”を読んで思ったこと

Eyecatch image

前回の記事の中でいただいてコメントで、マストドンのセキュリティという記事を教えていただき、読んだ。 自分自身、関心のある部分だったので興味深く拝読したのだが、その感想と、自分がオープンなインスタンス(現在はシャットダウン済み)を運営した際の話を雑に残しておこうと思う。 記事「マストドンのセキュリティ」の要点 ユーザーのメールアドレス/パスワードはDBに暗号化された状態で保持されている ユーザーのIPアドレスもサーバーで保持されている マストドンはOSSなので運営者はソースコードの改変が可能(※1)。悪意を持って暗号化しない素のパスワードを抜くような改造も可能 企業が運営しているインスタンスや利用規約の確認など、信用に値するインスタンスを自分でちゃんと見極めて利用する必要がある。 ※1…マストドンはAGPLライセンスなので通常はコードを改変したら公開しなければならないが、悪意ある運営者がそれを律儀に公開することはまずないであろう パスワードの持ち方などは自分でも確認しておこうと思っていた部分だったので、興味深かった。 IP保持の部分は、ユーザーのプライバシーの問題もあるが、運営者にとっても自衛というか、なにかあった際(殺人予告とか問題のある投稿とか)の調査・対処のために仕方ない部分もあるかと思う。 自身がオープンなインスタンスを運営していたときの話 私がオープンなインスタンスを公開してからシャットダウンするまでの経緯は以下の通り。 まず自分専用のインスタンスを試行錯誤して建てる そこで得たノウハウを使い、身近な人たちに気軽にマストドンに参加できるインスタンスを提供しようと思いオープンなインスタンスを構築・公開 身近な人に公開、登録してもらって遊び始める 運営上の心配事がいろいろわかってくる ユーザー数が増える前にインスタンスをクローズしようと決断、シャットダウン 運営上の心配事 自分がいちインスタンスを運営する上で生じた心配は以下の通り。 セキュリティ以外のものもひっくるめて心配したことを記載している。どれも最初にある程度考えておけよという話ではあるが、、当時はマストドンおもしろい!みんなで遊びたい!としか考えてなかったのである。。 利用規約の問題。 基本的に自分の身内、知っている人だけに登録・利用してもらおうと思っていたが、インターネット上で公開されている以上、自分の知らない人も登録可能なわけで、利用者の良心にまかせておくわけにもいかないと気付く。 mstdn.jpやPawoo、friends.nicoを始め、他のインスタンスの利用規約を参考にしてとりあえず用意することに。 運用経費の問題。 当時は可用性やメンテ性を考えて、DB、イメージサーバーをAPサーバーと分離していたので、APサーバー1台、DBサーバー1台とAWSのS3を利用。またAP1台だからあまり必要ないかとは思ったけど、後々APを増やしたときのことなんかも考えて有料で利用できるロードバランサーも追加していた。 1台1台のスペックは最小限だったし、公開していた当時は利用者も数えるほどだったので、それぞれの費用も大したことは無かったけど、ユーザー数が増えたときのことを考えるとやはり頭が痛かった。 寄付なんかをやってるインスタンスもあるようだけど、自分の考えとしては人にお金を出してもらうというのはいろいろな責任が生じてくるし、かえって自由な運営の弊害にもなってしまいそうな気がしてやらないと決めていた。 トラブル発生時の対処に関する問題。 そもそも自インスタンスやその住人が将来どんなトラブルを生じるか全く想定できなかったし、万が一実際にトラブルが生じたときには初期対処が重要だと思うけど、しがないサラリーマンの自分が日中に発生したトラブルに即時対応できるとは思えなかった。 セキュリティに関する技術的な問題 自分は普段アプリケーションの開発者であり、インフラの知識は正直乏しい方だと思う。インスタンス構築にあたり、サーバーの設定はいろいろ調べて、ユーザー管理だのポート設定だのDDOS対策だのいろいろやったけど、結局攻撃を受けて個人情報が抜かれたりしたら全部自分の責任なわけで。。 ほかにもなにか細かい心配はいろいろあったような気がするけど、インスタンスシャットダウンに至る主だった心配ごとは大体上記のものであったと思う。 結局公開3日でインスタンスをシャットダウンするに至りました。 (登録してくれたみなさん、ごめんなさい。) その他、利用者側の視点でそれどうなの?と思うこと mstdn.jpのぬるかるさんの電撃ドワンゴ入社や、mastodon.cloudの企業スポンサーのニュースに触れて思ったのだけど、結局利用者の情報がどこに持って行かれるかわかんないなと。 mstdn.jpは正直だれが見ても個人で運営できる代物じゃなくなってたし(だから100万とか寄付するような人もでてきたのでしょう)、mastodon.cloudは金銭的な援助は受けてないらしいけど、ぬるかるさんがドワンゴに行ったとき、安心したと同時に「わードワンゴがmstdn.jp持ってったか!人ひとり雇うだけでこれだけユーザー数あるサービス手に入るなんてめちゃくちゃ安い買い物だよな」って思ったよね。 mastodon.cloudにしたって、ただの企業の広告塔になるだけで済むならまだいいけど、そのうち金で利用者情報を売るようなインスタンスが出て来ることだって全然あり得るでしょ。 でmasotdonがでかいコミュニティに育ててインスタンス売買するような世界になっちゃったらほんとに世も末だなぁと思った次第です。 まとめ ここまでの心配や疑問を解決してくれるただひとつの方法、それが自分専用インスタンスなんじゃないかと。自分専用インスタンス大正義。 もっとも専用インスタンスが周りに与える影響、将来生じる問題についてはまだまだ見えない部分が多くて、自分専用とはいえ慎重に運営していかなければいけないなとは思っているけど。 自分専用インスタンスを作るのは無理だけどマストドンに参加したい、という方はやはり「マストドンのセキュリティ」の方が書かれている通り、信用に値する企業や組織、人物の運営するインスタンスに登録すること、普段使うメインのメールアドレスとは別のサブメールアドレスを使い、パスワードは使い回さないといった自衛が必要だと思います。 そして利用をやめると決めたアカウントに対しては、現状でマストドンの退会機能が無い以上、メールアドレスを使わないアドレスに変更しておく、投稿を削除しておく、プロフ画像を替えておくといった対策もあるのかなと。(Twitterなど他のサービスのアカウントと紐付けられてどうこうされないための対応。) また、オープンなインスタンス運営者としては、車の運転者と同じで、自分は人の命(個人情報)を預かっているのだと意識して運営する必要があるし、記事の中で述べたような問題を覚悟した上で運営していく必要があると思います。 日本でマストドンが広まってまだ約ひと月、これからどんな問題が生じてくるかわからないけど、運営者・利用者ともに、常にアンテナを張って安全・快適なマストドンライフを送りたいものですね。 ではでは。

Mastodon(マストドン)に触れて思ったこと。

eye catch image

話題の新進気鋭SNS、Mastodon(マストドン) に触れていろいろと思うところがあったので、ファーストインプレッションをぱぱっと残しておこうと思います。 Mastodon(マストドン)とは Mastodon(マストドン、以下同)は新しいSNS(ソーシャル・ネットワーキング・サービス)です。 ドイツの24歳の青年が作ったらしいです。 Wikipediaによれば、SNSとしてはマイクロブログ(ミニブログ)というものに分類されるようです。 興味深いのはTwitterが140文字をひとつの区切りとしているのに対して、Mastodonは現在、最大500文字まで入力可能となっている点。 これまでの分類では(少なくとも日本では)「マイクロブログ」と「ミニブログ」はやや同義で遣われていた向きがあるけれど、これからはマイクロブログは200文字くらいまで、ミニブログは500文字くらいまで、といったように区別されていくかもしれないなと。まースマホとタブレットの境界、みたいにどうでもいいっちゃどうでもいいけど。 Mastodonの特筆すべき点は分散型プラットフォームや分散型SNSと言われ、サーバーやそのオーナーが1箇所ではないというところ。これが非常にユニークです。 これについてはインスタンスというMastodon用語と絡めて後述します。 尚、ページの最下部にMastodon用語をまとめていますので、本記事に登場するわからない用語はそちらを参照してください。 画面と機能の簡単な紹介 上は実際にMastodonにログインしたときの画面。 デスクトップ場合、全体が4つの窓に分割されているデザインとなっています。 左から、新規投稿、ホーム、通知、スタート(メニュー的なもの)となっています。 新規投稿 自分の投稿(トゥート)を作成するための窓。 入力のためのテキストエリアがあるほか、画像追加ボタン、公開範囲ボタン、CW(コンテンツワーニング、閲覧注意)ボタン、文字数カウントと「トゥート」ボタンがあります。 ツイッターでは投稿はそれぞれ「ツイート」と呼ばれますが、Mastdonでツイートにあたるのがこのトゥートということのようです。 本記事でも以降は投稿を「トゥート」と記述します。 ホーム ホームには自分のトゥートと、自分がフォローしているユーザーのトゥート、及び自分がフォローしているユーザーがブーストしたトゥートが表示されます。 通知  ログインユーザーへの以下の通知が表示されます。 新しいフォロワー お気に入り 返信 ブースト スタート  メニュー的なもの。以下の項目が選択できます。 ローカルタイムライン 連合タイムライン ユーザー設定 お気に入り ブロックしたユーザー サーバー情報 ログアウト 触ってみて感じたMastodonの良いところ とりあえず登場したばかりということでコミュニティが盛り上がってる! リアルタイムでタイムライン表示が更新される!タイムラインを見ていると流れが速すぎてトゥートを読むことができないほど。(笑) 発言が気楽。「この流れなら言える」じゃないけど、タイムラインの流れが速すぎてまさに「この速さなら言える」という感じ。 日本語ローカライズが不十分で、ボタンやリンクの日本語がところどころ変なところ。(笑) 逆に愛せるって意味で良いなと。 「連合」って! インスタンスが分散されているため、特定の企業や組織にプラットフォームが牛耳られることがない、ということ。 つまりTwitterならツイッター社、FacebookならFacebook社が運営してるけど、Mastodonは管理者がインスタンスごとに存在する。 また、そのためインスタンスを建てる技術力さえあれば個人でもインスタンスを運用できるということ。 イメージしづらければ、掲示板を思い浮かべてみるとわかりやすいかも。 掲示板というプラットフォーム=Mastodonというプラットフォーム 板=インスタンス 板の管理者=インスタンスの管理者 インスタンス同士がつながる、という概念がユニーク。 エンジニア向けのエディタっぽい暗い背景色がいい感じ! さもドイツ人が作った、って感じ。 インスタンスの管理はインスタンスの管理者次第。 機能の改善 …