Ubuntu Server と Tailscale で社内マイクラサーバーを構築した

背景

ゲーミング部の紹介

こんにちは、2024年に新卒として入社した清原です。
弊社には「ゲーミング部」があり、気が向いたときにボードゲームやオンラインゲームを楽しむゆるい活動をしています。
発足してまだ日が浅いものの、メンバーが気分次第でCivilization 6をプレイしたり、ポーカーをしたりしています。

Slack のゲーミング部のチャンネルの様子
Civilization VIで沼プレイをしている様子

マイクラサーバー問題

ついに筆者が大好きなマインクラフトをプレイすることになり、喜んでいたのですが、大きな問題が。

「サーバーがない」──。

有料のレンタルサーバー (例: ConoHa VPSさくらのVPS) を使う方法もありますが、当然ながら料金が発生します。そのため、ホスト役がいるときだけプレイするスタイルを取っていました。この方法は費用がかからず気軽ではあるものの、ホストが不在だと誰もプレイできないという欠点があります。

解決策を考えているうちに年末を迎え、社内の大掃除中、使っていないPCが放置されているのを発見!
しかも、内部のパーツを見ると「これはマイクラサーバーとしていけそう!」という性能のもの。
社長の一声で、このPCを使って無料のマイクラサーバーを構築することになりました。

(ちなみにこの時、年末の納会中でしたが、筆者は年末年始にマイクラを遊びたすぎて納会そっちのけでサーバー構築に勤しんでいました。)

注意書き

この記事では、各ツールの導入手順の詳細については省略しています。
実際に構築する際は各ツールの公式ドキュメントや解説記事を参照してください。

構成

各ツールの導入

Ubuntu Server の導入

Ubuntu Server は人気なLinuxディストリビューション「Ubuntu」のサーバー版です。GUIや不要なツールが含まれない軽量な構成が特徴です。

今回は最新のLTS版である24.04.1 LTSを使用しました。

インストールメディアには社内で余っていた外付けHDDを使用しました。
USBメモリが見つからなかった場合、コンビニで手頃に購入するのも一つの手です。

OpenSSH の導入

OpenSSH はリモート操作を可能にするツールで、自宅のこたつからでもサーバーを操作できるようになります。

Ubuntu Server のインストール時にオプションを選択するか、apt コマンドで導入可能です。

「Install OpenSSH server」にチェックすればOK
apt install openssh-server

デフォルトでは入っていないため、導入を忘れないよう注意しましょう。
ちなみに筆者は忘れていたため、後日現場に戻る羽目になりました。

Tailscale の導入

Tailscale は簡単にVPNを構築できるサービスです。メンバーのPCから社内サーバーへリモートアクセス可能にするため導入しました。

以下の特徴があり、気に入っています。

当初、Tailscale Funnel を利用してサーバーを公開する予定でしたが、ポートフォワーディングに問題があったため断念。
結局 Share nodes 方式に落ち着きましたが、現在もより良い運用方法を模索中です。

Java ランタイムの導入

Minecraft サーバー (Java版) の動作には Java ランタイムが必要です。
以下のコマンドで導入しました。

apt install openjdk-21-jre

Minecraft サーバーの起動

公式サイトから jar ファイルをダウンロードし、以下のコマンドでサーバーを起動します。

java -Xmx4G -Xms4G -jar minecraft_server.1.21.4.jar --nogui

初回起動時にはEULA同意が求められるため、 eula.txt を編集し、 eula=true に変更してください。

結果

無事にマイクラサーバーが稼動しました!

Minecraft が動いている図1
Minecraft が動いている図2

これから

現在は最低限の環境整備のみ行っていますが、順次改善予定です。
また、サーバーリソースには余裕があるため、他のゲームのサーバーとしても活用していきたいです!