Open1

AWS上のマイクラサーバーアプデ方法

RyRyRyRy

jarを差し替えるだけではあるけど、AWS上だと少し癖があったのでメモします。
この手順ならサーバーのデータは保持されます。

公式

以下のページを参考にEC2インスタンスを構成
Elastic IPでIPを固定するのはしなくても可
https://aws.amazon.com/jp/blogs/news/setting-up-a-minecraft-java-server-on-amazon-ec2/

マイクラのアプデが来る

仕事の時間です。

EC2上のserver.jarをアンインストール

EC2 instance connectでEC2上Linuxに接続し、マイクラサーバー内の.jarを削除します。接続にはインスタンスの起動が必須です。

cd /opt/minecraft/server
sudo rm server.jar

EC2上に最新のjarをアップロードする

アップロード

公式からダウンロードしたjarをscpコマンド経由でEC2のディレクトリへアップします。serverディレクトリへは権限的に入れないので、一度homeに置いた後、動かします。

ローカルCMD

scp -i <pemがあるパス>/minecraft-keypair.pem C:\Users\XXXXXX\<jarがあるパス>\server.jar ec2-user@<ec2 public ipv4>:/home/ec2-user

移動

sudo mv server.jar /opt/minecraft/server/

Cloud init, ユーザーデータフィールドを編集

jarを置き換えると、クラウド上での実行が止まり、サーバーへの接続に失敗します。置き換えただけではサーバー自体の初期化が始まらない為です。
※別理由ご存知のかたは教えてください。

Cloud initの設定

EC2上Linuxのcloud init設定ファイルを編集して、毎回インスタンスが起動するたびにユーザーデータが実行されるようにします。

sudo vim /etc/cloud/cloud.cfg

以下セクションにスクリプト実行設定を変更する設定を記述します

cloud_final_modules:
 - [scripts-user, always]

ユーザーデータフィールドを設定

jarの実行コマンドを設定しておきます。
ユーザーデータフィールド編集への行き方はインスタンスページの
アクション>インスタンスの設定>ユーザーデータを編集を選択してください。

cd /opt/minecraft/server/
java -Xmx1300M -Xms1300M -jar server.jar nogui

別オプション

EC2上で作成したサービスを再起動します。コマンド的な話で言えばこれでも動くはず。
あとで検証します。

sudo systemctl daemon-reload
sudo systemctl enable minecraft.service
sudo systemctl start minecraft.service

インスタンスを再起動し、接続

以下形式で接続を試行し、問題なければアップグレード完了

<public ip>:25565

備考

マイクラに大きいアプデ(新要素多数など)入ったらこれは動かないかも