ケーススタディ回答例【Mountkirk Games】
GCP Professional Cloud Architect認定試験で出題されるケーススタディの回答例を作ってみました。
本記事は公式模擬試験とMahesh様の解説を元に作成しました。Mahesh様の動画はYouTubeで複数Partにわたり非常に的確な解説がされているため、非常に参考になりました
はじめに
- この記事はあくまでも回答例です。実際に試験を受ける時点では機能追加・変更があったり、試験問題中で要件が追加・変更され、最適解が変わる可能性があります。
- 各種サービスの最新情報はGCP公式ドキュメントから手に入れましょう
回答例【Mountkirk Games】
これは Professional Cloud Architect 認定試験で使用される可能性のあるケーススタディの例です。試験問題を補足するコンテキストを提供するためのもので、架空の会社やソリューションのコンセプトについて説明しています。
Mountkirk Games は、モバイル プラットフォーム向けにセッション ベースのオンライン マルチプレーヤー型ゲームを開発しています。Mountkirk Games は、すべてのゲームの開発にサーバーサイドの統合開発環境を利用しています。これまでは、クラウド プロバイダから物理サーバーをリースしてきました。
いくつかのゲームは予想を上回る人気を博したため、世界中のオーディエンス、アプリケーション サーバー、MySQL データベース、分析ツールのスケーリングに関する問題が生じました。
Mountkirk Games の現行のモデルでは、ファイルに書き込まれたゲームの統計情報が ETL ツールによって送信され、中央の MySQL データベースにレポート用に読み込まれます。
- 収集したデータはGCSに書き込み。
- ETLはDataflowを使う。
- MySQLはOLTPシステムなので、レポート用途に使うのはイマイチ。
- レポート用途のDBサーバはMySQLからBQに移行する。
1. ソリューションのコンセプト
Mountkirk Games が開発中の新しいゲームは、大人気になることが予想されています。そこで、ゲームのバックエンドを Compute Engine にデプロイしようと計画しています。これにより、ストリーミング指標の取得や集中的な分析が可能になります。さらに、Google の自動スケーリング可能なサーバー環境を活用でき、マネージド NoSQL データベースと統合することもできます。
- コンセプト通り、バックエンドはGCEをまず検討していく。
- ストリーミング指標はPub/Subによって収集し、ETLツール(Dataflow)を介してBQに挿入、BQで分析する。
- GCEは自動スケーリングのためにManaged Instance Group(MIG)にする。マネージドNoSQLはBigTableとDatastoreが候補となる。デフォルトでグローバルに展開可能, かつ複数行Transactionに対応しているDatastoreの方が有力。
2. ビジネス要件
- グローバル規模にまで拡張する
- 稼働率を向上させる(ダウンタイムが発生すると、プレーヤーを失うことになるため)
- 使用するクラウド リソースの効率を向上させる
- すべてのユーザーのレイテンシを低減する
3. 技術的要件
ゲーム バックエンド プラットフォームの要件
-
ゲーム アクティビティに基づいて動的にスケールアップまたはスケールダウンする
-
トランザクション データベース サービスに接続して、ユーザー プロフィールとゲーム状態を管理する
-
将来の分析のために、時系列データベース サービスでゲーム アクティビティを保存する
-
システムがスケールしたときに、バックログの処理によってデータが失われないようにする
-
強化された Linux ディストリビューションを実行する
-
GCE MIG
-
Datastore
-
BQ or BigTable → 分析用途なのでBQ
-
Dataflow
-
Shilded VM
ゲーム分析プラットフォームの要件
-
ゲーム アクティビティに基づいて動的にスケールアップまたはス ケールダウンする
-
着信データをゲームサーバーから迅速に直接処理する
-
低速なモバイル ネットワークが原因で遅延したデータを処理する
-
10 TB 以上の履歴データに対してクエリを実行できるようにする
-
ユーザーのモバイル デバイスから定期的にアップロードされるファイルを処理する
-
BQ
-
Pub/Sub+Dataflow
-
Dataflow
-
BQ
-
GCS+Pub/Sub+Dataflow
4.エグゼクティブの声明
前回成功したゲームでは、当時利用していたクラウド プロバイダでスケーリングがスムーズに行えなかったため、ユーザーの利用数が伸びずゲームの評価にも悪影響を及ぼしました。当社の投資家が必要としているのは、ゲームの速度と安定性を評価するための重要業績評価指標(KPI)です。また、対象ユーザーに合わせてゲームを改良できるように、ユーザーの使用パターンに関する詳細な分析情報を提供する指標も求められています。さらに、当社の現在のテクノロジー スタックでは必要なスケーラビリティを実現できません。そのため、現在の MySQL から自動スケーリングと低レイテンシの負荷分散が可能な環境へと移行し、物理サーバーの管理作業を不要にしたいと考えています。