AMSトラブルシューティングガイド
注釈:本資料はAI技術を用いて翻訳されています。
概要
このページには、AccelByte Multiplayer Servers (AMS) の使用中に発生する可能性のある問題のトラブルシューティング情報が含まれています。
フリートの問題
最初のステップ
フリートの問題をデバッグする最も簡単な方法の1つは、フリートのログを有効にすることです。Configure タブに移動し、Logs & Artifacts Sampling を選択します。必要なログカテゴリのチェックボックスをオンにし、必要に応じてサンプリング率を調整してログ量を増やします。Save をクリックして変更を適用します。
追加の情報については、AMS DS Detail Metrics Grafana ダッシュボードでAMS Watchdogログを確認してください。Watchdogログは、専用サーバーの状態とその経時的な変化に関する詳細を提供します。
VMが実行されていない
VMのプロビジョニングには最大10分かかる場合があります。しばらく待ってから再度確認してください。
VM数がゼロより大きいが、専用サーバー (DS) が実行されていない
- History タブを確認して、DSが作成されていたかどうかを確認します。クラッシュしている場合は、DSログを確認してください。
- DS起動コマンドが正しく設定されていることを確認してください。
- ゲームビルドに問題がないことを確認してください(つまり、「不良ビルド」ではないこと)。
バッファがゼロに設定されたフリートはどうなりますか?
バッファと最小サーバー値の両方をゼロに設定することで、実行中の仮想マシンを持たないようにフリートを設定できます。ただし、この設定での専用サーバーのリクエストは、そのリージョンで新しい専用サーバーの作成をトリガーしません。そのリージョンのクレームリクエストも失敗します。専用サーバーのクレームリクエストを成功させるには、バッファまたは最小サーバー値をゼロより大きく指定する必要があります。
ランタイム環境でゲームをローカルでテストおよびデバッグするにはどうすればよいですか?
ランタイム環境をローカルで複製できます。次の手順に従ってください。
このコンテナ定義は、デバッグとトラブルシューティングの目的のみを対象としています。AMSソフトウェアを無効にし、AMSと直接機能しません。
-
次の内容でDockerファイルを作成します。
FROM ubuntu:22.04 AS base-watchdog
ARG FORCE_REBUILD=0
ARG TARGETOS
ARG TARGETARCH
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ca-certificates curl unzip
RUN if [ "$TARGETARCH" = "amd64" ] ; then curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" ; else curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip" ; fi
RUN unzip awscliv2.zip && ./aws/install
# crash reporter package
RUN apt-get install -y libc-dev libc++-dev libc++abi-dev uuid-dev gdb
ARG WATCHDOG_NAME=watchdog
ARG WATCHDOG_UID=1000
# The armada group exists in the host VM, so we match the GID here so it can access armada files.
ARG ARMADA_NAME=armada
ARG ARMADA_GID=1100
# Create `watchdog` user in the `armada` group
RUN groupadd --gid $ARMADA_GID $ARMADA_NAME
RUN useradd --uid $WATCHDOG_UID --gid $ARMADA_GID -m $WATCHDOG_NAME
RUN mkdir /artifacts /alloc /ds /latest
# Added Logic to copy Local DS for debugging
COPY /<local_ds_package> /ds/
RUN chown $WATCHDOG_NAME:$ARMADA_NAME /artifacts /alloc /ds /latest
USER $WATCHDOG_NAME:$ARMADA_NAME
# Copy Watchdog
#COPY deployment/start.sh /start.sh
#COPY bin/*${TARGETOS}_${TARGETARCH}*/watchdog /watchdog
WORKDIR /ds
ENTRYPOINT ["/bin/bash", "/ds/<ds_start_script.sh>"] -
次のように内容を変更します。
- DSパッケージの内容を指定し、このイメージの
/dsディレクトリにコピーします。 - エントリーポイントを専用サーバーの起動スクリプトに変更します。
- 起動スクリプトに適切なパラメータを渡します。
- DSパッケージの内容を指定し、このイメージの
-
docker buildコマンドを使用してコンテナをビルドします。コンテナの組み立てに関する詳細については、Dockerの公式ドキュメントを参照してください。
DSに必要なAGS権限がありますか?
DSがAccelByte Gaming Services (AGS) に依存している場合は、正しい権限と名前空間設定でIAMクライアントを作成および設定したことを確認してください。詳細については、IAMクライアントの作成ガイドを参照してください。
専用サーバーの問題
インスタンスタイプにサーバーを実行するための十分なリソースがありますか?
- VM選択がDSのCPUおよびメモリ要件に適していることを確認してください。クラッシュが続く場合は、より大きなVMの使用を検討してください。
- GrafanaのAMS DS Metricsダッシュボードを使用して、個々のDSとVMのリソース使用状況を監視します。
DSが起動時にクラッシュするか、作成タイムアウトによって終了される
DSが削除されないように、作成タイムアウト内にReady Messageを送信してプレイヤーにサービスを提供する準備ができていることをAMSに通知することを確認してください。ローカルでテストするには、AMS Simulatorを使用してDSが「Ready」になることを確認します。
ログとアーティファクトの問題
DSのログが見つからない
フリートでログサンプリングが有効になっていることを確認してください。
ログサンプリングが有効になっているが、ログがまだ見つからない
- Grafanaを使用してwatchdogとartifact collectorのログを調査します。
- GrafanaでExploreビューを開きます。
- Logsデータソースを選択します。
- ラベルフィルタを適用します。
ams_fleet = your_fleet_idservice_name = ams-watchdog or ams-artifact-collector
Logfmtパーサーを使用するためにLogfmt操作を適用します。- クエリを実行して、DS状態に基づくイベントとメッセージのシーケンスを確認します。
DSが「CRASHED」と報告されているが、コアダンプがない
フリートでコアダンプサンプリングが有効になっていることを確認してください。
DSは、ゼロ以外のコードで終了した場合に「CRASHED」と見なされます。たとえば、終了コード137は、メモリ不足(OOM)のためにプロセスが強制終了されたことを示します。Grafanaを使用してメモリ使用量を確認してください。
フリートをクリーンアップした後、DSログがない
フリートが削除された場合、終了したDSインスタンスからログは収集されません。詳細については、フリートの無効化と削除を参照してください。
DSクレームの問題
プレイヤーセッションがDSの検索に失敗していると報告している
- フリートに「Ready」状態のDSインスタンスがあるかどうかを確認します。Admin Portalのフリート詳細で確認するか、Grafanaを使用して履歴ビューを確認できます。
- より高い需要に対応するために、bufferとmaxサーバー数を増やすことを検討してください。
特定のゲーム要件に合わせてフリートサイズを調整する方法の詳細については、フリートサイズの最適化ページを参照してください。
Ready状態のDSインスタンスがあるが、プレイヤーがクレームできない
- Grafanaを使用して、DSインスタンスがプレイヤーによって要求されたリージョンで実行されていることを確認します。詳細については、AMSダッシュボードガイドを参照してください。
- フリートのclaim keysを確認して、セッションテンプレートまたはゲームクライアントによって指定されたクライアントバージョンのクレームキーと一致することを確認します。
- ターゲットリージョンでQuality of Service (QoS) が有効になっているかどうかを確認します。
- Session & Party Historyでセッションを見つけて、DSが要求されたことを確認します。
RequestedRegionsがフリートのリージョンと一致することを確認します。
プレイヤーがゲーム中にセッションからキックされる
- AccelByte Game SDKを使用してAMSに専用サーバーを統合するページのドレインシグナルのリスニングセクションで推奨されているように、DSがドレインシグナルを正しく処理することを確認してください。
運用
IPホワイトリスト
静的IPアドレスを取得する最良の方法は、Bare Metalサーバーを使用することです。サーバーがアカウントにプロビジョニングされている限り、IPアドレスは維持されます。クラウドインスタンスは動的にプロビジョニングされ、IPアドレスはクラウドプロバイダーのパブリックIPプールから取得されます。現在、クラウドインスタンスに固定または予約されたIPアドレスを割り当てる機能はサポートしていません。AGS顧客の代替オプションは、AGS Extendを使用してプロキシサービスを実行するサービスをデプロイし、サードパーティインテグレーターに送信する前にデータを検証および強化することです。