古いバージョンのブラウザーを使用しています。MSN を最適にご利用いただくために、サポートされているバージョンをご使用ください。

素人でもMastodonのインスタンスは立てられるかやってみた

ITmedia NEWS のロゴ ITmedia NEWS 2017/04/19 20:00
素人でもMastodonのインスタンスは立てられるかやってみた: インスタンスは立ち上がったけれど © ITmedia NEWS 提供 インスタンスは立ち上がったけれど

 4月から急激に広がった、Twitterライクなサーバ分散型ソーシャルネットワークのマストドン(Mastodon)。Twitterと同じように投稿(トゥート)、リツイート(ブースト)、いいね(お気に入り)などの機能を備え、「ポストTwitter」としても今注目を集めている。その特徴は、誰でも自由に個人のサーバ上にインスタンスを立てられること。例えば@nullkalさんが運営する「mstdn.jp」やPixivが運営する「pawoo.net」がそれぞれ1つのインスタンスで、あるインスタンスに登録したユーザーはそのインスタンスの運営方針に従いつつ、「連合タイムライン」というシステムで他のインスタンスユーザーの投稿も閲覧できる。

 インスタンスごとに独立しているため、1つのインスタンスがある日突然なくなったとしてもその他のインスタンスがなくなるわけではなく、マストドン自体はなくならないというのが分散型たるゆえんだ。一方、あるインスタンスでアカウントを作っても他のインスタンスには影響がないため、同じIDが取られないように複数のインスタンスにアカウントを作っている人も多い。とはいえ、IDだけでアイデンティティーを確立しようとすると現在立っている約1000個のインスタンスにそれぞれアカウントを登録することになってしまう。

 それに対して「自分のドメインでIDを持つことが大事」と言ったのがゲヒルンの石森大貴(@isidai)さん。確かに自分のドメインでインスタンスを立てればその管理者は自分になるので、その中で「これが私である」というのが何よりも強いアイデンティティーになるのは間違いない。

 しかし、自分でインスタンスを立てるのってやっぱり難しいんじゃないだろうか。それとも案外簡単なのだろうか。そんな疑問を持った筆者は、素人でも独力でインスタンスを立てられるのか自分自身で実験してみることにした。

●筆者のスキル

 先に筆者のサーバサイドスキルを申しておくと、「全くない」。手持ちのAndroidスマートフォンのroot権限奪取のためにexploitツールをコマンドを使って流し込んで遊ぶというようなこともしていたため、Linuxのコマンドについては少々知っている部分もなくはないが、サーバをコマンドで操るという経験は今までしてこなかった。サーバを借りた経験もなければ独自ドメインを取ったこともない。こんな素人が挑戦する。

●情報の整理

 まずやるべきことはインターネットにたゆたう先人たちの知恵をかき集めることと、集めた知恵を整理することだ。

・今何かと話題のマストドン(mastodon)鯖を自分用に無料で立てる方法 - jtwp470’s blog

・さくらのVPSで自分の Mastodon サーバを最速でつくる方法 - Qiita

・さくらのVPSでmastodonをセットアップするAnsibleプレイブック - GitHub

・Dockerで雑にMastodonを起動する方法 - Qiita

・CentOS7でmastodonを建てる - Qiita

 参考に見たのはこのあたり。当然といえば当然なのだが、これらの記事を見ても分かる通り、インスタンスを独自ドメインに立てるまでには何通りもの方法がある。それを整理しよう。

○サーバはどこのものをどのような形で使うか

・外部サーバを契約するか、自分のPCをサーバにするか

・サーバの提供事業者はAWS、さくらインターネット、Azureなど

・VPSか、専用サーバか

→さくらインターネットの「さくらのVPS」が日本企業で分かりやすそう

○サーバにインストールするOSは何にするか

・CentOSかUbuntuが主流?

→マストドン公式ドキュメントはUbuntuがベース

○サーバ上の環境構築

・完全手動か、仮想環境を使うか

・DockerとVagrant(軽量な仮想環境)向けの設定が公式に用意されている

→手動は手間が多い分ミスが増えそう

●やってみよう

 今回、筆者は「さくらのVPS」に、「Ubuntu 16.04」をインストールし、「Docker」によってインスタンスを起動してみることにした。ちなみに独自ドメインはお名前.comで取得した。1年間で107円(税込、以下同)。安い。

 さくらのVPSもプランがいろいろあるが、メモリは512MBだとやや足りないという話があったため1GBプランにした。料金は初期費用1620円、月額972円だ。年間一括で払うと1カ月分お得らしいが、1年間使い続けるか分からないので月額支払いとした。ちなみに、クレジットカード払いの場合は2週間の無料お試し期間がついてくる。

 契約したサーバはさくらのコントロールパネル上で管理できる。ゾーンが石狩になっているのは東京のSSDプランが売り切れていたため。

 起動や強制再起動はここから行える。コンソールもここから扱えるが、文字の色付けなどあまりリッチではないので別のターミナルから接続したほうがいい。また、サーバ契約直後は標準OSとしてCentOSがインストールされているが、今回Ubuntu 16.04を使うことにしたので「各種設定」から「OSインストール」を選択して、画面の言う通りにインストールを完了させる。

 筆者のクライアント側の環境はWindows 10だったので、「Tera Term」というターミナルエミュレーターを使用してssh接続した(Bash on Ubuntu on Windowsからでも可)。

 以降の設定は、基本的に「今何かと話題のマストドン(mastodon)鯖を自分用に無料で立てる方法 - jtwp470’s blog」と「Dockerで雑にMastodonを起動する方法 - Qiita」を参考に進めた。

 やることはDocker関連のセットアップとそれに必要なツールのセットアップ、GitHubからソースコードのクローン、設定用ファイルの編集、データベース初期化とプリコンパイル、そしてマストドン起動という流れ。

 正しくコマンドを追えばそこまでつまずくものはないが、sudo忘れ、カレントディレクトリの移動忘れ、コマンドのスペルミスや、ターミナル上でのテキストエディタ(Vim、Emacs、nanoなど)の使い方を知っているかどうかが初心者の引っ掛かりやすいところだなあと感じた。筆者はデスクトップ版のUbuntuを使ったことがあったので基礎的なLinuxコマンドにはある程度慣れていたが、全くLinuxコマンドを見たことがないという人には厳しそうだ。

 さて、自分用のマストドンを起動するまでは取りあえずできたのだが、ここからのhttps化でつまづいてしまった。http、つまり暗号化がない状態でパスワードなどの重要情報を通信するのは怖すぎるのでSSLによる暗号化は運用前に是非やっておきたいことなのだが、そのためのLet's Encryptを使った証明書の取得がうまくいかない。

 しばらくの試行錯誤の後に気付いたことなのだが、ドメイン名とIPアドレスをひも付けるDNSレコードの設定を証明書取得の試行直前に行っていたのでDNSの設定が反映されておらず、それでLet's Encryptがドメイン名からIPアドレスを参照できなかったのかもしれない。

 試行錯誤しているうちにマストドンが起動しなくなってしまったので、一度仕切り直してもう一度チャレンジしたい。

 このように、サーバに触ったことがない筆者でもマストドンのインスタンスを(httpだけれど)立てることはできた。作業のかなりの部分をGoogle先生に助けられたが、Linuxコマンドを多少知っていたことでハードルが下がった面もある。全くLinuxコマンドを知らないとより高度なググラビリティが求められることだろう。

 誰でもインスタンスを立てられるほど簡単なものではないというのが正直な感想だが、せっかく目の前に格好のサーバ教材が転がっているのだから、この期に遊んで勉強してみてはいかがだろうか。

ITmedia NEWSの関連記事

image beaconimage beaconimage beacon