第3回 AWS で Minecraft サーバー構築【1.19.2】~自動起動させよう編~

Minecraft

フェイス・ソリューション・テクノロジーズ株式会社 IS 本部 OS ユニットの Saki@猫好き です。AWS 活用していますか?

今回は、前回までに作成した minecraft の Mod サーバーを、「インスタンスを立ち上げたら自動で起動する設定」にしてみます。

はじめに

今回は、サーバーでの作業が主となります。SSH 接続ができる用意をお願いします。

また、現在 Minecraft サーバーを起動させている場合は、一旦、停止させてください。
stop コマンドで停止することができます。

自動起動シェルスクリプトの作成と確認

念のため、現在のカレントディレクトリーをログインユーザーのホームディレクトリーに移動させておきましょう。

$ cd

vim でファイルを作成

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
保存して vim を終了させます。

Esc キーを押した後に、:wq を入力し、Enter キーを押します。

シェルスクリプトの動作確認 ~ 起動

minecraft サーバーが起動するか、確認します。
$ sh -x minecraft_script.sh start
しばらく待って、screen が起動しているか確認してみます。
$ screen -ls
実際に minecraft が起動できるか確認します。

起動時に、IP アドレスに間違いがないか確認してください。

ちゃんと繋がった! のに、なぜ夜か! 見づらくてすみません。

シェルスクリプトの動作確認 ~ 停止

minecraft サーバーが停止するか、確認します。

※ゲーム画面はきちんと終了させておきましょう。

$ sh -x minecraft_script.sh stop
しばらく待って、screen が終了しているか確認します。
$ screen -ls

自動起動の設定と確認

自動起動の設定

vim でサービスファイルを作成します。
$ sudo vim /etc/systemd/system/minecraft.service
次の内容を、minecraft.service ファイルに貼り付けます。
[Unit]
Description=Minecraft Server
After=network.target local-fs.target

[Service]
Type=forking
User=ec2-user
WorkingDirectory=/home/ec2-user/
ExecStart=/home/ec2-user/minecraft_script.sh start
ExecStop=/home/ec2-user/minecraft_script.sh stop

[Install]
WantedBy=multi-user.target
起動時にスクリプトが動くように設定します。
$ sudo systemctl enable minecraft.service
パーミッションを変更します。

通常はそのままでも動くと思いますが、念のため、パーミッション(権限)を変更します。

$ chmod 744 minecraft_script.sh

起動確認 ~ EC2 インスタンスの再起動

EC2 コンソール画面から、EC2 インスタンスを再起動してみます。
minecraft ゲームを起動します。

以前は、SSH 接続をして起動させなければいけなかったのですが・・・

ちゃんと繋がった! のに、今度は雨か! 空気を読む子ですみません。

起動確認 ~ EC2 インスタンスの停止 → 起動

まずは、EC2 コンソール画面から、EC2 インスタンスを停止します。
完全に停止したことを確認したら、EC2 インスタンスを開始します。
しばらく待って、minecraft ゲームを起動します。

IP アドレスが変更されていますので、修正をお忘れなく。

残念。まだ雨が降っていました。まぁ、そんなに時間が経っていないからしょうがないか。というか、もう少し時間を空けて接続してみれば良かった。

最後に

いかがでしたでしょうか? これで、SSH 接続を行わなくても、minecraft を遊ぶことができるようになりました。

次回は、サーバーの停め忘れによる課金を防ぐために、自動停止をさせる方法について書きたいと思います。

引き続き、よろしくお願いいたします!

プロフィール
この記事を書いた人
saki@猫好き

フェイス・ソリューション・テクノロジーズ株式会社オペレーションサービスユニットのユニット長。
とにかく猫が好き。そして、キャンプが好き。休みの日は結構な割合でキャンプ場に出没します。
AWS 6 冠達成しています。
ITパスポート、基本情報技術者、応用情報技術者、取得済み。

saki@猫好きをフォローする
フェイスでは一緒に働く仲間を募集しています

フェイス・ソリューション・テクノロジーズ株式会社では、一緒に働いてくれる仲間を募集しています。
いろいろな案件があるので、いろいろなことに挑戦できる会社です。
「面白いこと」に積極的なので、あなたの「面白そうなことだからやってみたい」を形にできるチャンスがあります!

Minecraft
フェイススタッフブログ

コメント

タイトルとURLをコピーしました