本記事では、マインクラフトのマルチプレイ用24時間サーバーを建てるために、サーバーの初期設定から24時間安定稼働のためのスクリプトまで、初心者の方にも分かりやすくステップごとに解説します。
今回は、Oracle Cloud Infrastructureというサービスを利用して、クラウド上にサーバーを配置します。非常に便利な上、無料枠が太っ腹なことで有名なクラウドサービスで、今回その無料枠を使って存分に使っていきます。

サーバー代や電気代もかからないのでお勧めの方法ですが、手間のかかる作業です。根気よく行きましょう。
必要なもの:クレジットカード(正しく設定すれば支払いは発生しません)
OCIへの登録
まずはクラウドサービスへの登録が必要です。こちらのQiitaの記事を参考にされるとより楽です。
★やること OCIアカウントを作成↓ ※クレジットカードが必要です。

SSH通信用のキーペア作成
まず、クラウド上のサーバー設定を行うための通信を安全に行うために、鍵のペアを作成します。
Windows11環境の場合:
★やること スタートメニュー → cmdと入力 → 以下のコマンドを入力
ssh-keygen -t ed25519
★やること プログラムが終わるまでEnter連打
★確認 C:\Users\自分のユーザー\.sshに以下のファイルが生成されていることを確認
- id_ed25519:秘密鍵(手元にとっておく)
- id_ed25519.pub:公開鍵(サーバーにアップロードする)
↓こちらのサイトを参考にさせていただきました。

コンピュート・インスタンスの作成
アカウントの作成が完了したら、クラウド上にサーバーを動かす仮想デバイスを作成しましょう。
★やること 公式サイトの上部から、「コンピュート」タブを選択し、インスタンスのページへ

★やること インスタンスの作成をクリック

インスタンスの設定
★やること 基本情報の設定↓ ・・・・・終わったら次をクリック
- 名前:「mcserver-tutorial」と入力
- イメージの変更をクリック
- Ubuntuをクリック
- イメージ名:Canonical Ubuntu 24.04をクリック
- Ubuntuをクリック
- シェイプの変更をクリック
- インスタンス・タイプ:仮想マシン
- シェイプ・シリーズ:Ampere
- シェイプ名:VM.Standard.A1.Flex(Always Free対象)
- OCPUの数:1~4に設定
- メモリー量:8~24GBに設定
- シェイプ名:VM.Standard.A1.Flex(Always Free対象)

★やること セキュリティ:スルーでOK ・・・・・次をクリック
★やること ネットワーキングの設定↓ ・・・・・終わったら次をクリック
- VNIC名:「mcserver-tutorial-vnic」と入力
- 新規仮想クラウド・ネットワークの作成をクリック
- 新規仮想クラウド・ネットワーク名:「mcserver-tutorial-vcn」と入力
- 新規パブリック・サブネットの作成をクリック
- 新規サブネット名「mcserver-tutorial-subnet」と入力
- SSHキーの追加
- 公開キー・ファイル(.pub)のアップロードをクリック
- 先ほど生成した公開鍵(id_ed25519.pub)をドラッグ&ドロップ
★やること ストレージ:スルーでOK ・・・・・次をクリック
★やること 内容を確認して作成をクリック
★確認 以下のような画面になることを確認

コンピュート・インスタンスの周辺設定
パブリックIPアドレスのコピー
この後、サーバーへの接続に使うためのIPアドレスを取得します。
★やること 先の「作業リクエスト」タブから、「詳細」タブに移動

★やること パブリックIPアドレスをコピー ← 後で使います
ポートの設定
今作ったサーバーは、デフォルトではSSH接続用のポートしか開放されていないので、マイクラサーバーとの通信用のポートも開放します。
★やること インスタンスの詳細:仮想クラウド・ネットワークのmcserver-tutorial-vcnをクリック

★やること 「セキュリティ」タブに移動、Default Security List for mcserver-tutorial-vcnをクリック
★やること 「セキュリティ・ルール」タブに移動、イングレス・ルールの追加をクリック

★やること 追加したイングレス・ルールの設定をする↓
- ソースCIDR:0.0.0.0/0と入力
- 宛先ポート範囲:25565
- 説明:なんでもOK

SSH接続
先ほど作成したコンピュート・インスタンス上でマイクラのサーバーを起動するため、サーバーの操作にSSH接続というプロトコルを利用します。SSHクライアントソフトを使うのが楽なので、有名なSSHクライアントソフトであるPuTTYを利用します。
PuTTYのインストール
★やること PuTTYをインストールする↓
★確認 インストール完了後起動し、以下のような画面が出ることを確認

PuTTYgenで秘密鍵の変換
PuTTYのインストール時にPuTTYgenというソフトウェアもインストールされています。これを使って、先に生成した秘密鍵のファイルをPuTTYで使えるように変換します。
★やること スタートメニュー → PuTTYgenと入力 → 起動
★やること 「Conversions」タブ → Import keyをクリック → 秘密鍵(id_ed25519)を選択

★やること 『Save private key』をクリック → id_ed25519.ppkとして保存
★確認 C:\Users\自分のユーザー\.sshに以下のファイルが揃っていることを確認
- id_ed25519:元の秘密鍵
- id_ed25519.pub:公開鍵
- id_ed25519.ppk:PuTTY用秘密鍵
セッションの設定
PuTTYでサーバーに接続する準備をします。

★やること セッションの設定↓
- Sessionカテゴリをクリック
- Host Name (or IP address):先ほどコピーしたパブリックIPアドレスを貼りつけ
- Connectionカテゴリをクリック
- Seconds between keepalives (0 to turn off):0 → 60に変更
- Connectionカテゴリ → Dataをクリック
- Auto-login username:「ubuntu」と入力
- Connectionカテゴリ → SSH、Auth、Credentialsをクリック
- Private key file for authenticationの『Browse』から、先ほど変換したid_ed25519.ppkを選択
★やること Sessionカテゴリに戻り、Saved Sessionsに「mcserver-tutorial」と入力し、右の『Save』をクリック
★確認 Saved Sessionsの「Default Settings」の下に、「mcserver-tutorial」があることを確認

★やること 『Open』をクリック → PuTTY Security Alertは『Accept』をクリック
★確認 以下の画面になることを確認

サーバーの環境構築
ファイアウォールの設定
ファイアウォールを簡単に設定するためにufw(Uncomplicated FireWall)を利用します。
★やること 以下のコマンドを上から1行ずつPuTTYで実行↓
sudo apt install ufw -y
sudo ufw allow 22
sudo ufw allow 25565
sudo ufw enable
y
以上の操作で、ファイアウォールの基本設定および有効化が完了しました。
コンピュート・インスタンスの再起動
ここで、OCIのウェブサイトに戻ります。
★やること 公式サイトの上部から、「コンピュート」タブを選択し、インスタンスのページへ

★やること mcserver-tutorialをクリック → 右上の「アクション」をクリック → 再起動

PuTTYで再度接続できるかどうかチェックします。
★やること 一旦PuTTYを閉じる → もう一度起動
★やること Saved Sessionsの「mcserver-tutorial」をダブルクリック
★確認 接続できることを確認
Java実行環境のインストール
サーバーソフトウェアを実行するための実行環境を用意します。
★やること 以下のコマンドをPuTTYで実行↓
sudo apt install openjdk-21-jre-headless -y
サーバーの配置
Web上からマイクラのサーバーソフトウェアをダウンロードします。
★やること 以下のコマンドを上から1行ずつPuTTYで実行↓
mkdir server
cd server
wget -O server.jar https://fill-data.papermc.io/v1/objects/8de7c52c3b02403503d16fac58003f1efef7dd7a0256786843927fa92ee57f1e/paper-1.21.8-60.jar
起動スクリプトを組みます。これにはnanoというテキストエディタを利用します。
★やること 以下のコマンドをPuTTYで実行↓
nano start.sh
★やること 以下のテキストをペースト(マウスで右クリック)
cd /home/ubuntu/server
screen -AdmSU minecraft java -server -Xms8G -Xmx8G -jar server.jar
★やること Ctrl + X で保存 → Yを押す → Enterでそのままのファイル名で決定
★やること 以下のコマンドをPuTTYで実行↓
chmod +x start.sh
サーバーの初回起動
★やること 以下のコマンドをPuTTYで実行↓ ※しばらく待つ
bash start.sh
★やること 以下のコマンドをPuTTYで実行↓
ls
★確認 serverディレクトリ内が以下のようになっていることを確認
~/server/
├── cache/
├── eula.txt
├── libraries/
├── logs/
├── plugins/
├── server.jar
├── server.properties
├── start.sh
└── versions/
★やること 以下のコマンドをPuTTYで実行↓
nano eula.txt
★やること 開いたテキストの3行目を以下のように変更↓
eula=true
★やること Ctrl + X で保存 → Yを押す → Enterでそのままのファイル名で決定
★やること 以下のコマンドを上から1行ずつPuTTYで実行↓
bash start.sh
screen -r
★確認 サーバーの起動を確認

★やること マイクラ(今回はver. 1.21.8)を起動し、先ほどコピーしたパブリックIPアドレスでサーバーを追加
★確認 サーバーに参加できることを確認

バックアップ・再起動スクリプトの作成
★やること サーバーのコンソールにstopと入力
★やること 以下のコマンドをPuTTYで実行↓ ※しばらく待つ
sudo apt install zip unzip
バックアップ用スクリプト
★やること 以下のコマンドをPuTTYで実行↓
nano backup.sh
★やること 以下のテキストをペースト(マウスで右クリック)
#!/bin/bash
set -e
# --- Configuration ---
SERVER_DIR="/home/ubuntu/server"
BACKUP_DIR="${SERVER_DIR}/backups"
WORLDS_TO_BACKUP="world world_nether world_the_end"
RETENTION_DAYS=7
# --- Script ---
echo "Backup process started."
mkdir -p "${BACKUP_DIR}"
TIMESTAMP=$(date "+%Y-%m-%d_%H-%M-%S")
BACKUP_FILENAME="${TIMESTAMP}.zip"
cd "${SERVER_DIR}"
zip -r "${BACKUP_DIR}/${BACKUP_FILENAME}" ${WORLDS_TO_BACKUP}
echo "Successfully created backup: ${BACKUP_FILENAME}"
echo "Deleting old backups (older than ${RETENTION_DAYS} days)..."
find "${BACKUP_DIR}" -type f -name "*.zip" -mtime +${RETENTION_DAYS} -print -delete
echo "Backup process finished."
★やること Ctrl + X で保存 → Yを押す → Enterでそのままのファイル名で決定
★やること 以下のコマンドをPuTTYで実行↓
chmod +x backup.sh
再起動用スクリプト
★やること 以下のコマンドをPuTTYで実行↓
nano restart.sh
★やること 以下のテキストをペースト(マウスで右クリック)
#!/bin/bash
# --- Configuration ---
SERVER_DIR="/home/ubuntu/server"
SCREEN_NAME="minecraft"
START_SCRIPT="${SERVER_DIR}/start.sh"
BACKUP_SCRIPT="${SERVER_DIR}/backup.sh"
ANNOUNCE_SECONDS=30
COUNTDOWN_SECONDS=5
SHUTDOWN_WAIT_TIME=15
# --- Messages ---
RESTART_ANNOUNCE_MSG="Server will restart in ${ANNOUNCE_SECONDS} seconds."
RESTART_COUNTDOWN_MSG="Restarting in"
KICK_MSG="Server is restarting. Please reconnect in about a minute."
# --- Script ---
set -e
send_command() {
screen -p 0 -S "${SCREEN_NAME}" -X eval "stuff \"$1\r\""
}
cd "${SERVER_DIR}"
echo "Announcing restart to the server..."
send_command "say ${RESTART_ANNOUNCE_MSG}"
sleep $((ANNOUNCE_SECONDS - COUNTDOWN_SECONDS))
echo "Starting countdown..."
for (( i=${COUNTDOWN_SECONDS}; i>0; i-- )); do
send_command "say ${RESTART_COUNTDOWN_MSG} ${i} second(s)..."
sleep 1
done
echo "Kicking players and stopping the server..."
send_command "kick @a ${KICK_MSG}"
sleep 1
send_command "stop"
echo "Waiting for the server to shut down (${SHUTDOWN_WAIT_TIME} seconds)..."
sleep ${SHUTDOWN_WAIT_TIME}
echo "Running backup script..."
${BACKUP_SCRIPT}
echo "Starting the server..."
${START_SCRIPT}
echo "Restart process finished."
★やること Ctrl + X で保存 → Yを押す → Enterでそのままのファイル名で決定
★やること 以下のコマンドをPuTTYで実行↓
chmod +x restart.sh
定期的に再起動するように設定
crontabというシステムを利用して、先ほど作成した再起動スクリプトを定期的に実行するように設定します。
★やること 以下のコマンドをPuTTYで実行↓ → Enterを押す
crontab -e
★やること 以下のテキストを一番最後の行にペーストする
0 15 * * * /home/ubuntu/server/restart.sh
★やること Ctrl + X で保存 → Yを押す → Enterでそのままのファイル名で決定

大変お疲れさまでした。ここまでの操作によって、サーバーが安定して動いてくれるようになりました。
サーバーからマイクラのコマンドを実行する方法
サーバー側からマイクラのコマンドを入力するには、別のセッションで実行されているサーバーソフトウェアのコンソールにアクセスする必要があります。
★やること PuTTYを起動 → Saved Sessionsの「mcserver-tutorial」をダブルクリック
★やること 以下のコマンドをPuTTYで実行↓
screen -r
★確認 以下の画面で適当なコマンドを入力し、ゲーム内に反映されることを確認



コメント