Question#5(Professional Cloud Database Engineer)
あなたは、プレイヤーの認証情報とインベントリデータ(持ち物データ)を Google Cloud に保存するために、高いトランザクション性を持つリレーショナルデータベースを使用する新しいゲームアプリケーションを設計しています。このゲームを複数のリージョンで立ち上げたいと考えています。どうすべきですか。
正解:A
この問題の鍵となる要件は以下の3つです。
-
高いトランザクション性 (Highly transactional): データの整合性、特に読み書き操作の原子性 (ACID特性) が極めて重要であること。
-
リレーショナルデータベース (Relational database): プレイヤーデータとインベントリデータの間に関係性があり、スキーマと整合性が必要であること。
-
複数のリージョンで起動 (Launch in multiple regions): グローバルな低遅延と高い可用性が求められること。
1. 選択肢の検証
| 選択肢 | データベースの種類 | マルチリージョン対応 | トランザクション性 | 評価 |
| A. Cloud Spanner | リレーショナル | マルチリージョン対応 | 高い(ACID特性をグローバルで保証) | 最適解。すべての要件を満たす。 |
| B. Bigtable | NoSQL(ワイドカラム) | マルチリージョン対応 | トランザクション性は低い(単一行/単一操作) | 不適。リレーショナルでもなく、高いトランザクション性も提供しない。 |
| C. BigQuery | データウェアハウス | マルチリージョン対応 | トランザクション処理には不向き(分析用) | 不適。トランザクションデータベースではなく、分析に特化。 |
| D. Cloud SQL (リードレプリカ) | リレーショナル | リージョン内または単一リージョン間のレプリカ | 高い | 不適。プライマリインスタンスは単一リージョンに固定され、真のグローバルなマルチリージョン書き込み/整合性を提供できない。 |
2. Cloud Spanner が最適である理由
Cloud Spanner は、Google Cloud が提供する唯一のマネージドデータベースであり、以下の特徴からこのユースケースに最適です。
-
グローバルな整合性を持つリレーショナル: 従来のSQLデータベースの厳格なトランザクション整合性(ACID特性)とリレーショナルな構造を維持しながら、水平スケーラビリティとマルチリージョン構成を提供します。
-
高いトランザクション性: プレイヤーの認証やインベントリの更新(例: アイテムの購入/消費)のような重要な操作において、地理的な距離に関係なく、高い一貫性と原子性をグローバルに保証できます。
-
マルチリージョン対応: Spanner はデータを複数のリージョンに同期的にレプリケートし、いずれかのリージョンがダウンしてもサービスが継続される高い可用性と、ユーザーの地理的な近接性に基づく低遅延を実現します。
結論として、リレーショナルな構造、高いトランザクション性、およびグローバルなマルチリージョンでの運用というすべての要件を満たすのは Cloud Spanner のみです。

コメント