素人が何もわからずAWSにマイクラサーバを立ててみた with Gemini
はじめに
こんにちは!プログラミング経験のしょぼい私が、AIアシスタントのGeminiに助けてもらいながら、AWSでMinecraftサーバーを立ち上げた記録です。AWSアカウントは持っていたものの、無料期間はとっくに過ぎて放置状態……そんな私でも、Geminiの力を借りればサーバー運用ができるんだ!という驚きと学びを共有したいと思います。
「sandboxとしてサーバー運用を練習したい」「コストは最小限に抑えたい」そんなコンセプトで実施しています。
*ちなみにこちらの記事は、実際のGeminiとのやりとりを記事として出力させ、加筆修正しています。
現在の状態
- AWSアカウントは持っているが、無料期間は終了済み。
- クラウドに関する知識はほぼゼロ。
- Minecraftは好きだけど、サーバー構築は未経験。
やりたいことと、達成したこと
今回チャレンジしたことと、Geminiのサポートで達成できたことは以下の通りです。
- コストを最小限に抑えるEC2の設定
- 実際にEC2を立ち上げてMinecraftをインストール
- Minecraft内でチート(コマンド)を使うための設定
1. コストを最小限に抑えるEC2の設定
まず第一の目標はコスト削減です。AWSのEC2インスタンスは、起動している時間に対して料金が発生します。そのため、誰もプレイしていない時には自動で停止するように設定します。(※ただし、今回の記事では自動停止の設定そのものの詳細は割愛します。)
EC2 インスタンスの選択
Minecraftサーバーは、ある程度のメモリを必要とします。今回はコストと性能のバランスを考え、t2.micro インスタンスを選択しました。これは無料枠外でも比較的安価ですが、常時稼働させるとそれなりに費用がかかります。
OSの選択
OSはAmazon Linux 2023 AMIを選択しました。Linuxサーバーに慣れていない私でも、Geminiがコマンドを教えてくれるので安心です。
セキュリティグループの設定
サーバーへのアクセスを制御するセキュリティグループを設定します。最低限必要なポートを開放します。
- SSH (ポート22): 自分のPCからサーバーに接続するために必要。送信元IPは**「マイIP」**に設定し、特定IPからのみ接続できるようにしてセキュリティを確保します。
- Minecraft (ポート25565): プレイヤーがMinecraftサーバーに接続するために必要。送信元IPは**「どこからでも (0.0.0.0/0)」**に設定します。
キーペアの作成
SSHでサーバーに安全に接続するためのキーペアを作成し、.pem ファイルをダウンロードします。このファイルは秘密鍵なので、chmod 400 your-key.pem のようにパーミッションを厳しく設定し、厳重に管理します。
2. 実際にEC2を立ち上げてMinecraftをインストール
EC2インスタンスを起動したら、いよいよMinecraftサーバーをインストールします。
Javaのインストール
MinecraftサーバーはJavaで動作するため、Java Development Kit (JDK) をインストールします。
sudo yum update -y
sudo yum install -y java-17-amazon-corretto-devel
Minecraftサーバーのダウンロード
Minecraft公式サイトから server.jar ファイルをダウンロードし、EC2インスタンスに転送します。
cd ~
sudo mkdir minecraft
cd minecraft
wget https://piston-data.mojang.com/v1/objects/05e4b48fbc01f0385adb74bcff9751d34552486c/server.jar -O server.jar
- EC2インスタンス内にディレクトリを作成:
mkdir minecraft - ダウンロードした
server.jarをscpコマンドなどでEC2インスタンスに転送: - your-key.pemはAWSの秘密鍵を指定してください。
scp -i your-key.pem server.jar ec2-user@your-ec2-ip:/home/ec2-user/minecraft/
EULA(利用規約)への同意
初回起動時に生成される eula.txt ファイルを編集し、eula=false を eula=true に変更します。
Minecraftサーバーの初回起動
サーバーを一度起動して、必要な設定ファイルが生成されることを確認します。
cd ~/minecraft
java -Xmx512M -Xms512M -jar server.jar nogui
Ctrl+C` で一度サーバーを停止します。
3. Minecraft内でチートを使うための設定
Minecraftサーバー内で /gamemode creative のようなコマンド(チート)を使うには、server.properties の設定と、プレイヤーへのOP権限付与が必要です。
server.properties の設定
-
Minecraftサーバーを停止します:
EC2インスタンスにSSH接続し、もしMinecraftサーバーが起動中であれば停止します。# もしSystemdでサービス化している場合(今回の記事範囲外ですが、一般的な運用方法です) # sudo systemctl stop minecraft.service # そうでない場合、手動で起動したサーバープロセスを停止 # 例: killall java -
server.propertiesを編集します:cd /home/ec2-user/minecraft/ vi server.properties以下の設定を確認または追加・変更します。
enable-command-blocks=true # コマンドブロックを有効にする op-permission-level=4 # OP権限レベルを最大にする (1-4, 4が最高権限)ファイルを保存してエディタを終了します (
viの場合:Escキーを押してから:wqと入力しEnter)。 -
Minecraftサーバーを再起動します:
# もしSystemdでサービス化している場合 # sudo systemctl start minecraft.service # そうでない場合 cd /home/ec2-user/minecraft/ java -Xmx512M -Xms512M -jar server.jar nogui
OP権限の付与
server.properties でOP権限レベルを設定しても、あなたのMinecraftユーザーにOP権限が付与されていないと、チートコマンドは使用できません。
Minecraftサーバーのコンソールにアクセスして、あなたのMinecraft IDにOP権限を付与します。
-
Minecraftサーバーを一時的に停止します:
(Systemdなどで自動起動設定をしている場合でも、一時的にその管理を外して手動で起動し直します。この作業中はEC2の自動停止機能が動いていないことを確認してください。)# もしSystemdでサービス化している場合 sudo systemctl stop minecraft.service # そうでない場合、手動で起動したサーバープロセスを停止 # 例: killall java -
Minecraft サーバーのディレクトリに移動し、直接サーバーを起動します:
これにより、SSH接続しているターミナルがサーバーコンソールになります。cd /home/ec2-user/minecraft/ java -Xmx512M -Xms512M -jar server.jar noguiサーバーが完全に起動し、「
Done (...)! For help, type "help"」と表示されるまで待ちます。 -
このターミナルで、OP権限を付与するコマンドを入力します:
op <あなたのMinecraft ID>例:
op Pajeemo入力後、
Enterキーを押します。サーバーコンソールに「
Made Pajeemo a server operator」のようなメッセージが表示されれば成功です。 -
サーバーを正常に停止し、必要に応じて元の自動起動設定に戻します:
サーバーコンソールでstopと入力し、Enter。ターミナルがコマンド入力待ちに戻ったら、Systemd サービスを再起動します(もし自動起動を設定していた場合):
# もしSystemdでサービス化している場合 sudo systemctl start minecraft.service
作業前に無効化していたEC2自動停止のアラームなども、忘れずに有効に戻しましょう。
これで、Minecraftにログインしてチートコマンドが使えるようになりました。
Discussion