我在AWS上搭建了Minecraft服务器试试看
我试着做了一下,记下来了。
当我搜索时找到的服务器软件——Spigot。
步骤
-
- 使用AWS开始EC2实例
在启动的EC2实例上安装Spigot
配置日志
1. 在AWS上启动EC2实例
我把EC2实例的规格设置得这样了。
总之为了能舒适地使用,规格要高一些。
虽然费用会比较高,但只在想玩的时候启动也不会很多。
-
- OS
-
- Ubuntu
-
- インスタンスタイプ
-
- c5a.2xlarge 8vCPU 16GiBメモリ
-
- EBS
- 50GB
在启动的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,我成功从本地的Minecraft游戏连接上了。
3. 日志设置
1. 创建针对EC2的IAM角色,并设置CloudWatch Server Agent的策略,并将其附加到实例中(一贯的做法)。
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时,由于内存溢出而无法正常进行,于是我开始对堆内存进行了各种研究。
以下是我找到的一些有用的参考资料。
在使用t2.micro创建EC2实例时需要做的事情备忘录
【JVM】为处理OOM(内存不足)故障所需的必要知识
确认JVM的堆内存(jstat)
安装步骤中经常提到内存分配的方式像是魔法一样使用,嗯,明白了。
如果使用t2.micro,没有分配交换空间,所以很快就会崩溃。
最终,无论怎样都无法运行我的Minecraft服务器,因为规格不足,所以我升级了规格。