TURN サーバーのオートスケーリングを設定する
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services (AGS) Play が提供するピアツーピア (P2P) 機能には、NAT 越え中継 (TURN) サーバーの利用が含まれます。TURN サーバーは、特にネットワークアドレス変換 (NAT) やファイアウォールの制限が影響する場合に、プレイヤー間の直接通信を実現するために重要な役割を果たします。この記事では、TURN サーバーの概要と AGS Play における役割、および設定手順について説明します。
TURN サーバーの役割
P2P 通信では、プレイヤーのデバイスが互いに直接接続できるため、中央サーバーの負荷を軽減し、レイテンシーを最小限に抑えることができます。しかし、直接接続は NAT やファイアウォールの設定によって妨げられることが多く、ピア同士が直接リンクを確立できない場合があります。TURN サーバーはこの問題を回避するために使用されます。
P2P 通信
TURN サーバーは、直接接続が失敗した場合にピア間のトラフィックを中継する仲介者として機能します。これにより、プレイヤーのネットワーク環境にかかわらず、データがスムーズに流れることが保証されます。この中継機能は、STUN (Session Traversal Utilities for NAT) などの他の手法だけでは直接接続を確立できないシナリオで重要になります。
AGS で TURN サーバーを使用する利点
- 接続性の向上: TURN サーバーは、ネットワークの障害にかかわらず P2P プレイヤーが常に互いに接続できるようにします。
- 低レイテンシー: TURN サーバーは直接的な P2P 接続を促進することで、プレイヤーのレイテンシーを最小限に抑えます。
- スケーラビリティ: TURN サーバーはネットワーク負荷を分散し、システムのスケーラビリティを高め、大量の同時接続を処理できるようにします。
- 信頼性: TURN サーバーを利用することで、制限の多いネットワーク環境でもゲームは安定した接続を維持できます。
AGS Admin Portal で TURN サーバーを管理する
ゲーム管理者と開発者は、AGS Admin Portal で TURN サーバーの設定を管理できます。TURN サーバー管理メニューは、Publisher ネームスペースの AGS Settings > TURN Server Configurations から利用できます。
TURN サーバーは、AGS の共有クラウド (Shared Cloud) 環境とプライベートクラウド (Private Cloud) 環境の両方で利用できます。デフォルトでは、TURN サーバーは特定のリージョンにデプロイされます。別のリージョンへのデプロイが必要な場合は、Submit a Ticket をクリックして依頼できます。お客様の環境にサーバーがデプロイされた時点で通知が届きます。
プライベートクラウド環境では、Publisher ネームスペース内の Turn Server Configurations ページの Turn Server Regions セクションで、TURN サーバーの一覧を確認できます。 TURN サーバーを設定するには、リージョンの横にある編集アイコンをクリックし、ポップアップウィンドウで以下のフィールドを入力します。
- Min. TURN Servers: 特定のリージョンにデプロイされる TURN サーバーの最小数。
- Max. TURN Servers: 特定のリージョンにデプロイされる TURN サーバーの最大数。
- Threshold Autoscale: TURN サーバーのオートスケーリングポリシーを定義します。Normal または Aggressive のいずれかを選択できます。
- Normal Scaling (通常スケーリング)
- スケールイン CPU しきい値: 20%
- スケールイン時間 CPU しきい値: 60 秒
- スケールアウト CPU しきい値: 80%
- スケールアウト時間 CPU しきい値: 60 秒
- Aggressive Scaling (積極的スケーリング)
- スケールイン CPU しきい値: 40%
- スケールイン時間 CPU しきい値: 60 秒
- スケールアウト CPU しきい値: 60%
- スケールアウト時間 CPU しきい値: 30 秒
- Normal Scaling (通常スケーリング)
- Enable Bandwidth Threshold: 有効にすると、TURN マネージャーは CPU 使用率 または 帯域幅使用量 のいずれか、先に達したしきい値に基づいて TURN サーバーのスケールイン・スケールアウトを行います。
パブリッククラウド (Public Cloud) 環境では、TURN サーバーの設定は AccelByte によって管理されており、Studio ネームスペースから設定することはできません。
スケーリングパラメータの詳細
- Scale-out CPU threshold: CPU 使用率の上限をパーセンテージ (%) で示します。例えば 80% に設定されている場合、リージョン内の TURN サーバーの CPU 平均値が 85% に達すると、TURN マネージャーは新しいインスタンスをデプロイする必要があります。
- Scale-out time CPU threshold: スケールアウト処理の時間制限を秒単位で示します。例えば 60 秒に設定されている場合、CPU 平均値が上限に 60 秒間達し続けると、TURN マネージャーは TURN サーバー数のスケールアウトを実行します。
- Scale-in CPU threshold: CPU 使用率の下限をパーセンテージ (%) で示します。例えば 20% に設定されている場合、リージョン内の TURN サーバーの CPU 平均値が 15% に達すると、TURN マネージャーはその TURN サーバーを削除対象 (スケールイン) としてマークします。
- Scale-in time CPU threshold: スケールイン処理の時間制限を秒単位で示します。例えば 60 秒に設定されている場合、CPU 平均値が下限に 60 秒間達し続けると、TURN マネージャーは TURN サーバー数のスケールインを実行します。
- Scale-in Bandwidth Limit (MB): 平均ネットワーク送信 (Tx) および受信 (Rx) の下限をメガバイト (MB) 単位で示します。例えば 1 MB に設定されている場合、30 秒間 (デフォルト値) の平均ネットワーク Tx と Rx が 1 MB になると、TURN マネージャーは TURN サーバー数のスケールインを実行します。
- Scale-out Bandwidth Limit (MB): 平均ネットワーク送信 (Tx) および受信 (Rx) の上限をメガバイト (MB) 単位で示します。例えば 10 MB に設定されている場合、30 秒間 (デフォルト値) の平均ネットワーク Tx と Rx が 10 MB に達すると、TURN マネージャーは TURN サーバー数のスケールアウトを実行します。
プレイヤーが特定の TURN サーバーインスタンスで問題に遭遇した場合、管理者はそのインスタンスを無効化でき、バックエンドは代わりとなる新しい TURN サーバーを起動します。
デフォルトの TURN サーバーインスタンスのリソースは、512 MB の CPU と 1 GB のメモリを使用します。デフォルトインスタンスの 1 台の TURN サーバーに対して 1500 の同時接続ユーザー (CCU) でアクセスするテストを実施したところ、以下の結果が得られました。
- TURN サーバーの CPU 使用率が 60% に達しました
- メモリ使用量が 237 MB から 307 MB に増加しました
- ネットワーク使用量は送受信ともに平均 2.76 MB/s でした
TURN サーバーの自動スケールインロジック
TURN マネージャーは、すべてのアクティブな TURN サーバーの平均 CPU 使用率が下限 (Scale-in CPU Threshold) に達すると、TURN サーバーインスタンスのスケールインを実行します。スケールインを実行する前に、時間しきい値 (Scale-in time CPU Threshold) の間待機します。時間しきい値に達する前に平均 CPU 使用率が下限を超えて上昇した場合、TURN マネージャーはスケールイン処理をキャンセルします。時間しきい値に達し、平均 CPU 使用率がまだ下限を下回っている場合、その TURN サーバーは非アクティブとしてマークされます (get エンドポイントの一覧には返されなくなります)。ただし、非アクティブな TURN サーバーに接続しているプレイヤーが 1 人でも残っている場合、システムは TURN サーバープロセスからの接続数がゼロになるまで無期限に待機し、その後 TURN サーバー (および仮想マシン) のスケーリングを行います。