Azure でのゲーム サーバーの基本的なホスティング

このリファレンス アーキテクチャでは、Minecraft サーバーを例として使用し、Windows または Linux でゲーム サーバーをホストする基本的な Azure バックエンドをセットアップする詳細な手順を説明します。

Azure 仮想マシンで実行されている Minecraft サーバー

アーキテクチャの図

Azure 仮想マシンでの単一のゲーム サーバーのホスティング

関連するサービス

ステップ バイ ステップの手順

実行する手順の概要は次のとおりです。

  1. リソース グループを設定します。
  2. Azure 仮想マシンをセットアップし、永続的なディスクを接続して、ポートを開きます。
  3. メンテナンス ポートを介して、新しい Azure 仮想マシンにリモートでアクセスします。
  4. オペレーティング システムのファイアウォールをセットアップします。
  5. 永続的データ ディスクを初期化してフォーマットします。
  6. ゲーム サーバーの依存関係をインストールします。
  7. ゲーム サーバー自体をインストールします。
  8. ゲーム サーバーを構成します。
  9. ゲーム サーバーを実行し、ポートが開いていることを再確認します。

リソース グループを設定する

リソース グループは、Azure リソースの論理的なコレクションです。 すべてのリソースは、リソース グループにデプロイされて管理されます。 次のようにして、リソース グループを作成します。

  1. Azure サブスクリプションがない場合は、始める前に無料アカウントを作成します
  2. Azure portal にサインインします。
  3. 左側のナビゲーションで [リソース グループ] をクリックします。 次に、[追加] をクリックします。
  4. リソース グループの一意の名前を入力します。 システムによって、現在選択されている Azure サブスクリプションで名前が使用可能かどうかがすぐに確認されます。
  5. [サブスクリプション] で、リソース グループを作成する Azure サブスクリプションの名前をクリックします。
  6. リソース グループの地理的な場所を選択します。
  7. [作成] をクリックします。

Azure 仮想マシンをセットアップし、永続的なディスクを接続して、ポートを開く

  1. リソースを作成し、ゲーム サーバーを実行するオペレーティング システムの仮想マシンを選択します。 Azure portal で以下を検索します。これらは、通常、最も一般的なものです。

    Windows Linux
    Windows Server 2016 Datacenter または Windows Server 2016 VM Ubuntu Server 18.04 LTS または Ubuntu Server 18.04 VM
  2. Azure サブスクリプション、リソース グループ、仮想マシンの名前、リージョンを選択します。

  3. I/O とリソースのニーズを満たすマシンの種類、ディスクの種類、およびディスク サイズを選択します。 Minecraft サーバーの場合、ユーザーが 10 人未満であれば、2 個の仮想 CPU (vCPU) と 4 GB の RAM を備えた Standard B2s のような小さい Azure 仮想マシンでも問題ありません。

  4. 後でリモートでアクセスできるように、マシンの管理者のユーザー名とパスワードを設定します。

  5. 後で管理者として仮想マシンに接続できるように、パブリック受信ポートを許可します (メンテナンス ポート)。その後、ゲーム サーバーからの特定のポートが有効になります。

    Windows Linux
    RDP (リモート デスクトップ プロトコル) ポート: TCP/3389
    必要に応じて SSH ポートも追加します: TCP/22
    SSH ポート: TCP/22
  6. [ディスク] セクションに切り替え、ゲーム サーバーの実行可能ファイルと生成されるデータ ファイルを格納するための新しい空のデータ ディスクを作成して Azure 仮想マシンにアタッチします。 ソースの種類は [なし (空のディスク)] です。

    Azure 仮想マシンには、1 つのオペレーティング システム ディスクと短期記憶域用の一時ディスクがありますが、格納されている情報は Azure 仮想マシンを停止するとすぐに失われます。 永続的ディスクを使うと、サーバーが実行されている Azure 仮想マシンを停止した後も、データは存在し続けます

  7. [ネットワーク] セクションに切り替えて、プレイヤーの要求を受け入れるためにゲーム サーバーで必要なポートを有効にし、パブリック IP アドレスを作成します。

    ポートを開くには、仮想ネットワーク、サブネット、およびネットワーク セキュリティ グループ (NSG) を利用する必要があります。

    Minecraft サーバーの場合は、仮想ネットワークとサブネットの両方が既定で作成されるので、何もする必要はありません。 ネットワーク セキュリティ グループを作成するには、ラジオボタンを選択して高度な NIC ネットワーク セキュリティ グループを有効にし、その横にある [新規作成] リンクをクリックして新しいネットワーク セキュリティ グループ (NSG) を構成して、関連する受信規則を追加します。

    Minecraft の場合、必要なポートは 1 つだけで、Minecraft のエディション (Java エディションBedrock エディション) に応じて値とプロトコルは異なります。値のソースは server.properties で、その形式はこちらで説明されています。 [受信規則の追加] リンクをクリックした後、次の値を設定します。

    Minecraft Java エディション Minecraft Bedrock エディション
    ソース 任意 任意
    ソース ポートの範囲 * *
    ターゲット 任意 任意
    ターゲット ポートの範囲 25565 19132
    プロトコル TCP UDP
    アクション 許可 許可
    優先順位 100 100
    名前 MinecraftJava_Port MinecraftBedrock_Port

    パブリック IP アドレスの作成手順: この設定の横にある [新規作成] リンクをクリックし、静的な割り当てで構成します。

  8. Azure 仮想マシンを確認して作成します。 デプロイが完了するまで数分かかることに注意してください。

メンテナンス ポートを介して、新しい Azure 仮想マシンにリモートでアクセスする

Azure 仮想マシンに接続するには、パブリック IP アドレスまたは DNS 名のいずれかが必要です。これを見つけるには、次の手順のようにします。

  1. 作成したリソース グループにアクセスします。
  2. 作成した仮想マシンを選択します。
  3. [パブリック IP アドレス] または [DNS 名] フィールドを探します。どちらでもかまいません。 DNS をセットアップするには、[DNS 名] の下にある [構成] リンクをクリックし、[DNS 名ラベル] で名前を指定して保存します。

その後、チュートリアルに従って、Azure 仮想マシンにリモートでアクセスします。

リモート デスクトップ プロトコル (TCP/3389) SSH (TCP/22)
リモート デスクトップの使い方 Secure Shell プロトコル

Azure 仮想マシンに接続した後は、以下の残りの手順を続行できます。

オペレーティング システムのファイアウォールをセットアップする

仮想マシンは既に、メンテナンスとゲーム サーバー固有のポートの両方に対する要求を受け入れるように構成されていますが、オペレーティング システムのファイアウォールも構成する必要があります。 以下のチュートリアルに従って、プレイヤーの要求を受け入れるためにゲーム サーバーで必要なポートを開きます。

Windows Linux
Windows Server 2016 で受信ポート規則を作成する Ubuntu の簡単なファイアウォール

たとえば、Minecraft の場合、コマンドは次のようになります。
- sudo ufw allow 25565/tcp (Minecraft Java エディション)
- sudo ufw allow 19132/udp (Minecraft Bedrock エディション)

Minecraft サーバーの場合、既定のポートはゲームのバージョンによって異なることに注意してください。Minecraft Java エディションでは TCP/25565 が使用されますが、Minecraft Bedrock エディションでは UDP/19132 が使用されます。

永続的データ ディスクを初期化してフォーマットする

Windows Linux
ディスクの管理 (diskmgmt.msc) を使用します

ディスクの管理を開くには、[スタート] ボタンを右クリックし、[ディスクの管理] を選択します。

ディスク 2 が未割り当てであることに注意してください。それが、初期化してフォーマットする必要がある永続ディスクです。
ディスクの初期化が示されているディスク管理ツール
Linux VM に接続して、新しいディスクをマウントします

手順は以下のとおりです。
1. ディスクを検出する
2. パーティション分割する
3. ファイル システムを書き込む
4. ディレクトリにマウントする
5. 再起動後の自動マウントを設定する

ゲーム サーバーの依存関係をインストールする

Minecraft サーバーの場合、次のような依存関係があります。

Minecraft サーバーのエディション Windows Linux
Minecraft Java エディション Java 8 64 ビット版 Ubuntu への Java 8 のインストール
Minecraft Bedrock エディション Microsoft Visual Studio の Visual C++ 再頒布可能パッケージ N/A

ゲーム サーバー自体をインストールする

  1. フォーマットした永続ディスクにフォルダーを作成します。

  2. そこにゲーム サーバーをダウンロードしてインストールします。 Minecraft サーバーの場合、ダウンロードのリンクは次のとおりです。

    Minecraft Java エディション Minecraft Bedrock エディション
    ダウンロードのリンク ダウンロードのリンク

SSH を使用して Azure 仮想マシンにアクセスしている場合:

  • Wget コマンドのドキュメントを参照し、非対話型ネットワーク ダウンローダーの使用方法を学習します。
  • sudo apt-get install unzip を実行して unzip をインストールし、sudo unzip THEZIPFILE を実行して Minecraft Bedrock エディション サーバーを解凍できるようにします。

ゲーム サーバーを構成する

Minecraft Java エディション サーバーの場合は、まず、EULA に同意するように eula.txt ファイルのパラメーターを変更します (eula=true)。 SSH 経由で Azure 仮想マシンにアクセスしている場合は、Nano エディターのドキュメントを参照し、SSH を介してファイルを編集します。

Minecraft サーバーのどちらのエディションについても、公式の Minecraft wiki のチュートリアルを参照して、Minecraft サーバーを構成します。

ゲーム サーバーを実行し、ポートが開いていることを再確認する

Minecraft Java エディション サーバーを実行するには、コマンド ライン (Windows) またはターミナル (Linux) から次のコマンドを使用します。

java -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M -jar server.jar nogui

グラフィカル ユーザー インターフェイスを使用してサーバーを起動する場合は、"nogui" の部分を省略できます。 便利なように、バッチ ファイル (Windows) またはスクリプト (Linux) を作成できます。

Minecraft Bedrock エディション サーバーを実行するには:

  • Windows では、bedrock_server.exe 実行可能ファイルをダブルクリックするだけです。
  • Linux では、サーバーがインストールされたディレクトリから LD_LIBRARY_PATH=. ./bedrock_server を使用します。 サーバーを root として実行する必要はありません。

最後に、サーバーが実行されたら、ゲーム サーバーに必要なポートが開いていることを確認します。ポートがリッスン中として示される前に、ゲーム サーバーを実行する必要があることに注意してください。

チェックする場所 Windows Linux
Azure 仮想マシンの内部 コマンド ラインから netstat -an | find "LISTENING" を実行し、ポートがリッスン中と表示されることを確認します ターミナルから sudo netstat -ntlp | grep LISTEN を実行します
Azure 仮想マシンの外部 1. 次の手順に従って Telnet を有効にします: [スタート]、[コントロール パネル]、[プログラム]、[Windows の機能の有効化または無効化] の順にクリックします。その後、下にスクロールして [Telnet クライアント] を選択し、[OK] をクリックします。
2. その後、コマンド ラインから telnet host port を実行し、接続が承認済みと表示されることを確認します
telnet host port を実行し、接続が承認済みと表示されることを確認します

セキュリティに関する考慮事項

パブリック受信ポートはインターネットに公開されるため、Azure portal の高度な制御を使用して、メンテナンス受信トラフィックを既知の IP アドレスに制限する必要があります。つまり、自分だけが Azure 仮想マシンにリモート アクセスできるようにします。

その他のリソースとサンプル

Azure Marketplace Minecraft サーバー オファリングを使用した Minecraft サーバーのデプロイ

価格設定

Azure サブスクリプションをお持ちでない場合は、無料アカウント を作成して 12 か月間の無料サービスの利用を開始できます。 それらのサービスの制限を超えない限り、Azure 無料アカウントで無償で提供されているサービスに対して料金が発生することはありません。 Azure Portal または使用状況ファイルを通じて使用状況を確認する方法について説明します。

これらのリファレンス アーキテクチャの実行中に使用される Azure サービスのコストはユーザーが負担し、その合計は分析パイプラインで実行されるイベントの数によって異なります。 リファレンス アーキテクチャで使用されていた各サービスの価格は、Web ページで確認ください。

また、Azure の料金計算ツールを使用して、使用する予定の Azure サービスのコストを構成および見積もることもできます。