Amazon GameLift FleetIQ ベストプラクティス - Amazon GameLift

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

Amazon GameLift FleetIQ ベストプラクティス

Amazon GameLift FleetIQ は、ゲームホスティング用の Amazon EC2 リソースを管理するための低レベルのロジックレイヤーです。特に、Amazon GameLift FleetIQ は、ゲームセッションが中断される可能性を最小限に抑え、ゲームホスティングで実行可能なスポットインスタンスの使用を最適化します。また、基本的なゲームホスティング機能により、利用可能なゲームサーバーを追跡し、できるだけ低コストで利用できるゲームサーバーにゲームプレイをルーティングします。

スタンドアロン機能としての Amazon GameLift FleetIQ では、フルマネージド Amazon GameLift ソリューションで提供されるアドバンスト機能 (FleetIQ も使ってホスティングコストを最小化する) がありません。マッチメーキング、レイテンシーベースのプレイヤールーティング、ゲームセッションとプレイヤーのセッション管理、バージョニングなどの機能が必要な場合は、Amazon GameLift ソリューションをご覧ください。

Amazon GameLift FleetIQ を最大限に活用するために役立ついくつかのベストプラクティスを以下に紹介します。

  • セッションベースのゲームに Amazon GameLift FleetIQ を使用する。Amazon GameLift FleetIQ は、ゲームセッションの中断の可能性が最も低いインスタンスにプレイヤーを常にルーティングする場合に最適です。寿命の長いセッションを保持すると、Amazon GameLift FleetIQ のバランシングプロセスが妨げられ、ゲームセッションが中断される可能性が高くなります。理想的なワークフローは、プレイヤーがマッチメイキング (またはサーバー選択) からゲームプレイに移行することです。ゲームが終了すると、プレイヤーはマッチメイキングに戻り、新しいインスタンスの別のゲームサーバーにルーティングされます。Amazon GameLift FleetIQ は、セッションが 2 時間未満のゲームに使用することをお勧めします。

  • さまざまなインスタンスタイプを提供し、選択できるようにします。ゲームサーバーグループを設定する際に、使用するインスタンスタイプのリストを指定します。含めるインスタンスタイプが多いほど、Amazon GameLift FleetIQ で有効性の高いスポットインスタンスをゲームホスティングに利用するための柔軟性が増します。たとえば、同じインスタンスファミリー (c5.large、c5.xlarge、c5.2xlarge、c5.4xlarge) 内の複数のサイズをリストすることができます。インスタンスを大きくすると、各インスタンスでより多くのゲームサーバーを実行できるため、コストが削減される可能性があります。インスタンスを小さくすると、自動スケーリングがプレイヤーの需要の変化に迅速に対応できます。必要なインスタンスタイプのリストは優先順位付けされていないことに注意してください。Auto Scaling グループは、実行可能なインスタンスタイプのバランスを使用して、グループの復元力を維持します。

  • すべてのインスタンスタイプでゲームをテストします。ゲームサーバーグループに設定したすべてのインスタンスタイプで、ゲームサーバーが正しく動作していることを確認します。

  • インスタンス容量の重み付けを使用します。一連のインスタンスサイズ (c5.2xlarge、c5.4xlarge、c5.12xlarge など) を使用するようにゲームサーバーグループを構成する場合は、各インスタンスタイプの容量加重情報を含めます。詳細については、「Amazon EC2 Auto Scaling ユーザーガイド」の「Amazon EC2 Auto Scaling インスタンスの重み付け」を参照してください。

  • Amazon GameLift FleetIQ を使用してゲームセッションを配置します。ゲームサーバーを使用するプレイヤーのグループを配置する場合は、Amazon GameLift API ClaimGameServer() を使用します。Amazon GameLift FleetIQ は、ゲームセッションの中断の可能性が高いインスタンスへのプレイヤーの配置を回避します。

  • Amazon GameLift FleetIQ にゲームサーバーのステータスを報告します。Amazon GameLift API UpdateGameServer() を使用して、サーバーのヘルスと使用率のステータスを定期的に報告します。ゲームサーバーの正確なステータスを維持することで、Amazon GameLift FleetIQ はゲームプレイをより効率的に配置できます。また、スポットのバランシングアクティビティ中に、進行中のゲームプレイのインスタンスの終了を回避できます。

  • Auto Scaling ポリシーを設定します。ターゲット追跡スケーリングポリシーを作成し、プレイヤーの使用状況と需要予測に基づいてホスティング容量を維持できます。Amazon GameLift FleetIQ メトリクス PercentUtilizedGameServers は、現在使用されているホスティングキャパシティを示す指標です。ほとんどのゲームでは、未使用のゲームサーバーのバッファを維持し、新しいプレイヤーがすぐにゲームに参加できるようにする必要があります。特定のバッファサイズを維持するスケーリングポリシーを作成することで、プレイヤーの需要の変動に応じてインスタンスを追加または削除できます。詳細については、「Amazon EC2 Auto Scaling ユーザーガイド」の「ターゲット追跡スケーリングポリシー」を参照してください。

  • 開発環境と実稼働環境に異なる AWS アカウントを使用します。複数のアカウントを開発設定と実稼働設定で使い分けることで、不適切な設定がライブプレイヤーにもたらすリスクを軽減できます。

  • 実稼働環境でゲームサーバーグループのゲームセッション保護を有効にします。プレイヤーを保護するには、ゲームセッションの保護をオンにし、アクティブなゲームセッションがスケーリングやバランシングアクティビティによって早期に終了しないようにします。

  • EC2 でゲームをテストしてから、Amazon GameLift FleetIQ と統合してください。EC2 でゲームを起動して実行し、最初に設定を微調整することをお勧めします。その後、同じ起動テンプレートと AMI を使用してゲームサーバーグループを作成できます。

    Kubernetes を使用している場合は、まず Kubernetes クラスターに標準 EC2 インスタンスを追加してから、Kubernetes クラスターのワーカーノード用に作成した起動テンプレートを使用してゲームサーバーグループを作成することをお勧めします。EKS を使用している場合は、EKS クラスターとゲームサーバーグループを個別に作成します。ゲームサーバーグループでは、EKS 統合に使用する適切なユーザーデータおよび起動テンプレート設定とともに、EBS に最適化した AMI を使用します。EKS ワーカーノードと EKS 最適化 AMI の詳細については、Amazon EKS 最適化 Linux AMI ガイドを参照してください。

  • ゲームサーバーグループのバランス戦略 ON_DEMAND_ONLY を使用し信頼できるゲームサーバーの可用性を確保します。このバランシング戦略が有効な場合、スポットインスタンスは使用されません。この機能は、新機能の発表やその他の特別なイベントなど、最も必要なときにサーバーの可用性を確保するのに便利なツールです。必要に応じて、ゲームサーバーグループをスポットからオンデマンド戦略に切り替えることができます。

以下の AWS ベストプラクティスも参照してください。