LoginSignup
0

More than 1 year has passed since last update.

posted at

updated at

【EC2】minecraft1.18のサーバーをEC2で立ち上げてみた

はじめに

minecraftの1.18がリリースされました。空や地下が拡張されてより世界が広がったようで、マイクラ世界の拡張は止まるところを知りませんね。
せっかくなので、こちらのバージョンをEC2でサーバー構築してみました。Java17のインストールなど、いくつか躓いたポイントがあったので、その辺りを重点的にまとめたいと思います。

(2021/12/12 追記)
Javaのログ制御系ライブラリ、「Log4j」から脆弱性が発見されました。minecraftもこちらのライブラリを使用しており、外部から攻撃される可能性があります。
今回はそちらの対策についても書いていきたいと思います。

この記事の対象者

  • AWSのEC2でサーバーの立ち上げ・停止を行なったことがある方
  • IaaSを使って minecraftのサーバーを立ち上げてみたい方
  • AmazonLinux2にJava17を導入したい方

環境

  • マシンスペック
    • t2.medium
  • OS
    • Amazon Linux 2 (amzn2-ami-kernel-5.10-hvm-2.0.20211201.0-x86_64-gp2)
  • Javaバージョン
    • Amazon Corretto 17
  • Minecraftバージョン
    • 1.18.1(もともとは1.18.0で設置しましたが、Log4j対策のため1.18.1にアップデートしました。)

構築手順

若干実際に行った作業より順番が前後していますが、実施したこととしては以下の通りです。

EC2立ち上げ

minecraftはメモリが最低2GB必要なため、今回は t2.medium を選択しました。
今のところ問題なく動作していますが、同時接続人数が増えたらインスタンスのアップグレードも検討しています。
参考:Minecraft wiki サーバー/要件

セキュリティグループ

インバウンドルールでマインクラフトサーバー用のポートを解放します。
スクリーンショット 2021-12-12 161413.png

Javaのインストール

minecraft 1.18 では Javaのクラスバージョンが61.0以上でなければ起動することができません。こちらのクラスバーションはJava17以上が対応しているので、そちらをサーバーにインストールしたいと思います。

Amazon Corretto 17

Amazon Correttoは、Open Java Development Kit(OpenJDK)の無料、マルチプラットフォーム、本番環境対応のディストリビューションです。Correttoには、パフォーマンスの強化やセキュリティの修正を含む長期的なサポートが付属しています。Correttoは、Java SE標準との互換性があると認定されており、Amazonの内部で多くの本番サービスに使用されています。
引用:https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/what-is-corretto-17.html

AWSではJava環境をあらかじめ準備してくれています。以下のコマンドを実行してサーバーにインストールを行います。プラットフォーム・タイプごとのダウンロードリンク一覧はこちらにあるので、詳しく知りたい方はリンク先を見てください。

  • インストール
$ sudo yum install -y https://corretto.aws/downloads/latest/amazon-corretto-17-x64-al2-jre.rpm
  • Javaのバージョンチェック
$ java --version

Minecraft Serverソフトのダウンロード

マインクラフト公式で配布しているサーバー用のjarファイルを取得します。詳しくは以下の公式ページに書いてあります。
参考:DOWNLOAD THE MINECRAFT: JAVA EDITION SERVER

  • マインクラフト用ディレクトリの作成
$ mkdir minecraft
  • jarファイルの取得
    • こちらは1.18を構築した時点でのリンクです。1.18.1で建てたい方は、リンクを公式ページに書いてある最近のモノにしてください。
$ cd minecraft
$ wget https://launcher.mojang.com/v1/objects/3cf24a8694aca6267883b17d934efacc5e44440d/server.jar

実行

$ java -Xmx1024M -Xms1024M -jar server.jar nogui

こちらを実行すると、eula.txtというファイルが生成されます。
そのファイルの中のfalse部分をtrueに書き換えます。(ここを変えることで、利用規約に同意したことになり、サーバー用スクリプトが実行できるようになります。)
マイクラサーバーを停止するときは、stopと入力してあげれば終了処理が実施されます。

$ vi eula.txt
# false部分をtrueに書き換えて上書き保存します
$ java -Xmx1024M -Xms1024M -jar server.jar nogui

(2021/12/12 追記)
Log4jの脆弱性が発見されたため、マイクラサーバーを立ち上げる時のコマンドに変化があります。以下のように修正しましょう。

$ java -Xmx1024M -Xms1024M -Dlog4j2.formatMsgNoLookups=true -jar server.jar nogui

まとめ

今回はEC2を使ってマイクラサーバーを立ち上げてみました。Java17のインストール方法で少し手こずりましたが、とても良い勉強になりました。サーバーの勉強をしたい方には、ちょうど良い題材だと思います。立ち上げた直後にLog4jの脆弱性が発見されたため少々焦りましたが、脆弱性の対策なども含めてよい勉強になりました。

次回はこのマイクラサーバーの立ち上げ、停止をdiscordからできるようにしていきたいと思います(もともとこれがやりたかった)。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0