第3回 Amazon Linux2023 で minecraft を遊ぶ – 起動停止設定編

本シリーズの目標
何かしらの手段でインスタンスを起動させ、minecraft を遊べるようにする。
minecraft は mod の導入が可能な forge サーバーにする。
ログインしている人がいなくなったら、自動的にインスタンスを停止させる。
最終的には、AMI 化してインスタンスを終了することで、課金額を抑える。
今回の目標
ここまでに作成した minecraft サーバーは、セッションマネージャーを介してインスタンスに接続して、コマンドを入力しなければ動きませんでした。
今回は、インスタンスを起動させたら、そのまま遊ぶことが出来るような設定を行います。
今回の対象者
前回記事を参考に、Mod サーバーを構築出来ている方が対象となります。
そんなに難しくはありませんので、是非、挑戦してみてください!
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
以前、Teraterm を利用したやり方で書いたことがあるのですが、AWS を使っているのなら、とことん AWS のサービス、システムを活用しよう、というのが一番の目的です。22 番ポートを開放せずにサーバーでの作業が出来ているのも、わかる人からすれば面白いなぁ、と思っていただけると幸いです。
現在、Minecraft で遊んでらっしゃる方は、一旦、停止させてください。
/stop コマンドで停止。忘れてないですよね?
自動起動シェルスクリプトの作成
セッションマネージャーで接続後、念のためカレントディレクトリをホームディレクトリに移動しておきます
$ cd
vim コマンドを利用してファイルを作成します
$ vim minecraft_script.sh

以下のコードをコピーして、貼り付けてください
#!/bin/bash
start() {
cd minecraft
screen -AmdS minecraft sh run.sh
}
stop() {
screen -p 0 -S minecraft -X eval 'stuff "stop"\015'
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo $"Usage: $0 {start|stop}"
esac

作成したスクリプトを保存します
「Esc」キーを押します
「:wq」を入力します
「Enter」キーを押します
スクリプトの動作確認
Minecraft サーバーが起動するか、確認
コマンドを入力します
$ sh -x minecraft_script.sh start
実際に Minecraft に繋ぐことが出来るか、確認
夜なうえに雨!

Minecraft サーバーが停止するか、確認
※ 先にゲーム画面を終了させてください。
コマンドを入力します
$ sh -x minecraft_script.sh stop
サーバーに繋がらなくなったことを確認

自動起動の設定
コマンドを入力します
$ sudo vim /etc/systemd/system/minecraft.service

以下のコードをコピーして貼り付けてください
[Unit]
Description=Minecraft Server
After=network.target local-fs.target
[Service]
Type=forking
User=ssm-user
WorkingDirectory=/home/ssm-user/
ExecStart=/home/ssm-user/minecraft_script.sh start
ExecStop=/home/ssm-user/minecraft_script.sh stop
[Install]
WantedBy=multi-user.target

作成したスクリプトを保存します
「Esc」キーを押します
「:wq」を入力します
「Enter」キーを押します
インスタンスの起動時にスクリプトが動くように設定します
$ sudo systemctl enable minecraft.service
パーミッション(権限)を変更します
$ chmod 744 minecraft_script.sh
おまけ:タイムゾーンの設定
これは、やらなくても良いです。
今後、ログ等を確認する際に、やっておくと少しだけ便利かもしれません。
また、この作業の後には、インスタンスの再起動が必要となるため、このタイミングで実施しています。
現在の設定の確認
UTC になっています
$ sudo timedatactl

タイムゾーンの変更
$ sudo timedatectl set-timezone Asia/Tokyo
確認
$ sudo timedatectl

自動起動設定の動作確認
起動確認 EC2 インスタンスの再起動
該当インスタンスにチェックを入れて、「インスタンスの状態」から「インスタンスの再起動」を選択する

これまでは、再起動終了後、セッションマネージャーを起動して「sh run.sh」コマンドを打つ必要があったが・・・
Minecraft を起動する

起動確認 EC2 インスタンスの停止 → 起動
該当インスタンスにチェックを入れて、「インスタンスの状態」から「インスタンスの停止」を選択する

「停止済み」になったことを確認

該当インスタンスにチェックを入れて、「インスタンスの状態」から「インスタンスを開始」を選択する

Minecraft の起動。
IP アドレスが変わっています。編集画面から修正することをお忘れなく!

最後に
これで、インスタンスを起動すれば、すぐに Minecraft が遊べるようになりました!
しかし、EC2 のコンパネに接続しなければならなかったり、IP アドレスが変わってしまったり、少し不便は残ると思います。
今後は、この辺りの「少し不便」を解消するため方法を考えたいと思います。
引き続き、よろしくお願いします!
ディスカッション
コメント一覧
まだ、コメントがありません