AWS でのカスタムゲームバックエンドホスティングに関するガイダンス
概要
このガイダンスでは、Amazon GameLift でのゲームサーバーホスティング、WebSockets でのチャット、Amazon Neptune でのフレンドリストとレコメンデーションなどのゲームバックエンド機能に加えて、カスタムで軽量なクロスプラットフォームゲーム ID システムをデプロイする方法をご紹介します。ID システムは、ゲスト、Amazon Cognito、Steam、Sign-in with Apple、Google Play、Facebook など、さまざまな認証オプションをサポートしています。また、ガイダンスを簡単にカスタマイズして、コンソールなどの追加プラットフォームをサポートすることもできます。ガイダンスは、カスタムバックエンド機能を使用して簡単に拡張できるように設計されており、サーバーレスコンポーネントとコンテナ化されたバックエンドコンポーネントの両方向けのテンプレートが含まれています。
さらに、Unreal Engine 5、Unity 2021 (およびそれ以降)、Godot 4 ゲームエンジン用の Software Development Kit (SDK) とサンプルコードを提供します。SDK は ID コンポーネントおよびサンプルバックエンド機能と統合します。
仕組み
次のアーキテクチャ図は、軽量でスケーラブルなカスタムクロスプラットフォームのゲーム ID コンポーネントをデプロイする方法、およびその ID を使用して AWS でカスタムゲームバックエンドコンポーネントに対して認証を行う手順を示します
自信をもってデプロイ
デプロイの準備はできていますか? GitHub のサンプルコードで詳細なデプロイ手順を確認し、そのままデプロイするか、またはニーズに合わせてカスタマイズしましょう。
Well-Architected の柱
上記のアーキテクチャ図は、Well-Architected のベストプラクティスを念頭に置いて作成されたソリューションの例です。完全に Well-Architected であるためには、可能な限り多くの Well-Architected ベストプラクティスに従う必要があります。
このガイダンスのカスタム ID コンポーネントは、ユーザーリクエストを追跡する AWS X-Ray を利用し、Lambda Powertools を活用して、バックエンドロジック内から詳細な情報を提供します。さらに、このガイダンスのすべてのコンポーネントは、Amazon CloudWatch を使用して、仮想プライベートクラウド (VPC) フローのログ、API Gateway アクセス、Amazon S3 アクセス、Lambda の完了、AWS Fargate タスクを追跡します。最後に、AWS CDK では、環境全体で制御された変更と一貫した設定が可能なため、セキュリティとコンプライアンスのニーズを満たすことができます。
このガイダンスのカスタム ID コンポーネントはプレイヤー ID と認証を管理して、強固な ID 管理をサポートしています。このガイダンスの他のすべての機能は、ID コンポーネントが提供するパブリックキーと JSON ウェブトークンを検証することにより、アクセスを保護します。カスタム ID コンポーネントは、一般的なウェブエクスプロイトからアプリケーションを保護するウェブアプリケーションファイアウォールである AWS WAF によって保護されます。また、すべてのデータは転送時だけでなく、保管時にも暗号化されます。
このガイダンスでは主に、AWS リージョン内の複数のアベイラビリティーゾーン (AZ) で自動的に高可用性を実現するフルマネージドサービスを活用します。Fargate では、マルチ AZ 設定を使用して高可用性を実現し、DynamoDB のすべてのデータベーステーブルは、ポイントインタイムリカバリで保護されます。
このガイダンスは、多くの異なるアプローチを組み合わせて、パフォーマンスを向上させるさまざまな機能を提供します。まず、このガイダンスで選択されているサービスは、サーバーレスサービスの自動スケーリングコンポーネントを活用することで、ゲームの起動やその他のトラフィックのスパイクに対して大規模に対応できるように設計されています。次に、カスタム ID コンポーネントから提供される X-Ray データにより、開発者は混雑状況を見つけて、ニーズに合わせてガイダンスを調整してパフォーマンスを最適化できます。最後に、CloudFront が JSON ウェブトークンを検証するパブリックキーを提供し、バックエンドコンポーネントのレイテンシーを最適化します。
このガイダンスでは、可能な限りサーバーレスコンポーネントを活用するため、請求は実際に使用したリソースに対してのみ発生します。コストをさらに抑えるには、Lambda と Fargate の両方のコストを最適化するために利用できる AWS Savings Plans を検討してください。 また、オンデマンドの DynamoDB テーブルから自動スケーリングプロビジョンドキャパシティに移行すると、ベースライントラフィックが既知の場合に DynamoDB のリザーブドキャパシティを使用してコストを削減できます。
API Gateway、Lambda、DynamoDB、Amazon S3、Fargate、Secrets Manager、AWS WAF など、このガイダンスで使用されているすべてのサービスは、需要に基づいてスケールするよう設定されており、必要なリソースは最小限です。
このガイダンスのサーバーレスサービスのコンポーネントは自動的にスケールするので、必要最小限のリソースだけで継続的に負荷に合わせながらコンポーネントをスケールできます。これにより、未使用の容量のプロビジョニングを回避し、インフラストラクチャの環境への影響を軽減できます。
関連コンテンツ
免責事項
サンプルコード、ソフトウェアライブラリ、コマンドラインツール、概念の実証、テンプレート、またはその他の関連技術 (私たちの担当者から提供される前述のものを含む) は、AWS カスタマーアグリーメント、またはお客様と AWS との間の関連文書契約 (いずれか該当する方) に基づき、AWS コンテンツとしてお客様に提供されるものです。お客様は、この AWS コンテンツを、お客様の本番アカウント、または本番データもしくはその他の重要なデータで使用すべきではありません。お客様は、サンプルコードなどの AWS コンテンツを、お客様固有の品質管理手法および基準に基づいて、本番グレードでの使用に適したテスト、セキュリティ確保、および最適化を行う責任を負います。AWS コンテンツのデプロイには、Amazon EC2 インスタンスの実行や Amazon S3 ストレージの使用など、AWS の課金対象リソースを作成または使用するための AWS 料金が発生する場合があります。
今日お探しの情報は見つかりましたか?
ぜひご意見をお寄せください。ページのコンテンツ品質の向上のために役立てさせていただきます