やってみたのでメモ。
サーバーソフト・・Spigot
検索したら出できたやつ。
手順
1. AWSでEC2インスタンス起動
2. 起動したEC2インスタンスに、Spigotをインストール
3.ログの設定
少しはまりポイントもありつつ、わりと簡単だった。 アーキはこんな感じ。シンプル。
1. AWSでEC2インスタンス起動
EC2インスタンスのスペックはこんな感じにした。 とにかく快適に使いたいので、スペック高め。 お金は結構かかるけど、遊びたいときだけ起動しとけばいいし。
2. 起動したEC2インスタンスに、Spigotをインストール
#リポジトリ更新 sudo apt-get -y update # タイムゾーンを日本にしておく sudo apt-get install tzdata sudo timedatectl set-timezone 'Asia/Tokyo' systemctl restart rsyslog.service # syslogを確認して、日本時間になっていることを確認 view /var/log/syslog # Amazon correttoをダウンロードする。AWSで使えるjdk。 wget -O- https://apt.corretto.aws/corretto.key | sudo apt-key add - sudo add-apt-repository 'deb https://apt.corretto.aws stable main' #Spigotはjava17で動くのでjava17をインストール sudo apt-get install -y java-17-amazon-corretto-jdk # gitをインストール sudo apt-get -y install git # minecraft用のディレクトリ作成して権限変更 sudo mkdir minecraft-spigot sudo chmod 777 minecraft-spigot # Spigotをダウンロード cd minecraft-spigot wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar sudo java -jar BuildTools.jar --rev 1.19.2 # 実行!(事前に作っておいた起動用のスクリプト) sh Minecraft_start.sh
スクリプトはこれだけ。
#!/bin/sh java –Xmx4096M –Xms4096M -XX:+UseG1GC -jar /home/ubuntu/minecraft-spigot_1.19.2/spigot-1.19.2.jar nogui
これでEC2インスタンスに設定しておいたグローバルIPを指定して、 ローカルのマイクラから接続できた。感動した。
3.ログの設定
1.EC2用のIAMロールを作成し、CloudWatchServerAgentのポリシーを設定し、インスタンスにアタッチ(毎度のやつ)
2.CloudWatchをインストール
インストール方法はここ
wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb sudo dpkg -i -E ./amazon-cloudwatch-agent.deb
3.jsonの作成
---2023/5/25追記---
カスタムメトリクス(メモリ使用率)とかを監視したければ、CloudWatchAgentの設定は↓の記事のやり方のほうが良かった。
CloudWatchAgentでメモリ使用率を見たい - 勉強したこと、日記
この手順で下記にあるログの設定もまとめてできます。
---追記おわり---
sudo touch /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
これあったら良いかなーっていうログを適当に設定。
{ "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/home/ubuntu/minecraft-spigot/logs/latest.log", "log_stream_name": "{instance_id}", "log_group_name": "/home/ubuntu/minecraft-spigot/logs", "timestamp_format": "%d/%b/%Y:%H:%M:%S %z", "timezone": "UTC" }, { "file_path": "/var/log/syslog", "log_stream_name": "{instance_id}", "log_group_name": "/var/log/syslog", "timestamp_format": "%d/%b/%Y:%H:%M:%S %z", "timezone": "UTC" }, { "file_path": "/var/log/auth.log", "log_stream_name": "{instance_id}", "log_group_name": "/var/log/auth.log", "timestamp_format": "%d/%b/%Y:%H:%M:%S %z", "timezone": "UTC" } ] } } } }
ログの場所はこれを見た
[メモ]Linuxの主なログファイル
あとはサービスの起動と、サーバー起動で自動的にサービスが動くように設定。
sudo systemctl start amazon-cloudwatch-agent systemctl status amazon-cloudwatch-agent sudo systemctl enable amazon-cloudwatch-agent systemctl is-enabled amazon-cloudwatch-agent
参考
- Spigot公式
https://www.spigotmc.org/
WikiのGettingStarteg→Instllationからインストールのやり方がみれる。
qiita.com サーバースペックが参考になった。
余談、ハマったとこ
最初、t2microで試してたらOutOfMemoryでうまくいかず、ヒープメモリについていろいろ調べることになった。 参考になったやつ。 qiita.com
インストール手順にメモリ指定よく載ってておまじないのように使ってたけど、 なるほどね、となった。
t2.microだとスワップメモリが割り当てられてないのですぐ落ちる。 結局、マイクラサーバーを動かすにはどうやってもスペック不足だったのでスペック上げました。