概要
この章からは, Microsoft Azure というクラウドサービスを使用したマイクラプログラミングになります. まずは仮想マシンサービスを使用してマイクラサーバを構築するところから始めます. すでに第2章でサーバ構築は行っていますが, 少し手順が異なります. ここで作成した仮想マシンはこれ以降の章でも使用しますので, 続ける場合は削除しないでください.
18.1 Azure
Azure は Microsoft 社が提供しているクラウドコンピューティングサービスです. Azure と一口にいっても様々なサービスが提供されています. 例えば, クラウド上で関数アプリ (プログラム) を動かすことができる Functions, Web サイトを構築できる Web Apps, 画像の分類やテキスト抽出などができる Cognitive Services などがあります. 使用した分だけ課金するシステムですが, 一部の機能は無料で利用することができます.
アカウント登録
Azure を利用するには, アカウント登録が必要ですので, こちらから登録してください. 始めの30日間は無料で使用できるみたいです.
学生の方は1年間100ドル分のクレジットが支給されますので, こちらから登録してください. 登録には学校のメールアドレス (ac.jp) が必要ですので, 各自用意してください.
Azure for Students の登録方法に関してはこちらを参考にしてください.
Azure Virtual Machines
今回利用するのは Azure Virtual Machines (以下, VM) という仮想マシンを作ることができるサービスです. 仮想マシンはハードウェアが必要のない環境下で OS を動かすことのできる, いわゆるソフトウェアとしての PC です. なので, PC としての実体はありませんが, クラウド上には存在します. ちなみに, Azure で作成したサービスを "インスタンス" と呼んだりします.
VM は有料ですが, スペックによって異なります. マイクラサーバは2GB以上が推奨されており, システムが利用する分も考えると少なくとも3GB以上のものを用意したほうが良いです. 今回使用するものは大体1時間あたり6円ちょっとの課金が発生しますが, こまめに停止していればそこまで大きな額にはなりません. ちなみに, 一ヶ月間つけっぱなしにしておくと4500円前後持っていかれますので, こまめに停止することをおすすめします.
今回, Azure での作業を進めていく上でサブスクリプションの選択が表示されますが, 本書では "Visual Studio Enterprise サブスクリプション" を使用します. 表記上の違いがあるかもしれませんが, 進行に問題ありません.
18.2 仮想マシンの作成
仮想マシンの作成手順を下記に示しますので, 参考にしてください.
1. Azure ポータルを開いて リソースの作成
をクリックする
2. Ubuntu
を選択する
3. 必要事項を記入し, 確認および作成
をクリックする
仮想マシンの名前などは特に指定はありませんが, 本書に合わせる場合は記入例を参考にしてください. 設定項目によっては特に変更が無いところもあります.
項目 | 記入例 |
---|---|
サブスクリプション | Visual Studio Enterprise サブスクリプション |
リソースグループ | rg-minecraft-programming |
仮想マシン名 | vm-minecraft |
地域 | (Asia Pacific) Japan East |
可用性オプション | インフラストラクチャ冗長は必要ありません |
セキュリティの種類 | Standard |
イメージ | Ubuntu Server 20.04 LTS - Gen2 |
Azure スポットインスタンス | なし |
サイズ | Standard_B2s |
認証の種類 | SSH 公開キー |
ユーザ名 | azureuser |
SSH公開キーのソース | 新しい組の生成 |
キーの組名 | vm-minecraft_key |
パブリック受信ポート | 選択したポートを許可する |
受信ポートを選択 | SSH (22) |
リソースグループの新規作成方法
新規作成
をクリック
入力ボックスに適当な名前を入れて OK
をクリック
仮想マシンのサイズ選択方法
すべてのサイズを表示
をクリック
一覧の中から B2s
を選び, 選択
をクリック
4. 検証に成功したら, 作成
をクリックする
検証に失敗した場合はもう一度 基本
タブをクリックして手順 3 を確認してください.
5. 秘密キーのダウンロードとリソースの作成
をクリックする
秘密キーは VM へログインするのに必ず使用しますので, 大事に保管してください.
6. デプロイが完了したら リソースに移動
をクリックする
7. 停止
をクリックして仮想マシンを停止する
今回は DNS を使用するので, IP アドレスは予約 (固定) しなくて大丈夫です. 停止後は 状態
の項目が 停止済み(割り当て解除)
になっていることを確認してください. 変わっていないようであれば 最新の状態に更新
をクリックしてみてください.
以上で, 仮想マシンの作成は完了です. 次に, 仮想マシンの設定を行います.
18.3 仮想マシンの設定
1. パブリックIPアドレスの項目をクリックする
2. DNS名ラベルを記入して保存する
DNS名は世界で一意 (誰とも重複しない) ものを使用します. もし, 一意であれば入力ボックスの右側にチェックマークがつきます. 忘れずに保存してください.
保存ができたら上のパンくずリストから vm-minecraft
をクリックして前のページに戻ります.
3. 左側のリストから ネットワーク
をクリックする
4. 受信ポートの規則を追加する
をクリックする
5. 受信セキュリティ規制の追加を設定する
ここではマイクラサーバへ接続するためのポート番号と, RCON 接続用のポート番号を設定します. 安全のため, 自分の使用しているアドレスで規制を書けたほうが安全です. 自分のアドレスを知りたい場合はこちらを参考にしてください.
マイクラサーバの設定項目はこちらを参考にしてください.
項目 | 記入例 |
---|---|
ソース | IP Addresses |
ソース IP アドレス/CIDR 範囲 | 自分のIPアドレス |
ソースポート範囲 | * |
宛先 | Any |
サービス | Custom |
宛先ポート範囲 | 25565 |
プロトコル | TCP |
アクション | 許可 |
優先度 | 310 |
名前 | MinecraftServer |
説明 | なし |
記入できたら 追加
をクリックしてください. 次は, RCON用のポートを追加します. 再度, 受信ポートの規則を追加する
をクリックしてください.
RCON の設定項目はこちらを参考にしてください.
項目 | 記入例 |
---|---|
ソース | IP Addresses |
ソース IP アドレス/CIDR 範囲 | 自分のIPアドレス |
ソースポート範囲 | * |
宛先 | Any |
サービス | Custom |
宛先ポート範囲 | 25575 |
プロトコル | TCP |
アクション | 許可 |
優先度 | 320 |
名前 | MinecraftRcon |
説明 | なし |
受信ポートの規則の表に追加されていることを確認してください. (アドレス部分は隠しています.)
これでネットワーク設定は完了です.
18.4 Minecraft Server 導入
1. 仮想マシンを起動する
2. 接続タブからコマンドをコピーする
仮想マシンの状態が 実行中
になっていないと, 接続タブ SSH
を開けないのでしばらく待ってください.
赤い丸で囲んだところをクリックしてコピーします.
秘密キーのパスは, 先程仮想マシンを作成したときにダウンロードしたものです. ダウンロード先のパスに書き換えてください. デスクトップに保存した場合はこのようなコマンドになります.
ssh -i C:\Users\<UserName>\Desktop\vm-minecraft_key.pem azureuser@minecraft-programming.japaneast.cloudapp.azure.com
3. ターミナル (PowerShell など) を開いて仮想マシンに接続する
本書では Windows ターミナル (PowerShell) を使用して接続します.
上記のコマンドを入力して実行すると, [yes/no]
と聞かれますので yes
と入力して進んでください. 下記のように azureuser でログインができていれば OK です.
4. サーバ用のディレクトリを作成する
ディレクトリ名は何でも良いです. ここでは MinecraftServer
としておきます.
mkdir MinecraftServer
cd MinecraftServer
5. Java 17 をインストールする
サーバをダウンロードする前に, Java 17 を導入します.
sudo add-apt-repository ppa:linuxuprising/java -y
Done. と表示されれば導入ができています. 次に, アップデートを行います.
sudo apt update
これも成功すれば Done. と表示されます. 最後に, インストールを行います. だいたい 1 分前後かかります.
sudo apt install openjdk-17-jdk -y
Java 17 がインストール出来ているかは java --version
コマンドで確かめます. このような表記になっていれば OK です.
azureuser@vm-minecraft:~/MinecraftServer$ java --version
openjdk 17.0.1 2021-10-19
OpenJDK Runtime Environment (build 17.0.1+12-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 17.0.1+12-Ubuntu-120.04, mixed mode, sharing)
6. マイクラのサーバソフトウェアをダウンロードする
マイクラサーバですが, 執筆時点 (2022年1月) では 1.18.1
がリリースされていましたので, このバージョンを使用します.
curl -L -O https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar
7. 起動ファイルを作成する
まずは管理者モードで Vim を立ち上げます. ファイル名は start.sh
としました. シェルスクリプト形式 .sh
であればファイル名は何でも良いです.
sudo vim start.sh
Vim の操作方法
vim でファイルを開くと, このような表示になります.
ここで, キーボードの i
キーを押すと挿入モードになります. 挿入モードのときは左下に INSERT と表示されます.
この状態で文字の入力を行うことができます. 入力が終わったら, キーボードの ESC
キーを押すと挿入モードが解除されます.
この状態で :wq
と入力してエンターキーを押すとファイルを保存して Vim が終了します. 保存したくない場合は :q!
と入力してエンターキーを押します.
ファイルの中身はこのようにします. 出来たら保存して終了してください.
java -Xmx2G -Xms2G -jar server.jar
8. 起動ファイルに実行権限を付与する
sudo chmod o+x start.sh
9. 利用規約へ同意する
利用規約のファイルはサーバを起動すると生成されます.
./start.sh
初回起動時, このようなエラーが表示されます. これは利用規約 (eula) への同意が必要なためです.
Starting net.minecraft.server.Main
[23:40:42] [ServerMain/ERROR]: Failed to load properties from file: server.properties
[23:40:42] [ServerMain/WARN]: Failed to load eula.txt
[23:40:42] [ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
次のコマンドを実行して, 同意します.
echo eula=true > eula.txt
10. server.properties
を開いてサーバの設定を行う
サーバを起動する前に, RCON 接続設定を行います. これは第2章でも紹介した内容ですので, 詳しくは第2章を参照してください.
Vim で server.properties
を開きます.
sudo vim server.properties
下記のように RCON に関する部分 (ついでにゲームモード) を書き換えます. ここのポート番号は先程 VM の設定で通信許可したポート番号です. 一致していないと接続出来ませんので, よく確認してください. ちなみに, server.port=25565
になっていると思いますが, これも先程設定したポート番号と同じで, こちらはマルチプレイ用に使用します.
enable-rcon=true
rcon.password=minecraft
rcon.port=25575
gamemode=creative
11. マイクラサーバの起動
再度, 起動ファイルを実行してサーバを起動します.
./start.sh
しばらくして, Done. と表示されればサーバ構築完了です. RCON も起動していることを確認してください.
[23:56:23] [Server thread/INFO]: Done (87.222s)! For help, type "help"
[23:56:23] [Server thread/INFO]: Starting remote control listener
[23:56:23] [Server thread/INFO]: Thread RCON Listener started
[23:56:23] [Server thread/INFO]: RCON running on 0.0.0.0:25575
サーバを停止するには stop
と打って実行してください.
おまけ. 時刻設定
仮想マシンは立ち上げた直後, 協定世界時 (UTC) になっています. これを日本標準時 (JST) に変更したい場合は下記のコマンドを実行します.
sudo timedatectl set-timezone Asia/Tokyo
確認するには timedatectl
を実行します.
azureuser@vm-minecraft:~/MinecraftServer$ timedatectl
Local time: Sat 2022-01-29 08:59:52 JST
Universal time: Fri 2022-01-28 23:59:52 UTC
RTC time: Fri 2022-01-28 23:59:52
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
18.5 クライアントの起動設定と接続確認
1. マインクラフトランチャーを起動して, 起動構成タブを開く
2. 新規作成
から起動構成を作成する
起動構成の設定例は下記を参考にしてください. ゲームディレクトリは任意ですが, バージョンはサーバのバージョンに合わせてください.
項目 | 記入例 |
---|---|
名前 | Azure Server |
バージョン | release 1.18.1 |
ゲームディレクトリ | D:\Minecraft\Minecraft1.18.1_Azure |
できたら 作成
をクリックします.
3. ゲームを起動する
再び プレイ
タブに戻り, 作成した起動構成に変更します.
変更できたら プレイ
をクリックして起動するまで待ちます.
4. ゲーム設定
まずは言語設定です.
音量ですが, デフォルトでは大きいと思いますので, 下げるのをオススメします. 音量設定は 設定
から, サウンド設定
を選択すると変更することが出来ます.
5. マルチプレイ設定
ゲームメニューから マルチプレイ
を選択します. 警告が出てきたら 続ける
をクリックします.
サーバを追加
をクリックします.
サーバアドレスの入力欄に, マイクラサーバの DNS 名を入力します. DNS 名は Azure ポータルにかかれていますので, 参照してください.
記入できたら 完了
をクリックします.
6. サーバへのログイン
サーバーリストにて, 緑色の電波マークが表示されていることを確認してください. 緑色になっていない場合は, サーバが停止している可能性があるので再起動してください.
サーバを選択して サーバに接続
をクリックします.
ログインできることを確認してください.
また, サーバコンソール上に自分のプレイヤー ID が表示されていることを確認してください.
[09:26:42] [User Authenticator #1/INFO]: UUID of player Takunology is a8fa945c-****-****-*****-d6f510532f8b
[09:26:42] [Server thread/INFO]: Takunology[/---.---.---.---:62155] logged in with entity id 128 at (36.5, 75.0, -14.5)
[09:26:42] [Server thread/INFO]: Takunology joined the game
これでサーバ構築およびクライアントからの接続は完了です.
コマンド権限を与えるには, op <PlayerID>
を実行します. その他, ゲーム設定コマンドなどについては第2章を参考にしてください.
7. サーバの停止
サーバをつけっぱなしにしておくと課金されてしまうので, 停止します. 仮想マシンを止める前に, プレイヤーは一度ログアウトし, サーバ上で stop
コマンドを実行してマイクラサーバを停止します.
コンソール上で仮想マシンを停止するにはシャットダウンコマンドを実行します.
sudo shutdown -h now
Azure ポータルで止める場合は 停止
をクリックします.
補足. サーバの自動シャットダウンについて
仮想マシンを作成すると, デフォルトが自動シャットダウン機能が有効になっており, 毎日決まった時間になると自動的にシャットダウンするようになっています. これをオフにしたい場合は, 左側のメニューから 自動シャットダウン
を選択し, オフ
に設定して保存してください.
自動シャットダウンがオフになった場合は, 仮想マシンのシャットダウン忘れに注意してください. つけっぱなしにしておくと課金されてしまいます.
次の章より, VM を利用したマイクラプログラミングを行います. プログラムを実行する前には必ずサーバ起動が必要ですので忘れずに行ってください. 起動するには Azure ポータルで仮想マシンを開始し, コンソールにて SSH 接続を行い, マイクラサーバ起動ファイルを実行します. 接続の際には秘密キー (.pem
ファイル) が必ず必要ですので, 間違えて削除しないように保管してください.