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

jarを差し替えるだけではあるけど、AWS上だと少し癖があったのでメモします。
この手順ならサーバーのデータは保持されます。
公式
以下のページを参考にEC2インスタンスを構成
Elastic IPでIPを固定するのはしなくても可
マイクラのアプデが来る
仕事の時間です。
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
備考
マイクラに大きいアプデ(新要素多数など)入ったらこれは動かないかも