View a markdown version of this page

GAMEREL01-BP01 ゲームインフラストラクチャを複数のアベイラビリティーゾーンとリージョンに分散して回復性を向上させる - ゲーム業界レンズ

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

GAMEREL01-BP01 ゲームインフラストラクチャを複数のアベイラビリティーゾーンとリージョンに分散して回復性を向上させる

ローカライズされたインフラストラクチャの障害がプレイヤーに与える影響を最小限に抑えるには、プレイヤーの需要を満たすのに十分な容量を確保しながら、予期しない障害に耐えられるように、インフラストラクチャのデプロイを十分な独立した場所に均一に分散する必要があります。

このベストプラクティスを活用しない場合のリスクレベル:

実装のガイダンス

ゲームインフラストラクチャをデプロイするときは、プレイヤーエクスペリエンスを中断することなく 1 つ以上のアベイラビリティーゾーンの中断に耐えられるように、リージョン内の複数のアベイラビリティーゾーンに容量を均一に分散することをお勧めします。ウェブアプリケーションなどのゲームバックエンドサービスは、複数のアベイラビリティーゾーン間で負荷分散するか、 AWS Lambda や Amazon API Gateway などのマネージドサービスを使用して構築する必要があります。このサービスは、リージョンの高可用性を設計で提供します。同様に、キャッシュ、データベース、メッセージキュー、ストレージソリューションなどの状態を維持するコンポーネントは、Amazon S3、DynamoDB、Amazon SQS などのサービスで設計によって提供され、他のサービスで設定できる複数のアベイラビリティーゾーンにわたってデータの永続的な永続性を提供するように設計する必要があります。

回復性のためにゲームサーバーホスティングアーキテクチャを設計する場合は、ゲームサーバーのフリートを 内のアベイラビリティーゾーン全体に均一にデプロイ AWS リージョン して、リージョン内の利用可能なコンピューティングキャパシティーへのアクセスを最大化し、アベイラビリティーゾーンの障害の影響範囲を減らします。たとえば、アベイラビリティーゾーンを使用するように Amazon EC2 Auto Scaling を設定できます。EC2 インスタンスが異常になった場合、EC2 Auto Scaling はインスタンスを置き換えたり、1 つ以上のアベイラビリティーゾーンが使用できなくなった場合に他のアベイラビリティーゾーンでインスタンスを起動したりできます。

認証などの重要なインフラストラクチャでは、複数のアベイラビリティーゾーンで実行されている有効なインスタンスの最小数をプロビジョニングし、いずれかのアベイラビリティーゾーンに障害が発生した場合は、自動スケーリングを使用して負荷の増加や耐障害性を処理します。

ゲームインフラストラクチャを複数のリージョンにデプロイして、可用性を最大化します。Aurora グローバルデータベースや冗長インフラストラクチャなどのクロスリージョンディザスタリカバリ機能は、セカンダリリージョンにデプロイされた単純な DNS 変更でアクティブになる可能性があり、プライマリリージョンに障害が発生した場合にサービスの継続性を提供することができます。これは、高可用性を実現するためにゲームバックエンドサービスにお勧めしますが、この推奨事項はゲームサーバーにとって特に重要です。

たとえば、マルチプレイヤーゲームでは、ゲームサーバーがプレイヤーのゲームセッションをホストするために使用されるため、ゲームサーバーのインフラストラクチャ容量が他のサービスの容量ニーズを上回る可能性があります。多くのゲームは、プレイヤーを論理ゲームリージョン (米国西部や東部など) にシャードすることを選択します。プレイヤーエクスペリエンスを簡素化し、グローバルインフラストラクチャを使用してゲームをホストすることを容易にするために、ゲームサーバーを物理的にホストしている基盤となるクラウドプロバイダーリージョンまたはデータセンターの場所から、プレイヤー向けゲームリージョンの名前を、そのプレイヤーゲームリージョンをサポートするゲームサーバーインスタンスをホストしているローカルゾーンまたは独自のデータセンターなどの他のインフラストラクチャと切り離すことを検討してください。

マッチメーキングサービスを設計するときは、複数のリージョンにまたがる個別のソフトウェアデプロイを使用して、マルチリージョンアーキテクチャをデプロイします。マッチメーキングサービスのデプロイをゲームサーバーインスタンスをホストするフリートから切り離して、マッチメーキングサービスのどのリージョンデプロイがマッチメーキングリクエストを処理したかに関係なく、リージョンのゲームサーバーにプレイヤーをルーティングできるようにします。

マッチメーキング実装でロジックを設計して、レイテンシーやその他のルールを満たすゲームサーバーリージョンを優先します。フリートの容量が少ない場合や、他のリージョンのインフラストラクチャの中断が発生した場合は、プレイヤーを他のリージョンにルーティングできます。

実装手順

  • ゲームインフラストラクチャを複数のアベイラビリティーゾーンに均等に分散し、高可用性と耐障害性を実現します。

  • Amazon S3 AWS Lambda、DynamoDB、SQS などのマネージド型 を使用してゲームバックエンドサービスとステートフルコンポーネントをデプロイするか、カスタムソリューションの負荷分散と耐久性を設定します。 Amazon S3

  • 基になる物理的な場所から切り離された Aurora グローバルデータベースや論理プレイヤー向けリージョンなどのディザスタリカバリソリューションを使用して、重要なゲームサービスとサーバーにマルチリージョンデプロイを実装します。

リソース