29
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

新卒一年目がAWSで統合版Minecraftサーバーを構築した話(無料枠編)

Last updated at Posted at 2024-07-26

はじめに

こんにちは。新卒一年目エンジニアのkotenpanと申します。
研修で実施したAWSの勉強が思いのほか楽しかったため、実際にサーバーを立ててみようと思い、友達とみんなでできるMinecraft(統合版)というゲームのサーバーを構築しました。
この記事では費用を最小限(無料)でできる範囲でのサーバー構築について書いていこうと思います。
以下の記事を参考にしました。

今回の構築によって実現できること

  • ~6人で同時に遊べる
  • どの媒体からでも接続できる
  • 24時間自由に出入りすることができる
  • 費用が一切かからない(アカウント設定してから1年間)

無料利用枠の範囲内におけるサーバー構築

Amazon EC2はアカウント設定を行ってから12ヶ月間、ひと月あたり750時間利用できる無料枠が設定されています(2024/07/26 時点)。それを利用してサーバーを構築していきます。

使用したもの

  • Amazon EC2
  • Linux screen コマンド

Step1. EC2インスタンスの起動設定

アベイラビリティゾーンを東京(ap-northeast-1)に設定し、インスタンスを設定していきます。

アプリケーション・OS イメージ・インスタンスタイプ

アプリケーションおよび OS イメージ:Ubuntu Server 24.04 LTS (HVM)
インスタンスタイプ:t2.micro

新しいキーペアを作成し、キーペアを設定

タイプ:ED25519
キーファイル形式:.pem
ここで秘密鍵をダウンロードしておきましょう。

セキュリティグループを作成する

セキュリティグループ名は分かりやすいように設定する。(例: minecraft_bedrock)
アウトバウンドルールを二つ設定する。

  • タイプ:SSH 送信先:マイIP
  • タイプ:カスタムUDP ポート範囲:19132 送信先:Anywhere-IPv4
    ※ Java版の場合はカスタムTCPでポート範囲を25565に設定

他の設定はデフォルトのままで大丈夫です。設定ができたらインスタンスを起動しましょう。

今回構築した無料枠EC2インスタンスは停止する必要がありません。ずっと起動した状態で大丈夫です。再起動した場合、EC2のパブリックIPアドレスが変わってしまうので少し面倒くさいです。
インスタンスを再起動する必要があり、かつIPアドレスが変わってほしくない場合はElastic IPの設定をしてください。インスタンスが停止している時間の分だけElastic IPの費用($0.005/h)が課金されます。

Step2. EC2インスタンスにMinecraftサーバーを導入

EC2インスタンスにSSH接続する

今回はWindows Subsystem For Linux(WSL)からSSH接続する方法を紹介します。
WSLのインストールに関しては他の記事を参考にして下さい。

SSH接続のためにダウンロードした秘密鍵ファイルを適した場所に移動させます。Ubuntuを起動し、以下のコマンドをひとつずつ実行していきます。

# ホームディレクトリに移動
$ cd ~

# .sshディレクトリの作成
$ mkdir ~/.ssh

# ダウンロードした秘密鍵ファイルを作成した.sshディレクトリに移動
# {username}と{秘密鍵}は自分のものに書き換える
$ mv /mnt/c/Users/{username}/Downloads/{秘密鍵}.pem ~/.ssh

# 秘密鍵ファイルに対してアクセス権限を変更
$ chmod 600 ~/.ssh/{秘密鍵}.pem

秘密鍵の準備ができたので、EC2インスタンスにSSH接続していきます。
EC2インスタンスの画面では、右上にボタンがいくつかあると思います。

image.png

作成したEC2インスタンスを選択したあと、接続ボタンを押し、SSHクライアントのタブ内の一番下にある(例:)の部分のコマンドをコピーしましょう。(下のコマンドみたいな感じのやつ)

$ ssh -i "{秘密鍵}.pem" ubuntu@ec2-{グローバルIPv4アドレス}.ap-northeast-1.compute.amazonaws.com

WSLに戻ってSSH接続をしていきます。以下のコマンドを実行してください。

# ~/.ssh に移動
$ cd ~/.ssh

# コピーしたコマンドを実行しSSH接続する
$ ssh -i "{秘密鍵}.pem" ubuntu@ec2-{グローバルIPv4アドレス}.ap-northeast-1.compute.amazonaws.com

これでEC2インスタンスに接続できました。

Minecraft専用サーバーソフトウェアのダウンロードして起動する

Minecraft用のサーバーソフトウェアをダウンロードしていきます。リンクはこちらにあります。Ubuntu (Linux) 用 Minecraft 専用サーバーのソフトウェアのダウンロードボタンを右クリックし、「リンクのアドレスをコピー」してください。

# ホームディレクトリに移動
$ cd ~

# minecraftという名のディレクトリを作成
$ mkdir minecraft

# minecraftディレクトリに移動
$ cd minecraft

# サーバーソフトウェアのダウンロード(コピーしたリンクを貼り付ける)
$ wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.21.3.01.zip

# unzipをインストール
$ sudo apt install -y unzip

# zipファイルを解凍
$ unzip bedrock-server-1.21.3.01.zip

# Minecraftサーバーを起動する
$ LD_LIBRARY_PATH=. ./bedrock_server

上記のコマンドを一つずつ実行することでサーバーに接続できる状態となります。
Minecraft(統合版)を開き、「サーバーを追加」においてサーバーアドレスにグローバルIPv4アドレス、ポートに19132を書きこんで保存するとワールドに入れます。

しかし

この状態ではSSH接続を切断するとMinecraftサーバーも切断されてしまいます。
これを回避するためにscreenコマンドを利用します。
詳しい説明はこちらの記事で解説されているので参考にしてください。

まとめ

今回は無料枠のみでMinecraftサーバーを構築してみました。AWSを勉強していて実際に触ってみたい人にはいい教材なのかなと思っています。自分にとってもEC2インスタンスのいい勉強になったと思います。
少人数のグループでMinecraftを遊びたい場合は今回の構築方法を使えば無料でマルチプレイできるのでハッピーになれます。
次回は無料枠でのスペックが足りなくなってしまった場合に、LambdaやEventBridgeを利用したサーバー強化+自動起動・停止機能について解説をする予定です。

29
9
0

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
  3. You can use dark theme
What you can do with signing up
29
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?