TURN サーバーのオートスケーリングを設定する
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services (AGS) Play のピアツーピア (P2P) 機能には、Traversal Using Relays around NAT (TURN) サーバーの使用が含まれています。TURN サーバーは、特にネットワークアドレス変換 (NAT) やファイアウォールの制限がある場合に、プレイヤー間の直接通信を促進する上で重要な役割を果たします。この記事では、TURN サーバーの概要と AGS Play における役割、および設定手順について説明します。
TURN サーバーの役割
P2P 通信により、プレイヤーのデバイスが互いに直接接続でき、中央サーバーの負荷を軽減し、レイテンシを最小限に抑えることができます。ただし、直接接続は NAT やファイアウォールの設定によって妨げられることが多く、ピア間の直接リンクの確立を妨げる可能性があります。TURN サーバーはこれを回避するために使用されます。
P2P 通信
TURN サーバーは、直接接続が失敗した場合にピア間のトラフィックを中継する仲介役として機能します。これにより、ネットワーク環境に関係なく、プレイヤー間でデータがスムーズに流れることを保証します。このリレー機能は、Session Traversal Utilities for NAT (STUN) などの他の技術では直接接続を確立するのに不十分な場合に重要です。
AGS で TURN サーバーを使用する利点
- 接続性の向上: TURN サーバーは、ネットワークの障壁に関係なく、P2P プレイヤーが一貫して互いに接続できるようにします。
- 低レイテンシ: 直接 P2P 接続を促進することで、TURN サーバーはプレイヤーのレイテンシを最小限に抑えます。
- スケーラビリティ: 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 をクリックしてリクエストできます。環境用にサーバーがデプロイされると通知されます。
Private Cloud 環境では、Publisher Namespace の下で、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 サーバーをスケールインまたはスケールアウトします。
Shared Cloud 環境では、TURN サーバーの設定は AccelByte によって管理されており、Studio Namespace から設定することはできません。
スケーリングパラメータの詳細
- 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) を待ってから、TURN サーバーインスタンスをスケールインします。平均 CPU 使用率が下限を超えて増加し、時間しきい値に達する前であれば、TURN マネージャーはスケールインプロセスをキャンセルします。時間しきい値に達し、平均 CPU 使用率がまだ下限を下回っている場合、TURN サーバーは非アクティブとしてマークされます (取得エンドポイントリストには返されません)。ただし、非アクティブな TURN サーバーに少なくとも 1 人のプレイヤーがまだアクセスしている場合、システムは TURN サーバープロセスからの接続数がゼロになるまで無期限に待機してから、TURN サーバー (および仮想マシン) をスケーリングします。