注意
この記事はlinuxちょっと触ったことあるからコンソールは怖くないけど別にコマンドとかはあんま知らない!な方向けです。無駄な注釈が多いです。Linuxワカル方は見てて辟易するかもしれません。ご注意ください
はじめに
OCIには Always Free という素晴らしいサービスがあります。特にARMアーキテクチャのインスタンスは、4 OCPU / 24GB RAM という破格のスペックが無料で使えます。
お金に余裕のない学生には大変ありがたいですね。
ARMですが、マイクラはサーバもJavaで動いているので、全然動きます。
Write onse run anywhereは伊達じゃないですね。
インスタンスが確保できない問題
しかし、このAlways Free枠のARMインスタンスは大人気のため、最近では度のリージョンも「在庫切れ(Out of Capacity)」となっており、Free Tier(無料アカウント)のままではインスタンスを作成できないことがほとんどです。
昔は東京リージョンなど一部のみが埋まっている状態でしたし、現在もOCIのリージョン選択画面では一部と書かれていますが、redditなどを見るとほとんどが埋まっているようです。
Pay As You Go(従量課金)にすれば解決
これを回避するには、アカウントを Pay As You Go (PAYG) プランにアップグレードする必要があります。
「課金されるのでは?」と不安になるかもしれませんが、Always Freeの範囲内で使う限りは請求は発生しません。
Always FreeとFree Tierは別概念で、前者はすべてのアカウントに適用される無料枠、後者はアカウントのTierです。Free TierからPAYGにすることで、Always Freeの枠を確保する際にも優遇されます。(なんかよくない気もしますが、仕様なのでありがたく使わせていただくことにします。)
とりあえずアカウントを作成してください。
右上、Oracle Cloudにサインイン、をクリックし、サインアップをクリックして画面に従いアカウントを作成しましょう。
さて、アカウントのアップグレードの手順ですが
- 左上ハンバーガーメニューから請求とコスト管理→支払いのアップグレードと管理
- 支払方法の追加(クレジットカード/デビットカードの登録)
- アカウントのアップグレード申請
これだけです。
僕はもうPAYGアカウントなので画像が手に入らず……
この方の記事がわかりやすいです。参考にしてください
ただし、カードの登録のタイミングで、与信調査が行われます。100ドルの引き落としもしくは利用が行われ、数秒から数日で返金、取り消しされます。
クレジットなら利用枠、デビットなら残高がなければ通りません。気を付けてください。
ちなみに、デビットは名義さえ同じであれば普通に通るらしく、筆者はauじぶん銀行と三井住友銀行のデビットカードを試しましたがどちらも使えそうでした。
PAYGアカウントになることで、優先的にリソースが割り当てられ、ARMインスタンスが作成できるようになります。
サーバーの構築手順
1. 仮想クラウドネットワーク (VCN) の作成
まず、ネットワーク環境を構築します。
VCNの作成
- OCIコンソールの左上ハンバーガーメニューから「ネットワーキング」→「仮想クラウドネットワーク」を選択。
- VCNの作成 をクリックし、いい感じに名前を付けます。
- IPv4 CIDRブロック を設定します。特にマイクラ以外でインスタンスを立てるつもりがなければ10.0.0.0/16に設定してかまいません。
- あとはデフォルトのままでいいので、VCNの作成 をクリックして完了します。
サブネットの作成
- 作成後、先ほど作成したVCN名をクリックして、設定画面を開きます。
- サブネットを開いて、 サブネットの作成 をクリックしてください。
- 適当な名前を付けたら、 IPv4 CIDRブロック を設定して(こちらも10.0.0.0/16で構いません)、パブリック・サブネットを選択します。ここ重要です。あとはデフォルトで構いません。 サブネットの作成 をクリックします。

セキュリティ・リストの作成
- セキュリティを開いて、 セキュリティ・リストの作成 をクリックしてください。
- 適当な名前を付けて、 イングレス・ルール の ソース・タイプをCIDR、ソースCIDRを、0.0.0.0/0に設定、IPプロトコルをTCPに、ソースポート範囲をAll、宛先ポート範囲を25565に設定して、 セキュリティ・リストの作成 をクリックします。これでポートが解放されます
2. インスタンスの作成
次にサーバー本体(インスタンス)を作成します。
- 「コンピュート」→「インスタンス」→「インスタンスの作成」をクリック。
-
イメージとシェイプ:
- イメージ: Ubuntu 22.04など(Windowsはライセンス料がかかるので避ける)。
-
シェイプ:
VM.Standard.A1.Flexを選択。 - OCPU: 4, メモリ: 24GB に設定(これがAlways Freeの上限です)。
- ※「Always Free」のラベルが出ていることを確認してください。
-
プライマリVNIC
- 既存の仮想クラウドネットワークを選択、を選択し、先ほど作成したVNICを選択します。
- サブネットも同様にします
- パブリックIPv4アドレス割り当てを有効にします
-
SSH設定:
- キー・ペアを自動で生成、を選択して、「秘密キーのダウンロード」ボタンを押して、必ず
.keyファイルをダウンロードしてください。これがなくなるとサーバーに入れません。
- キー・ペアを自動で生成、を選択して、「秘密キーのダウンロード」ボタンを押して、必ず
- あとはデフォルトで大丈夫なので、作成ボタンをクリック。
CPUとメモリは、VM.Standard...の左側の黒三角をクリックすると出てきます
tips
アカウント開設から30日間は、$300(約3万円)分の無料クレジットが付与されます。万が一設定を間違えて有料枠を使ってしまっても、このクレジットから引かれるため、すぐに気づけば金銭的な痛手はありません。
不安な場合は、コンソールの「コスト分析」ページを定期的にチェックしましょう。
サーバーへの接続と設定
インスタンスが「実行中」になったら、パブリックIPアドレスをコピーします。
SSH接続
ターミナル(PowerShellやMacのTerminal)を開き、ダウンロードした鍵を使って接続します。
まずは鍵のパーミッションを設定します。
# Mac/Linuxの場合
chmod 400 your_key.key
# Windowsの場合
icacls your_key.key /inheritance:r
icacls your_key.key /grant:r "$($env:USERNAME):(R)"
接続します
ssh -i path/to/your_key.key ubuntu@<パブリックIPアドレス>
# ※ユーザー名はOSにより異なります (ubuntu, opc など)
SSHのタイムアウト対策
初期設定では無操作で放置するとすぐに切断されてしまうため、設定を変更します。
sudo nano /etc/ssh/sshd_config
以下の行を追記(またはコメントアウト解除して修正)します。
ClientAliveInterval 60
ClientAliveCountMax 5
保存して終了し、SSHサービスを再起動します。
nanoはCtrl+Oで保存、 Ctrl+Xで終了です
sudo systemctl restart ssh
セキュリティ
デフォルトだとFWが息をしていないので、
sudo ufw default deny
で一度すべて閉鎖し
sudo ufw allow 25565/tcp #マイクラのポート
sudo ufw allow 22/tcp # sshのポート
sudo ufw enable
マイクラとSSHに必要なポートを開きます。
Minecraftサーバーのインストール
サーバーファイルのダウンロード
Modpackやforgeをインストール、配置します。scpでローカルのPCからアップロードするか、wgetでサーバに直接ダウンロードします。
forgeは以下からダウンロードします。wgetするURLも以下から取得してください。
Installerをクリックして遷移した先で5秒待つと右上にSkipが出てくるので、そこを右クリックしてリンクのアドレスをコピーできます。
# scpでアップロードする場合
# ローカルPCから実行
scp -i your_key.key files.zip ubuntu@<IPアドレス>:~
# wgetで直接ダウンロードする場合
# サーバで実行
wget https://hogehoge/forge/forgeinstaller.jar
Javaのインストール
バージョンによってJavaのバージョンを選んでインストールします。
sudo apt update
sudo apt install openjdk-バージョン-jre-headless
サーバファイルを配置
まずは、ダウンロードしてきたforgeをinstallします。
~$ mkdir mcserver
~$ mv forgeinstaller.jar mcserver/
~$ cd mcserver
~/mcserver$ forgeinstaller.jar --installServer ←このオプションをつけないとエラー吐きます
ファイルを解凍する必要がある場合
sudo apt install unzip
unzip files.zip -d ./展開先
# でディレクトリを指定して展開できます
起動スクリプト (run.sh など) を実行して、 eula.txt を編集してeulaに同意します。
bash ./run.sh
#なんか大量のログが流れます
stop
# マイクラのサーバのコンソールにstopを入力して停止
# 停止後、eula.txtを編集
nano eula.txt
# eula=true に変更して保存
起動用スクリプト自体は編集せず、メモリ設定などは user_jvm_args.txt に記述します。
# user_jvm_args.txt を編集(なければ作成)
nano user_jvm_args.txt
# ファイルの中に以下のように記述もしくは編集して保存します。
-Xmx20G
設定ができたら、start.sh (または run.sh) を実行してサーバーを起動します。
bash start.sh
正常な起動が確認出来たら、またstopして、生成されてしまったworldデータを削除します。
MODデータを入れる前に生成してしまったワールドに用はありません。消えてもらいます
~/mcworld$ rm -rf world
Modpackの適用
基本的にはModpackのReadmeに従ってください。
大体は、既にForgeが展開されたサーバフォルダにModpackを上書きするだけです
# zipなら
unzip modpack.zip -d ~/mcworld
# zipじゃないなら
cp -r modpack ~/mcworld
Screenの活用
このままではSSH接続を切るとサーバーも止まってしまうため screen コマンドを使ってバックグラウンドで動かします。
# Screenセッションの作成
screen -S mc
# この画面の中でサーバーを起動
bash run.sh
デタッチ(サーバーを動かしたままログアウト)するには Ctrl+A を押してから D を押します。
再接続は
screen -r mc
でできます。
運用・監視
サーバーのリソース状況を確認するには btop が便利です。
sudo apt install btop
btop
これで、CPU使用率やメモリ使用量がグラフィカルに確認できます。
さいごに
4Core24GBは結構すごくて、大体いろいろ動きます。すごい!


