コンテンツに移動
クラウド オペレーション

Psyonix が優れたロギング機能を活用して成功を収めた方法

2021年7月8日
Google Cloud Japan Team

※この投稿は米国時間 2021 年 6 月 30 日に、Google Cloud blog に投稿されたものの抄訳です。

たとえば、一晩のうちに貴社のピーク同時接続ユーザー数が 5 倍に増えた場合、成功の鍵を握るのは、貴社のオペレーションが急増したユーザー数に問題なく対応できるかどうかです。ロケットリーグは、Psyonix の人気オンライン マルチプレーヤー ゲームで、アーケード スタイルで特殊な車を操作しながらサッカーを楽しめます。Psyonix は 2020 年の夏、ロケットリーグのビジネスモデルを先行購入モデルから無料プレイモデルに切り替えました。

この無料プレイモデルの移行において、Psyonix は同時接続ユーザー数が最大で 5 倍に急増することを予測しました。ビジネス的には素晴らしいことですが、同社の IT チームにとっては課題でもありました。Psyonix チームはこの高い目標を達成し、スケーラブルで質の高いゲーム体験をプレーヤーに提供できるようにするために、運用において重要となる要素を変革しました。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Psyonix.max-1300x1300.jpg

新しい環境の立ち上げに要する時間を 1 週間から 1 日に短縮

ゲーム、メディア、ヘルスケア、小売などに携わる事業者は、自社サービスを利用するピーク同時接続ユーザー数が大幅に変動し、ときにその予測が困難であるという運用上の共通課題を抱えています。

プリンシパル エンジニアの Dan Schoenblum 氏とリード オンライン サービス エンジニアの Matt Sanders 氏は、プレーヤーとともにゲームプレイ環境を活気づける Psyonix のチームを率いています。ロケットリーグのサッカー スタイルの試合への参加をリクエストするゲーマーの数は、時間帯、休日かどうか、特別なプロモーションがあるかなどの要素に応じて常に大きく変動します。同社のチームは、この大きな変動に対応するために、Google Kubernetes Engine(GKE)を利用して、需要に基づいて環境を迅速にスケールできるようにしました。

Sanders 氏は次のように述べています。「以前は、当社のサービスに応じてカスタマイズされたすべての構成を含め、新しい環境を 1 つ立ち上げるために 1 週間かかっていました。GKE に切り替えてからは、これを 1 日でできるようになりました。API とコマンドライン ツールもあらゆる用途に使えます。これを Ansible や Terraform とともに使用することで設定の多くを自動化でき、その結果として構成ミスを削減できました。」

ただし、Psynoix のチームにとって GKE に切り替えた利点は、迅速なスケールアップが可能になったことだけではありません。

Schoenblum 氏は次のように述べています。「デベロッパーにとって Google Cloud は使いやすく、また探しているものを簡単に見つけられます。GKE を使用することで、Kubernetes を管理するための運用上のオーバーヘッドを完全になくすことができます。ロギングやモニタリング機能は Google Cloud のエコシステムにすでに組み込まれているため、ログへのアクセスは簡単です。ログ指標の他にも、アプリログと一緒にパッケージ化されたシステム指標も利用できます。このように、機能がデベロッパー目線で機能が統合されているため使いやすいのです。」

ゲーマーの数が増えるに従い、トラブルシューティングをより効率的に行い、重要なオペレーションの信頼性を確保する必要性が生じます。Psyonix にとって、データのロギングにさらに焦点を絞ることが、このニーズに対応するうえで鍵となりました。

ログデータを最大限に活用する

デベロッパー、オペレーション、SRE チームは、ログ、すなわちシステムやアプリケーションのポイントインタイム スナップショットを使用して、技術的問題の根本原因を特定します。ゲーマーの数、そしてそれをサポートするインフラストラクチャが急増したため、Psyonix で大量のログを手動で検索を行うことはほぼ不可能になりました。そこで同社は、Cloud Logging の機能であるラベル付けとログ エクスプローラに目を向け、有用なメタデータを追加して分析できるようにしました。

1 日分のログをわずか数秒で検索

Psyonix のプレーヤー マッチング サービスの運用チームは、フロントライン サポートからエスカレーションされた困難な課題の根本原因を特定する責務を担っています。Psyonix のインフラストラクチャやサービスのアーキテクチャを詳細に理解していないプレーヤーからの情報は、ときとしてあいまいな場合があります。

Schoenblum 氏は次のように説明しています。「プレーヤーからいただく問題には、試合に参加できなかった、昨日不具合が発生したが具体的にいつかはわからないなどといったものもあります。以前のシステムでは、問題の種類と正確な発生時刻を把握できなければトラブルシューティングを行うことは実質的に不可能でした。当社には、自社のログデータを検索する効果的な手法がなかったのです。」

そこで、ラベリングが力を発揮します。ラベルのおかげで、リクエストをプレーヤー ID などのフィールドでグループ化できるようになり、Cloud Logging でインデックス登録して検索できるようになりました。今では、個々のプレーヤーに関連付けられたログを数秒でクエリして、トラブルシューティング プロセスを開始できます。Schoenblum 氏は次のように続けています。

「手動では達成できなかったであろうレベルの可視性を実現できました。ラベルと Cloud Logging のおかげで、ユーザー数の増加に対応しながらトラブルシューティングを効果的に行えます。当社の目標は、優れたゲーム体験を提供するために、同じリソース量でより多くのことを実現することでしたが、この目標を達成することができました。」

重要なゲームプレイや収益を数秒が左右する

先行購入モデルから無料プレイモデルに移行するということは、ユーザー体験や、ユーザーがアップグレードしたいときにアップグレードを購入できる機能が、事業の成功における最優先事項となることを意味します。Psyonix チームは Cloud Monitoring ダッシュボードとプロアクティブなアラートを使用して、問題の一歩先を進んでいます。

Sanders 氏は、無料プレイモデルへの移行を実行した日のことを次のように振り返ります。「無料プレイモデルを開始した際、当社で負荷テストを実行し、予想される動作のモデルを構築しましたが、そのすべてを Cloud Monitoring ダッシュボードでトラッキングできました。その後、本番環境での稼働を開始し、モデル指標を基に実際の指標をトラッキングして動作が予想通りであることを検証できました。移行を実行した日には、チームの多くのメンバーが、ログ指標を活用したダッシュボードを多数駆使していました。」

Psyonix はまた、ログデータから作成されるカスタム指標を利用して、ビジネスにおける重要な要素をモニタリングし、これに関するアラートを生成しています。指標が通常の動作しきい値を超えるとアラートが生成されるため、すぐに調査できます。Psyonix チームは、以下のような重要なイベントに減少がみられる場合に通知するように、アラートを構成しました。      

  • 成功したログイン試行の割合

  • 成功したマッチ メイキング試行の割合

  • 成功したゲーム内購入イベントの割合

モニタリングにおける一般的なベスト プラクティスは、「自社の事業にとって重要なものを測定すること」です。Psyonix は上述のような指標を測定することで、プレーヤーのニーズやビジネスにおけるニーズを常にモニタリングしています。

Psyonix の次のステップ

ラベル付け、カスタム指標、ダッシュボード、アラートは、Psyonix チームにとってほんの始まりにすぎませんでした。同社の次の大きなプロジェクトは、リクエストの一部としてログに記録されるタグの共通ライブラリを作成することです。この手法は「標準ロギング」と呼ばれるものであり、指標の標準化に役立ちます。すべてのリクエストで同じタイプの情報をログに記録することで、より堅牢な指標の構築、効果的なパターン分析、高速なデータ解析が実現し、チケット システムなどに役立ちます。Sanders 氏は次のように指摘しています。「ログを確認してトラブルシューティングを行う際、デベロッパーが特定のログにどのようなラベルを付けているか、場合によってはコードを確認して調べる必要があります。標準ロギングであれば、これらすべてが標準化されるため、ログをより有益に活用できます。」

GKE と Cloud Logging を使い始めましょう

Google Cloud は、システムログと指標に加え、構成されたアプリケーションからのログと指標を Cloud Logging と Cloud Monitoring に自動的に取り込み、デベロッパー、オペレーター、SRE のエクスペリエンスをより高速で生産的なものにします。すでに GKE をご利用の場合は、GKE ダッシュボード(追加の設定なしですぐに利用可能)を確認して、指標、ログ、アラート、イベント、SLO の統合ビューをご参照ください。

ゲームのための Google Cloud には、優れたプレーヤー体験を構築し、デベロッパーが優れたインフラストラクチャとデータの分析情報を利用できるようにするための手法が記載されています。ぜひご覧ください。

-プロダクト マーケティング マネージャー John Day

投稿先