AWSでマイクラ鯖たててみた٩( 'ω' )و
友達と遊ぶようにマイクラ鯖たてました。 とは言ってもそんなことのできるデスクトップPCは持ってないのでAWS使いました。
自宅鯖だとポート開放やら何やらあるけどAWSなので簡単に公開できました٩( ‘ω’ )و
公開するなら荒らし対策などやることはいろいろあるけど、今回は友達で遊べる最低限の設定まで。 (最低限やるべきことが出来てなかったら教えてください、、)
AWSインスタンスの生成
マイクラサーバーの設定
とりあえず必要なもののインストール。
$ sudo yum update -y $ java -version // java入ってるか確認。バージョンも確認。必要なら変更などする。 $ sudo yum -y install git
今回はspigotを使ってサーバー環境を整えていきます。 詳細まではわかってないけど、調べたところ公式よりもspigotが良いらしい。
$ mkdir ~/minecraft_spigot $ cd ~/minecraft_spigot $ wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar $ java -jar BuildTools.jar $ java -Xms1024M -Xmx1024M -XX:MaxPermSize=128M -jar spigot-1.11.2.jar nogui $ vi eula.txt eula=false -> true $ java -Xms1024M -Xmx1024M -XX:MaxPermSize=128M -jar spigot-1.11.2.jar nogui
クライアントからログインできるかテスト→ログインできたらstop
で一旦停止
起動/停止スクリプトの作成
いちいちコマンド打つのもあれなのでスクリプト作ります。
起動スクリプト(spi_start.sh)
#!/bin/bash USERNAME='ec2-user' SERVICE='spigot-1.11.2.jar' SCNAME='spigot' SPI_PATH='/home/ec2-user/minecraft_spigot/' XMX="1024M" XMS="1024M" cd $SPI_PATH ME=`whoami` if [ $ME == $USERNAME ] ; then if pgrep -u $USERNAME -f $SERVICE > /dev/null then echo "$SERVICE is already running!" else echo "Starting $SERVICE..." screen -AmdS $SCNAME java -Xmx$XMX -Xms$XMS -XX:MaxPermSize=128M -jar $SERVICE nogui fi else echo "Please run the minecraft user." fi
停止スクリプト(spi_stop.sh)
#!/bin/bash USERNAME='ec2-user' SERVICE='spigot-1.11.2.jar' SCNAME='spigot' SPI_PATH='/home/ec2-user/minecraft_spigot' cd $SPI_PATH ME=`whoami` if [ $ME == $USERNAME ] ; then if pgrep -u $USERNAME -f $SERVICE > /dev/null then echo "Stopping $SERVICE" screen -p 0 -S $SCNAME -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map..."\015' screen -p 0 -S $SCNAME -X eval 'stuff "save-all"\015' sleep 10 screen -p 0 -S $SCNAME -X eval 'stuff "stop"\015' sleep 10 echo "Stopped minecraftserver" else echo "$SERVICE was not runnning." fi else echo "Please run the minecraft user." fi
権限の設定
$ chmod 744 spi_start.sh $ chmod 744 spi_stop.sh
ちゃんと動くか確認しておく
監視ツールの導入など
mackerelエージェントのインストール
サーバたてたらとりあえずmackerel入れとけ派の人なので入れます。 自分は何かあったらslackに飛ばすように設定してるので鯖落ちとかはすぐ気付けるようにしてます。
$ curl -fsSL https://mackerel.io/file/script/amznlinux/setup-all-yum.sh | MACKEREL_APIKEY='API_KEY' sh
定期的に再起動するように設定
ずっと起動しっぱなしは良くないので定期的に再起動するように設定します。
日本時間に変更
$ sudo vim /etc/sysconfig/clock ZONE="Asia/Tokyo" UTC=false $ cp /usr/share/zoneinfo/Japan /etc/localtime $ sudo /etc/init.d/crond restart
再起動スクリプト(spi_restart.sh)
#!/bin/bash
./spi_stop.sh; ./spi_start.sh
cronの設定
$ crontab -e 0 4 * * * /home/ec2-user/minecraft_spigot/spi_restart.sh | logger -t minecraft -p local0.info $ crontab -l $ sudo tail -f /var/log/messages // ログの保存先
参考HP
AWSで爆速でMinecraft Plugin鯖を建てる方法! - Qiita
さくらのVPSにspigotインストール(CentOS 7) | server-memo.net