翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon GameLift Servers FleetIQ のベストプラクティス
Amazon GameLift Servers FleetIQ は、ゲームホスティング用の Amazon EC2 リソースを管理するための低レベルのロジックレイヤーです。特に、Amazon GameLift Servers FleetIQ は、ゲームセッションが中断される可能性を最小限に抑え、ゲームホスティングで実行可能なスポットインスタンスの使用を最適化します。また、基本的なゲームホスティング機能により、利用可能なゲームサーバーを追跡し、できるだけ低コストで利用できるゲームサーバーにゲームプレイをルーティングします。
スタンドアロン機能としての Amazon GameLift Servers FleetIQ では、完全マネージド Amazon GameLift Servers ソリューションで提供されるアドバンスト機能 (FleetIQ も使ってホスティングコストを最小化する) を提供しません。マッチメイキング、レイテンシーベースのプレイヤールーティング、ゲームセッションとプレイヤーのセッション管理、バージョニングなどの機能が必要な場合は、Amazon GameLift Servers マネージドソリューションをご覧ください。
Amazon GameLift Servers FleetIQ を最大限に活用するために役立ついくつかのベストプラクティスを以下に紹介します。
-
セッションベースのゲームに Amazon GameLift Servers FleetIQ を使用します。Amazon GameLift Servers FleetIQ は、ゲームセッションの中断の可能性が最も低いインスタンスにプレイヤーを常にルーティングする場合に最適です。寿命の長いセッションを保持すると、Amazon GameLift Servers FleetIQ の再調整プロセスが妨げられ、ゲームセッションが中断される可能性が高くなります。理想的なワークフローは、プレイヤーがマッチメイキング (またはサーバー選択) からゲームプレイに移行することです。ゲームが終了すると、プレイヤーはマッチメイキングに戻り、新しいインスタンスの別のゲームサーバーにルーティングされます。Amazon GameLift Servers FleetIQ は、セッションが 2 時間未満のゲームに使用することをお勧めします。
-
さまざまなインスタンスタイプを提供し、選択できるようにします。ゲームサーバーグループを設定する際に、使用するインスタンスタイプのリストを指定します。含めるインスタンスタイプが多いほど、Amazon GameLift Servers 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 Servers FleetIQ を使用してゲームセッションを配置します。ゲームサーバーを使用するプレイヤーのグループを配置する場合は、Amazon GameLift Servers API
ClaimGameServer()を使用します。Amazon GameLift Servers FleetIQ は、ゲームセッションの中断の可能性が高いインスタンスへのプレイヤーの配置を回避します。 -
ゲームサーバーのステータスを Amazon GameLift Servers FleetIQ に報告します。Amazon GameLift Servers API
UpdateGameServer()を使用して、サーバーの動作状態と使用状況のステータスを定期的に報告します。ゲームサーバーの正確なステータスを維持することで、Amazon GameLift Servers FleetIQ はゲームプレイをより効率的に配置できます。また、スポットのバランシングアクティビティ中に、進行中のゲームプレイのインスタンスの終了を回避できます。 -
自動スケーリングポリシーを設定します。ターゲット追跡スケーリングポリシーを作成し、プレイヤーの使用状況と需要予測に基づいてホスティング容量を維持できます。Amazon GameLift Servers FleetIQ メトリクス
PercentUtilizedGameServersは、現在使用されているホスティング容量を示す指標です。ほとんどのゲームでは、未使用のゲームサーバーのバッファを維持し、新しいプレイヤーがすぐにゲームに参加できるようにする必要があります。特定のバッファサイズを維持するスケーリングポリシーを作成することで、プレイヤーの需要の変動に応じてインスタンスを追加または削除できます。詳細については、「Amazon EC2 Auto Scaling ユーザーガイド」の「ターゲット追跡スケーリングポリシー」を参照してください。 -
開発環境と本番環境には、異なる AWS アカウントを使用します。複数のアカウントを開発設定と実稼働設定で使い分けることで、不適切な設定がライブプレイヤーにもたらすリスクを軽減できます。
-
実稼働環境でゲームサーバーグループのゲームセッション保護を有効にします。プレイヤーを保護するには、ゲームセッションの保護をオンにし、アクティブなゲームセッションがスケーリングやバランシングアクティビティによって早期に終了しないようにします。
-
EC2 でゲームをテストしてから、Amazon GameLift Servers FleetIQ と統合してください。EC2 でゲームを起動して実行し、最初に設定をファインチューニングすることをお勧めします。その後、同じ起動テンプレートと AMI を使用してゲームサーバーグループを作成できます。
Kubernetes を使用している場合は、まず Kubernetes クラスターに標準 EC2 インスタンスを追加してから、Kubernetes クラスターのワーカーノード用に作成した起動テンプレートを使用してゲームサーバーグループを作成することをお勧めします。EKS を使用している場合は、EKS クラスターとゲームサーバーグループを個別に作成します。ゲームサーバーグループでは、EKS 統合に使用する適切なユーザーデータおよび起動テンプレート設定とともに、EKS に最適化した AMI を使用します。EKS ワーカーノードと EKS 最適化 AMI の詳細については、「Amazon EKS 最適化 Linux AMI」ガイドを参照してください。
-
ゲームサーバーグループのバランス戦略
ON_DEMAND_ONLYを使用し信頼できるゲームサーバーの可用性を確保します。このバランシング戦略が有効な場合、スポットインスタンスは使用されません。この機能は、新機能の発表やその他の特別なイベントなど、最も必要なときにサーバーの可用性を確保するのに便利なツールです。必要に応じて、ゲームサーバーグループをスポットからオンデマンド戦略に切り替えることができます。
また、以下の AWS ベストプラクティスも確認してください。