我在AWS上搭建了Minecraft服务器试试看

我试着做了一下,记下来了。

当我搜索时找到的服务器软件——Spigot。

步骤

    1. 使用AWS开始EC2实例

在启动的EC2实例上安装Spigot

配置日志

image.png

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服务器,因为规格不足,所以我升级了规格。

广告
将在 10 秒后关闭
bannerAds