AGS の技術概要
概要
AccelByte Gaming Services (AGS) は、AccelByte が開発した、フルマネージドの Software-as-a-Service (SaaS) プラットフォームです。AGS を使用すると、ゲームデベロッパーは独自のバックエンドサービスの開発や管理をする必要なく、オンラインゲームのビルド、ローンチができます。
コンポーネント
AGS には、すぐに使用できる次のコンポーネントが含まれています。
- サービスエンドポイント:複数の論理サービス領域にグループ化されたサービス。
- Game SDK:SDK は Unreal と Unity に対応しています (ゲームが別のゲームエンジンを使用している場合はお問い合わせください)。
- 管理者ポータル:このウェブポータルを使用して、AGS モジュールを管理し、ゲームに合わせて動作を変更できます。
- AGS を拡張する Server SDK:これには、特定のゲームのニーズを解決するためのカスタムサービスとカスタムツールが含まれています。
サービスアーキテクチャ
AGS について最初に知っておくべきことは、緩く結合されたマイクロサービスとしてサービスが構成されており、それぞれが一連の REST API を提供していることです。このセクションでは、サービスに関するその他の重要なポイントについて説明します。
すべてのクライアント (公開、機密) が AGS サービスと通信することを承認するために、Open Authorization (OAuth 2.0) を標準として採用しました。さまざまなマイクロサービスとクライアント間のすべての通信は、JSON ウェブトークン (JWT) で保護しています。
サービスは、REST HTTPS 呼び出しを使用して同期させるか、またはメッセージブローカーによる非同期メッセージングを使用して、相互通信します。
AGS クライアントは HTTPS を使用してサービスと通信します。これにはゲームクライアント、ゲームサーバー、ウェブサイト、またはいくらかのカスタムツールが含まれます。唯一の例外は、永続的で安全な WebSocket (WSS) 接続を使用するロビーサービスです。
最後に、各マイクロサービスは独自の永続化ロジックを管理し、個々のサービスで問題が発生したときにその影響範囲を最小限に抑えます。AGS はネイティブで複数のゲームをサポートしているため、すべての AGS コンポーネントは名前空間を使用して、各ゲームのプレイヤーデータの論理的なパーティショニングを処理します。
デプロイメントと名前空間
AGS は、2 つのデプロイメントモデルをサポートしています。公開クラウドと非公開クラウドです。どちらのモデルでも、AccelByte は 24 時間年中無休で環境の保守と運用を行っています。
AGS は、1 つのスタジオ (ルート) の名前空間と、複数のゲームの名前空間を扱います。名前空間は、すべてのプレイヤーデータとサービス設定の論理パーティションとして機能し、すべての AGS コンポーネントはこの原則に準拠しています。
名前空間管理の詳細については、アクセスサービスガイドを参照してください。
スケーラビリティ
AccelByte Gaming Services のすべてのサービスは、データセンターとの入出力において 200 ミリ秒未満の応答時間目標をサポートしています。またインフラストラクチャの単位あたりの、水平方向にスケーラブルなスループット (1 分あたりのリクエスト数) の社内目標も設定しています。これらの目標はサービスの性質によって異なります。
ソフトウェアが安定したらパフォーマンステストを開始します。ユーザーがサービスをどのように使用しているかをシミュレートし、負荷テストクライアントを作成して、その使用プロファイルによって生じる同時負荷をシミュレートします。パフォーマンステストの過程で、いくつかの異なるテストを行います。
- 負荷テスト - このテストにより、サービスが予想される容量未満で安定しており、予想されるスループットと応答時間の要件を満たしていることが保証されます。
- スケーラビリティテスト - このテストでは、並列ハードウェアの量を水平方向に調整して、スループットを増減できることを保証します。
- 回復力テスト:当社のサービスが予期しない条件下 (ネットワーク障害により依存関係が利用できない場合など) でも、正しく動作することを保証するテストです。このテストでは、サービスが呼び出し元にエラーを返しますが、他のコンポーネントに影響が連鎖しないことも確認します。
- ストレステスト:通常よりも高い負荷が発生した場合 (ハードウェアのスケーリングでの予期しない障害イベントが原因となるなど) の、特別なケースでの回復力テストです。
以下の図に示すように、サービスの負荷テストでは反復的なアプローチを使用します。
セキュリティとコンプライアンス
AccelByte は情報セキュリティに真剣に取り組んでいます。当社はすべてのシステム、プロセス、製品にわたって、お客様データを保護するためのベストプラクティスを実践しています。具体的には、AccelByte は ISO 27001 の要件を満たす適切な内部統制を実施しています。その要件は、ソフトウェアの開発やデプロイメントに関連する要件を含む、情報セキュリティリスクを管理する包括的なフレームワークを提供しています。これはアクセス制御、ネットワークセキュリティ、インシデント管理、情報セキュリティガバナンスなどのトピックをカバーしています。AccelByte では、独立外部監査人が当社の ISO 27001 の実施をレビューしているところです。当社は 2023 年に認定を取得する予定です。
AccelByte は、独立したサードパーティのサイバーセキュリティベンダーと契約して、すべての AGS サービスとインフラストラクチャに対して定期的な侵入テストを実行しています。AccelByte はまた、Orca Securityのプラットフォームを使用して、セキュリティ上の潜在的な脆弱性を特定、評価し、継続的なモニタリングを行って潜在的なセキュリティイベントや異常を積極的に追跡、特定、調査します。
こうした社内での情報セキュリティ対策に加えて、AGS は、ゲームを欧州連合 (EU) の一般データ保護規則(GDPR) と、カリフォルニア州のカリフォルニア消費者プライバシー法 (CCPA) に準拠させるのに役立つサービスも提供しています。詳細については、当社の Introduction to legal compliance.をご覧ください。
24 時間年中無休のモニタリングと運用
AGS は、バックエンドのあらゆるコンポーネントの包括的なログ、モニタリング、アラートを維持管理します。これにはアプリケーションロードバランサー、サービスメッシュ、アプリケーション/サービス自体へのフロントエンドの入力ポイントなど、インフラストラクチャに至るすべてが含まれます。
すべてのクライアントとゲーム環境 (開発と本稼働) は、24 時間年中無休のライブオペレーション (LiveOps) チームがモニタリングしています。当社のモニタリングシステムが検出した、あるいは当社のクライアントとそのプレイヤーが報告したインシデントをトラブルシューティングおよび緩和するための、詳細なランブックも用意されています。本稼働環境での LiveOps インシデント応答時間や、解決または緩和までの時間は、当社の SLA で保証されています。
AGS モニタリングの技術スタックは、Fluent Bit (または Fluentd) のスクレイピング、解析、インデックス作成、および Amazon Managed OpenSearch. へのログ配布を含む、すべてのコンテナの詳細なロギングから始まります。AGS 管理者ポータルでは、クライアントが専用サーバーおよび AGS サービス (ロビー、マッチメイキングなど) のログを検索しフィルタリングできます。これでエンドツーエンドのトラブルシューティングが大幅に簡素化されます。
AGS インフラストラクチャとサービスの包括的なメトリクスは、Amazon Managed Prometheus (AMP) に収集、保存されています。これには、カスタムログ検索/クエリから生成されたメトリクスが含まれます。クライアントは、Grafana ダッシュボードを介してそのメトリクスを調べることができます。AMP のアラートマネージャーでは、ゲームクライアントの健全な運用を保証する数百のシグナルをカバーする包括的なアラートルールのセット、AGS サービス、インフラストラクチャを定義します。
最後に、AMP のアラートマネージャーによって生成されたアラートは Opsgenie, にルーティングされ、24 時間年中無休のライブオペレーションチームに告知されます。チームはアラートに対応し、最初のトラブルシューティングから根本原因分析、緩和と解決にいたるまでの、インシデント対応プロセスを実行します。このプロセスの一環として、チームは検出、予防、対応を改善する機会も特定します。自動チケットシステムに加えて、お客様は AccelByte サポートポータルまたはメールで本稼働サービスインシデントチケットを送信することもできます。レポートはすべて Opsgenie に送信され、同じプロセスをトリガーします。
クロスプラットフォームのサポート
AGS はもともと、次の機能によりクロスプラットフォームをサポートしています。
- クロスアイデンティティ:複数のプラットフォームからログインし、単一の AccelByte アカウントを複数のプラットフォームアイデンティティにリンクします。
- クロスプレゼンス:ロビーサービスからのシングルポイントオブプレゼンスを実施します。
- クロスプログレッション:プレイヤーが別のプラットフォームにゲームの進行状況を引き継げるように、クラウドセーブや統計データに進行状況を保存します。
- クロスプレイ:クロスプラットフォームのマッチメイキングエンジンです。ユーザーの現在のプラットフォームに、セッションとパーティ情報を自動で同期するといったことが可能です。
- クロスソーシャル:プラットフォームに依存しないフレンドリストです。
- クロスコマース:仮想ウォレットシステムとエンタイトルメント同期により、プラットフォームストアからの購入を調整して処理します。
- AGS のカスタマイズと拡張:AGS は、AGS Server SDK を使用したコードレベルのカスタマイズと拡張をサポートしています。
特定のサービスエンドポイントに独自の gRPC サーバーエンドポイントを登録して、AGS のビルトイン機能をカスタマイズ (または上書き) できます。たとえばマッチメイキングのマッチングロジック、チャットでの不適切な表現のフィルタリング、ルートボックスの動作を上書きする gRPC エンドポイントを提供できます。詳細については、個別の AGS サービスガイドを参照して、コードレベルのカスタマイズをサポートするサービスと機能を特定してください。
また Server SDK (Golang、Java、Python などの複数の言語で利用可能) を使用して AGS 機能を拡張し、独自のバックエンドサービスエンドポイントを作成したり、よりワークフローに適した独自のツールを作成したりできます。詳細については、拡張セクションを参照してください。