おひとり様サーバーに憧れる
2023年の11月。
つまりおおよそ1年前からMastodonを使用してきた。
ハロー・ワールドという本を読み、オープンソースのSNSという響きに憧れ開始した。
そのレベルの解像度なので何も考えずに有名で汎用的なhttps://fedibird.com/にお邪魔させてもらってきた。
それから1年経ち、なんだかんだ呟いたりしているうちに、自分のサーバーを持ちたくなった。
サーバーの立ち上げに興味を持つ
いままでいくつかサービスを公開してきた。
vercel
firebase
aws
cloud run
上記のようなサービスを使ってきたが、vercel
、firebase
はgithub
にデプロイするだけでサイトが公開されるし、aws
とcloud 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 |
---|---|---|---|---|
A | social | VPS情報のIPアドレス | DNSのみ | 自動 |
のように登録する。
ちなみにプロキシステータスが何かよくわかないけど、のブログはDNSのみに設定されていたので合わせた。
プロキシ済みにすると
この動作により、Cloudflare はアプリケーションへのすべてのリクエストを最適化、キャッシュ、保護できるだけでなく、オリジンサーバーをDDoS 攻撃から保護できます↗。
とのことらしく、どうしてDNS のみにしたんだろうと過去のブログを検索するとNetlify
は
プロキシステータスをDNS のみ にすることでNetlifyのSSL証明書が正常に機能するようになるらしい。
という経緯があったらしい。忘れていた。
後日これを書いている時、これを機にMastodonのほうをプロキシ済みにしよう安全だし、と思い変更したらサイトが落ちた。
つまりDNSのみじゃないといけないらしい。
そんなこんなでドメインの作成までが完了した。
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-*
上記で無事変更できた。
おひとり様サーバーデビュー
運用していく、楽しみもあるけど、不安も多い。
ともかくデビューには成功した。
もしかするとサーバーが崩壊してすぐにいなくなるかもしれないですが、もしよろしければフォローしてください。