マルチプレイヤーゲームのセットアップでは、マッチメイキング結果などのアプリケーションロジックに基づいて、トラフィックを特定のゲームサーバーインスタンスに直接ルーティングすることにより、カスタムルーティングアクセラレータを使用してプレーヤー接続を最適化できます。このアプローチは、AWS Global Acceleratorのプライベートネットワークと静的IPアドレスを活用することにより、レイテンシを改善し、ジッターを減らし、プレイヤーエクスペリエンスを向上させます。
###マルチプレイヤーゲームでカスタムルーティングアクセラレータを使用する例
1。ゲームサーバーとサブネットのセットアップ
1つ以上のVPCサブネット内のAmazon EC2インスタンスで実行されているゲームサーバーのフリートがあるとします。各インスタンスは複数のゲームセッションをホストし、それぞれが異なるポートで聴いています。たとえば、2つのEC2インスタンスは、プライベートIPS 10.1.1.1および10.1.1.2で同じサブネットで実行されている可能性があり、それぞれTCPポート80、81、および82でゲームセッションを提供しています。
2。カスタムルーティングアクセラレータを作成します
AWS Global Acceleratorでカスタムルーティングアクセラレータを作成し、関連するVPCサブネットをエンドポイントとして追加します。アクセラレータでリスナーポート範囲(1001〜1050など)を定義し、EC2インスタンスの宛先ポート範囲(80〜82など)にマッピングします。このマッピングにより、ポート1001-1050の着信トラフィックを特定のIP:バックエンドサーバーのポートコンビネーションにルーティングできます。
3。ポートマッピングとトラフィックコントロール
アクセラレータは、各アクセラレータポートを特定のEC2インスタンスIPアドレスとポートに静的にマッピングするポートマッピングテーブルを生成します。たとえば、アクセルのポート1001は、10.1.1.1:80、ポート1002から10.1.1.1:81などにマップします。特定のインスタンスまたはポートへのトラフィックを許可または拒否し、アクティブなゲームサーバーのみがトラフィックを受信するようにすることができます。
4。マッチメイキングとルーティングロジック
プレーヤーが接続すると、マッチメイキングサービスは、場所、スキルレベル、セッションの可用性などの基準に基づいて、プレイヤーがどのゲームセッション(EC2インスタンスとポート)が参加するかを決定します。マッチメイキングロジックは、グローバルアクセラレータAPIを照会して、選択したゲームサーバーセッションに対応するアクセラレータポートを取得します。
5。アクセラレータを介したプレーヤー接続
プレーヤーには、アクセラレータの静的IPアドレスとマッピングされたポート(ポート1003など)が与えられます。プレーヤーが接続すると、Global AcceleratorはAWSグローバルネットワーク上のトラフィックを正確なEC2インスタンスにルーティングし、ゲームセッションをホストするポート(例:10.1.1.1:82)。これにより、パブリックインターネットを避け、AWSの最適化されたネットワークパスを使用することにより、遅延が軽減されます。
6。利点
- レイテンシとジッターの削減:トラフィックは、AWSの高速、輻輳のないネットワーク上でルーティングされます。
- スケーラビリティ:単一のアクセラレータを使用して、複数の地域で数千のゲームセッションを管理できます。
- フォールトトレランス:ゲームサーバーまたはサブネットのエンドポイントが不健康になった場合、プレーヤーの混乱なしにトラフィックを再ルーティングできます。
- プロトコルの柔軟性:TCP、UDP、またはその両方をサポートし、さまざまなゲームネットワーキング要件に対応します。
### まとめ
AWSグローバルアクセラレータカスタムルーティングを使用して、マルチプレイヤーゲームは、VPCサブネットのEC2インスタンスのプライベートIPアドレスとポートにアクセラレータポートをマッピングすることにより、特定のゲームサーバーインスタンスにプレーヤーを誘導できます。マッチメイキングサービスは、適切なアクセラレータポートを割り当てることにより、プレイヤーが接続する場所を制御し、クライアントの変更を必要とせずに決定論的で低遅延のルーティングを可能にします。このセットアップは、プレーヤー間の割り当てとパフォーマンスの最適化に対するきめの細かい制御を必要とする大規模でグローバルなマルチプレイヤーゲームに最適です[2] [6] [7] [9]。
引用:
[1] https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-how-it-works.html
[2] https://aws.amazon.com/blogs/gametech/deploy-game-servers-with-amazon-gamelift-fleetiq-neg-regreate-with-custom-routing-aws-global-accelerator/
[3] https://www.youtube.com/watch?v=yxqjyly80pc
[4] https://pages.awscloud.com/rs/112-tzm-766/images/2023_ott-od-0502-ngi_slide-deck.pdf
[5] https://coda.io/@kirtanc25/aws-r53-cf-ga/aws-global-accelerator-14
[6] https://pages.awscloud.com/rs/112-tzm-766/images/ptnr-aws-amd-gamelift-gameservers.pdf
[7] https://www.alibabacloud.com/help/en/ga/user-guide/how-custom-routing-listeners-work
[8] https://www.youtube.com/watch?v=qlaauf_zq4i
[9] https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-aws-global-accelerators-custom-routing-accelerators/
[10] https://mas-bandwidth.com/the-case-for-network-acceleration-for-multiplayer-games/
[11] https://aws.amazon.com/blogs/gametech/modernize-game-backend-services-with-aws-global-accelerator/