View a markdown version of this page

GAMECOST01-BP01 プレイヤー、ゲーム機能、環境あたりのコストの属性を実装する - ゲーム業界レンズ

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

GAMECOST01-BP01 プレイヤー、ゲーム機能、環境あたりのコストの属性を実装する

ゲームサーバーのコスト属性は通常、ゲームバックエンドサービスよりも簡単に実行できます。これは、ゲームサーバーは通常、インスタンスの実行コスト全体で償却できるインスタンスごとに特定の数の同時プレイヤーをホストできるように最適化されているためです。 

このベストプラクティスを活用しない場合のリスクレベル:

実装のガイダンス

ゲームバックエンドサービスでは、ゲームのコンポーネントを個別の論理リソースまたは物理リソースとして管理できる個別の機能に分離して、コストを簡単に分析することをお勧めします。

例えば、ゲームバックエンドサービスをホストするために単一のモノリシックアプリケーションを実装するのは簡単ですが、このパターンでは、リソースのコンピューティング、ネットワーク、ストレージのコストが機能間で共有されるため、機能を追加するにつれて、プレイヤーとゲーム機能の合計コストを経時的に導き出すのが難しくなります。Amazon Amazon API Gateway やコンピューティング、メッセージング AWS Lambda AWS Fargate には Amazon Amazon SQS や Amazon Amazon SNSには Amazon S3、データベースストレージには Amazon DynamoDB などのサービスを使用して、ゲームバックエンドサービスにサーバーレスアーキテクチャを採用することを検討してください。これらのサービスは、コストを詳細に視覚化できるように、使用量ベースで主にリクエスト量に基づく料金を提供する製品のほんの一例です。Lambda 関数、Fargate サービス、DynamoDB テーブル、S3 バケットなどの個々のリソースをコスト配分タグに関連付けることで、これらのサービスのコストをゲーム機能名で帰属させ、各サービスのコストを簡単に把握できます。

また、異なる環境のコストを属性化できるように、各ゲーム開発環境を個別に管理することをお勧めします。通常、ゲーム開発者は、このゲーム業界レンズの運用の柱で説明されているように、開発、テスト、ステージング、本番環境用に個別の環境を管理します。通常、環境ごとにスケーラビリティ、パフォーマンス、使用要件が異なり、個別のチームによって管理される場合があります。コストを制御するには、これらの環境を整理して、各環境のコストを適切にモニタリングして属性付けできるようにします。

詳細については、次のドキュメントを参照してください。

実装手順

  • Amazon API Gateway や などのサーバーレスまたはコンテナ化されたアーキテクチャを使用して AWS Lambda、ゲームバックエンドサービスを個別の機能にデカップリング AWS Fargate し、機能ごとにきめ細かなコスト属性を有効にします。

  • コスト配分タグを個々のリソース (Lambda 関数、DynamoDB テーブル、S3 バケットなど) に適用して、コストを特定のゲーム機能に関連付けることで、コスト分析を改善します。

  • 開発、テスト、ステージング、本番環境用に個別の環境を管理し、スケーラビリティと使用要件に合わせてコストを個別に整理およびモニタリングします。