この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
皆様こんにちは。
今回はAmazon Lightsailの無料期間(三か月)を利用してMinecraftサーバーを立てる方法を紹介します。
前提条件
・AWSアカウントを保有しており、マネジメントコンソールにアクセスできる。
・今までにLightsailを利用したことがない。(無料期間を開始していない)
・Minecraft Java Edition 1.18.2
・公式サーバーではなく軽量化された「PaperMC」サーバーを利用。
・無料期間は三か月間であるため、課金されたくない場合期間内にインスタンスの削除をしてください。
Amazon lightsailとは
Amazon Lightsail は、数クリックでウェブアプリケーションやウェブサイトを立ち上げられる、使いやすいクラウドリソースを提供します。Lightsail は、インスタンス、コンテナ、データベース、ストレージなどの簡素化されたサービスを提供します。Lightsail では、WordPress、Prestashop、LAMP などの事前に設定されたブループリントを使用して、ウェブサイトやアプリケーションを簡単に立ち上げることができます。また、Lightsail では、静的なコンテンツをホストするだけでなく、世界中のオーディエンスにコンテンツを提供したり、Windows Business サーバーを立ち上げて実行することもできます。Lightsail コンソールは、設定プロセスをガイドし、多くの場合はコンポーネントがすでに設定されています。 公式ドキュメントより
今回はAmazon Lightsailのインスタンスサービスを利用してマインクラフトのサーバーを構築していきます。
Minecraftサーバー構築
1.Lightsailインスタンス作成
では早速Minecraftサーバーを構築するためにまずインスタンスを作成します。
設定値は下記の通りです。(今回利用しない部分は省略しています)
項目 | デフォルト値 | 設定値 | 説明 |
---|---|---|---|
インスタンスロケーション | 東京、ゾーン A (ap-northeast-1a) | 東京、ゾーン A (ap-northeast-1a) | |
プラットフォームの選択 | Linux/Unix | Linux/Unix | |
設計図の選択 | アプリ+OS, WordPress(5.9.3-8) |
OSのみ, Amazon Linux 2 (2.0.20220426.0) |
|
SSH キーペアの変更 | 新しいデフォルトキーの作成 | 既存のキーペア | キーペアがない場合、新規作成してください。 |
インスタンスプランの選択 | $3.5USD | $10USD | 無料期間があるもので、一番性能が高いものを選択。 |
Lightsail リソース名 | Amazon_Linux_2-1 | Minecraft-Server | 識別しやすい名前に変更。 |
Lightsailのマネジメントコンソールから「インスタンスの作成」をクリック。(画像では見切れていますがページ右下で言語の変更ができるので、英語になっている場合日本語に変更してください)
上記の表にしたがって設定していきます。
SSHキーペアがない場合新規作成し、プライベートキーをダウンロードしてください後程使用します。
設定を完了し、問題がなければ「インスタンス作成」を最後にクリックします
これでMinecraftサーバーに必要なインスタンスを作成できました。
2.ファイアウォールルール設定
今回のMinecraftサーバーに必要なファイアウォールルールを下記の表に合わせて設定していきます。
変更前(デフォルト)IPV4ファイアウォールルール
アプリケーション | プロトコル | ポートまたは範囲/コード | 制限 |
---|---|---|---|
SSH | TCP | 22 | 任意のIPv4アドレス Lightsailブラウザ SSH/RDP |
HTTP | TCP | 80 | 任意のIPv4アドレス |
変更後IPv4ファイアウォールルール
アプリケーション | プロトコル | ポートまたは範囲/コード | 制限 |
---|---|---|---|
SSH | TCP | 22 | 自身のパブリックIPv4アドレス Lightsailブラウザ SSH/RDP |
カスタム | TCP | 25565 | 自身のIPv4アドレス |
自分のパブリックIPを調べるには下記のサイトを参考にしてください。
https://www.cman.jp/network/support/go_access.cgi
今回はIPv6ネットワーキングは利用しないため、無効化します。
それでは設定をしていきます。
まず下記画像の赤枠をクリックし、
「管理」をクリックします。
「ネットワーキング→+ルールを追加」の順にクリックしていき、
ポートまたは範囲に「25565」、IPアドレスに制限するにチェックを付けて送信元IPアドレスに自分のパブリックIPを入力後、作成をクリック。
「25565」ポートのルールが追加されているのを確認したら、次にSSHのルールを変更するために画像の赤枠をクリックし、
IPアドレスに制限するにチェックを付けて、送信元IPアドレスに自分のパブリックIPを入力後、保存をクリック。
SSHのルールが変更されているのを確認したら、今回HTTPプロトコルは使用しないので画像赤枠をクリックしてルールを削除します。
これでIPv4ファイアウォールルールの設定を完了しました。次にIPv6ネットワーキングを無効化します。
画像の赤枠をクリックして、
「はい、無効にします」を選択。
IPv6ネットワーキングが無効になり、これでファイアウォールルール周りの設定は完了しました。最後にSSH接続に使用するパブリックIPをコピーするため、「ホーム」をクリックしてインスタンス一覧画面に戻ります。
赤枠の部分に数字が表示されていると思うので、コピーしてください。
3.Minecraftサーバーセットアップ
インスタンスに接続して設定するために、TeraTermを使用します。
「ホスト(T):」に先ほどコピーしたパブリックIPを貼り付け、「OK」をクリック。
「ユーザ名(N):」に"ec2-user"と入力し、「RSA/DSA/ECDSA/ED25519鍵を使う」で、インスタンス作成時にダウンロードしたキーペアを選択します。最後に「OK」クリックし、コンソールに入ることができたら成功です。
接続に成功したらまず、パッケージのアップデートを行います。
sudo yum update -y
アップデートが完了したら次にJavaをインストールしていきます。
今回はOpenJDKのAmazon Correttoを使用します。
sudo yum install -y java-17-amazon-corretto
次に以下のコマンドを入力して、インストールできたかを確認してください。
java -version
インストールできていれば以下の出力が表示されます。
openjdk version "17.0.3" 2022-04-19 LTS
OpenJDK Runtime Environment Corretto-17.0.3.6.1 (build 17.0.3+6-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.3.6.1 (build 17.0.3+6-LTS, mixed mode, sharing)
そしたら次に、「Minecraft」というディレクトリを作成し、その中にMinecraftサーバーを導入します。
mkdir Minecraft
cd Minecraft
作成したディレクトリ内に利用するMinecraftサーバーをダウンロードします。
*今回は公式サーバーではなく軽量化された「PaperMC」サーバーを利用します。
wget https://papermc.io/api/v2/projects/paper/versions/1.18.2/builds/313/downloads/paper-1.18.2-313.jar
サーバーをダウンロードできたら下記のコマンドを使用してサーバーを起動してみましょう。
java -Xmx1024M -Xms1024M -jar paper-1.18.2-313.jar nogui
しかし以下の出力を返され起動に失敗してしまいます。
[17:22:46 ERROR]: Failed to load properties from file: server.properties
[17:22:46 WARN]: Failed to load eula.txt
[17:22:46 INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
起動に失敗しましたがeula.txtという規約同意書が生成されます。
規約を承認するため以下のコマンドを入力して「eula=false」の箇所を「eula=true」に変更してください。
vi eula.txt
変更後再度サーバーを起動してみましょう。
java -Xmx1024M -Xms1024M -jar paper-1.18.2-313.jar nogui
以下の様な出力がされていれば起動は成功しているはずです。
--<略>--
[16:42:56 INFO]: Preparing level "world"
[16:43:05 INFO]: Preparing start region for dimension minecraft:overworld
[16:43:06 INFO]: Time elapsed: 997 ms
[16:43:06 INFO]: Preparing start region for dimension minecraft:the_nether
[16:43:07 INFO]: Time elapsed: 433 ms
[16:43:07 INFO]: Preparing start region for dimension minecraft:the_end
[16:43:07 INFO]: Time elapsed: 509 ms
[16:43:07 INFO]: Running delayed init tasks
[16:43:07 INFO]: Done (12.652s)! For help, type "help"
[16:43:07 INFO]: Timings Reset
4.MInecraftサーバー接続
今回構築したMinecraftサーバーに接続してみましょう。
1.自分のマインクラフトを起動し「マルチプレイ」を選択。
2.「サーバーを追加」を選択。
3.「サーバーアドレス」にインスタンスのパブリックIPを入力後、「完了」を選択。
4.追加したサーバーを選択し、「サーバーに接続」を選択。
これで接続できました。
ここまで出来たらTeraTermのコンソールに戻り以下のコマンドを入力して、自分のマインクラフトユーザーにop権限を与えます。
op [自分のマイクラID]
成功したら以下の出力が表示されます。
[18:19:36 INFO]: Made [自分のマイクラID] a server operator
これで自分のマインクラフトユーザーはマインクラフトのチャットを利用してサーバーを停止したり、時間の操作などができるようになりました。
5.ホワイトリスト設定
現在ファイアウォールルールの設定の関係上自分しかこのサーバーに入れないので、ルールを再度変更し、マインクラフトのホワイトリスト機能を利用して自分が許可した人がサーバーにはいれるように設定します。
まずIPv4ファイアウォールの「25565」ポートのルールを変更します。
「IPアドレスに制限する」のチェックを外して「保存」をクリック。
これでファイアウォールルールの変更を完了しました。
しかしこのままではインスタンスのパブリックIPを知られさえすれば誰でもサーバーに入られてしまうため、マインクラフト側でホワイトリストを設定して制限をかけます。
ホワイトリストを有効化するために以下のコマンドを入力します。
whitelist on
ホワイトリストを有効化するとホワイトリストに追加されていないユーザは下記の表示がされ、サーバーに接続することができなくなります。
サーバー接続を許可する人をホワイトリストに追加するには下記のコマンドを入力してください。(自分自身はop権限を持つためホワイトリスト関係なしにサーバーに接続できます)
whitelist add <追加したい人のマイクラID>
これでホワイトリスト設定の説明を終わります。
最後に、Minecraftサーバを停止するには以下のコマンドを使用してください。
stop