マイクラ鯖運用 with GitHub

zztkm

いきなり本題

僕はマイクラ鯖をGitHubで運用しています。 今日はどんな感じでやっているのかを紹介します。

従来のマイクラ鯖運用のここがだるい

  • 環境の再現
  • バージョンアップ

Dockerなど使わずに運用していた時代

ごみ

じゃあどうしたいか?

じゃあどうしたいか?

GitHub で IaC したいし、デプロイも簡単にしたい!

最終的な構成は以下のようになった。

  • VPS: Vultr
  • ソース管理 GitHub
  • Docker & Docker Compose
  • MCサーバー: PaperMC
    • なんか軽いらしいので採用した
    • 色々プラグインを導入している
  • デプロイは compose-cd で自動化
  • Docker image も Renovate で自動更新

VPS について

VPS は Vultr を使っている。

MC鯖は Vultr に docker & docker compose をインストールして、そこで動かしている。

SSH 接続には、Tailscale SSH を利用している。

Tailscale SSH を使うと鍵管理が不要になってめっちゃ楽。導入も楽なので、VPSとか借りてなんかやりたいって人におすすめです。

GitHub でやってること

  • MC鯖用 docker-compose.yml などのソース管理
  • MC鯖のDockerイメージに更新があったら、RenovateがPRを作ってくれる
    • Renovate まじ便利
    • 自分はPRをレビューしてマージするだけ

https://github.com/pistachiostudio/genkai-mc-server/pull/42

自動デプロイ

compose-cd が git pull して更新があったら、docker compose down & up してくれる

監視

巷ではオブザーバビリティとか言われてますがなんもわかってないので、とにかく無料で使えてそれっぽいやつを使ってみてる。 わかってきたら良い感じに調整していくという方針で色々試してる。詳しい人いたら教えてクレメンス

導入したやつ

  • NewRelic
    • ログ監視に使ってる
  • Prometheus
    • 直接導入はしていないが、UnifiedMetrics というプラグインで使われてる(はず)
  • Grafana
    • Prometheus と連携して使っている
    • 自前で建てずに、Grafana Cloud を使っている
    • サーバーに何人入ってるとか、メモリの状態とか色々見れるようにしてる
      • 楽しい

Grafanaのダッシュボードはこんな感じ grafana dashboard

まだ解決できていない課題

まとめ

まとめ

  • ゲームの鯖運用するだけでも色々学ぶきっかけになる
  • マイクラ鯖管理してると、マイクラより楽しくなってきてマイクラをやらなくなる(諸説あり
  • 監視などを導入すると、マイクラ鯖の状態がわかって楽しいし、オブザーバビリティを学ぶきっかけになる
  • マイクラはやらなくなる
  • プラグイン自作したくなってくる

ということでぜひ遊びにきてください!

参考

その他宣伝