やってみたのでメモ。
サーバーソフト・・Spigot
検索したら出できたやつ。
手順
- AWSでEC2インスタンス起動
- 起動したEC2インスタンスに、Spigotをインストール
- ログの設定
少しはまりポイントもありつつ、わりと簡単だった。
アーキはこんな感じ。シンプル。
1. AWSでEC2インスタンス起動
EC2インスタンスのスペックはこんな感じにした。
とにかく快適に使いたいので、スペック高め。
お金は結構かかるけど、遊びたいときだけ起動するようにすればそんなに。
- OS
Ubuntu - インスタンスタイプ
c5a.2xlarge 8vCPU 16GiBメモリ - EBS
50GB
2. 起動したEC2インスタンスに、Spigotをインストール
#リポジトリ更新
sudo apt-get -y update
#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の作成
sudo touch /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
sudo systemctl start amazon-cloudwatch-agent
systemctl status amazon-cloudwatch-agent
sudo systemctl enable amazon-cloudwatch-agent
systemctl is-enabled amazon-cloudwatch-agent
これあったら良いかなーっていうログを適当に設定。
{
"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の主なログファイル
参考
-
Spigot公式
spigotmc.org
WikiのGettingStarteg→Instllationからインストールのやり方がみれる。 -
【完全版】Minecraftサーバーの構築
サーバースペックが参考になった。
余談、ハマったとこ
最初、t2microで試してたらOutOfMemoryでうまくいかず、ヒープメモリについていろいろ調べることになった。
参考になったやつ。
EC2をt2.microで立てたときにやることメモ
【JVM】OOM(Out Of Memory)障害対応のための必要な知識
JVMのヒープメモリを確認する(jstat)
インストール手順にメモリ指定よく載ってておまじないのように使ってたけど、
なるほどね、となった。
t2.microだとスワップメモリが割り当てられてないのですぐ落ちる。
結局、マイクラサーバーを動かすにはどうやってもスペック不足だったのでスペック上げました。