おひとり様サーバーに憧れる

2023年の11月。

つまりおおよそ1年前からMastodonを使用してきた。

ハロー・ワールドという本を読み、オープンソースのSNSという響きに憧れ開始した。

そのレベルの解像度なので何も考えずに有名で汎用的なhttps://fedibird.com/にお邪魔させてもらってきた。

それから1年経ち、なんだかんだ呟いたりしているうちに、自分のサーバーを持ちたくなった。

サーバーの立ち上げに興味を持つ

いままでいくつかサービスを公開してきた。

  • vercel
  • firebase
  • aws
  • cloud run

上記のようなサービスを使ってきたが、vercelfirebasegithubにデプロイするだけでサイトが公開されるし、awscloud runはコピペするだけでなんとか乗り切ってきた。

つまりサーバー何もわからない、エンジニアなのに。

これじゃいけないということで、vpsを借りて好き勝手出来る環境を作ってみようと思い立ち、それならMastodonを運用するのがいいじゃないかと天啓をひらめいた。

思い立ったが吉日、vpsを借りて立ち上げてみた。

MastodonをエックスサーバーVPSで立ち上げる

そもそも必要な要件がわからない

vpsを選ぶうえでいくつか候補があったけど、過去のブログでレンタルサーバーとしてお世話になったエックスサーバーを使うことにした。

前述したとおり、サーバー何もわからないので、「メモリ」「vCPU」「NVMe SSD」とかどのくらいを選べば適正に運用できるかがわからない。

調べてもよくわからないので、運用しつつ見定めていくことにした。

ということでとりあえず最小の2GBプランにしてみる。

2GBプランは

  • メモリ 2GB
  • vCPU 3コア
  • NVMe SSD 50GB

それぞれ簡単に調べてみた感じ、

メモリ(RAM)
役割: サーバーが一時的にデータを保存する場所です。たくさんの人が同時にWebサイトにアクセスしてもスムーズに動くようにします。
メリット: メモリが多いと、Webサイトが速くなり、同時に多くのアクセスを処理できます。
2. vCPU(仮想CPU)
役割: サーバーの頭脳で、リクエストを処理したり、ページを作ったりする仕事をします。
メリット: vCPUが多いと、Webサイトの処理が速くなり、アクセスが増えても遅くなりにくくなります。
3. NVMe SSD
役割: サーバーのデータ(ファイルや画像など)を保存する場所で、データの読み書きが速いです。
メリット: NVMe SSDが多いと、Webページの表示が速くなり、データベースも素早く動作します。

とのこと。

うーん、メモリとCPUの違いがよくわからない、いつか誰かに教えてもらいたい。

ドメインを用意しておく

よくわからないけどvpsは契約したので、次はドメインを作成する。

このブログもサブドメインで運用しているので、同じようにサブドメインを作成し運用することにした。

Cloudflare Registrarでサブドメインを作成する。

ドメインのページに行き、DNS 管理で

タイプ名前コンテンツプロキシステータスTTL
AsocialVPS情報のIPアドレスDNSのみ自動

のように登録する。

ちなみにプロキシステータスが何かよくわかないけど、のブログはDNSのみに設定されていたので合わせた。

プロキシ済みにすると

この動作により、Cloudflare はアプリケーションへのすべてのリクエストを最適化、キャッシュ、保護できるだけでなく、オリジンサーバーをDDoS 攻撃から保護できます↗。

とのことらしく、どうしてDNS のみにしたんだろうと過去のブログを検索するとNetlify

プロキシステータスをDNS のみ にすることでNetlifyのSSL証明書が正常に機能するようになるらしい。

という経緯があったらしい。忘れていた。

後日これを書いている時、これを機にMastodonのほうをプロキシ済みにしよう安全だし、と思い変更したらサイトが落ちた。

つまりDNSのみじゃないといけないらしい。

そんなこんなでドメインの作成までが完了した。

Mastodonをインストールしていく

基本的に、公式が丁寧すぎるので従っていけば問題なく表示できる。

Mastodonアプリイメージを利用する

ただ初心者過ぎていくつか詰まったのでそこだけまとめておく。

公式の方法でサーバーに接続できないのでvsCodeを使用した

VPS管理画面のコンソールかTera Termを使ってサーバーに接続しファイルの編集とかを行う必要があるのだが、慣れてなさすぎてファイルの編集が難しいということでvsCodeから接続することにした。

Remote - SSHという拡張機能を使い接続する。

リモートエクスプローラーを開き歯車からC:\Users\{username}\.ssh\configを開き、

# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host サーバー名
  HostName IPアドレス
  User root
  Port 22  # SSHポート番号 (通常22)
IdentityFile ダウンロードしたSSH Keyのパス

のように記述すればリモート接続できるようになった。

これでvsCodeでコードの編集とかをできるようになる。

結果的に便利になった気がするので良かった。

GmailのSMTPが使えなくなっていた

2024年9月30日よりGmailのSMTPサーバー(smtp.google.com)でパスワードを利用した認証が利用できなくなる

とのこと。

パスワードを利用した認証っていうのがよくわからないけど、うまくいかなかったので今回はメールを使用しないことにした。

どんな不便が発生するかわからないけど、おひとり様サーバーなのでいらないはず。

Adminっていうユーザー名にしてしまった。

管理者を作りますかという質問に脳死で答えていたら、

https://social.nove-b.dev/@admin

というユーザー名にしてしまった。

別にいいんだけれどダサいので変更したい。

root@x {ipアドレス}:/# su - mastodon
mastodon@x {ipアドレス}:~$ cd ~/live
mastodon@x {ipアドレス}:~/live$ RAILS_ENV=production bundle exec rails console
user = Account.find_by(username: 'admin')
user.username = '新しいユーザー名'  # または他の許可された形式
user.save!
mastodon@x {ipアドレス}:~/live$ exit
root@x {ipアドレス}:/# sudo systemctl restart mastodon-*

上記で無事変更できた。

おひとり様サーバーデビュー

実際の画像

運用していく、楽しみもあるけど、不安も多い。

ともかくデビューには成功した。

@nove_b@social.nove-b.dev

もしかするとサーバーが崩壊してすぐにいなくなるかもしれないですが、もしよろしければフォローしてください。