GCPでMinecraft マルチサーバー管理している(更新)

2022年12月15日

cloud

これは .ごっ!のアドベントカレンダー の15日目の記事です。

こんにちは、.ごっちです。

前回はMinecraft関連の話でしたが、今回はその周辺のインフラ関連の話です。たてた時の記事は https://blog.yougoto.dev/posts/20210627-minecraft-server-admin/ にあります。

Minecraft関連のサービス群の図

architecture

気がつけばいろいろなサービスを使っています。

  • Compute Engine (e2-standard-2): Minecraft本体が動いている
  • Cloud Run: GCEの起動・停止をしている
  • App Engine (F1): Discordのスラッシュコマンドを引き受けている
  • Cloud Storage: ログデータやワールドのバックアップデータを保管している
  • Monitoring: GCEのCPU利用率とかを見ている
  • Big Query: 使用料金の日々のデータを保存している
  • Cloud Function: 使用料金のデータを取得してSlackに通知している

このサービス群が最適かどうかはわからないですが、使用料金がとても高くなっているわけではないので問題ないと考えてます。

App EngineとCloud RunをCloud Runに寄せたいところですが、Discordでスラッシュコマンドを送信してからレスポンスまでの時間がCloudRunの起動時間よりも短いため、AppEngineを噛ましています。

今後

Minecraft本体の(ログ)データを見て、プレイヤーがしばらくいなければシャットダウンする ようなものができるとシャットダウンコマンドを実行し忘れたとしても大丈夫なようにしておきたいです。可能かどうかはわからないですが。

ProfilePicture

Yuta Goto

フリーランスのソフトウェアエンジニアです。現在はReact.jsを使用したWebフロントエンドの開発やRuby on Railsを使用したサーバサイドの開発を行っています。