あるゲーム会社が、MongoDB のクライアントライブラリを使ってすでに開発済みの実績・スコア管理アプリをクラウドに移行したい。コード変更を最小限にしながら Azure のマネージドサービスへ移行する場合、最も適切な Azure Cosmos DB の API はどれか。
- A. Cosmos DB for Cassandra — CQL を使いワイドカラム形式でデータを管理する
- B. Cosmos DB for Table — Azure Table Storage から移行しやすい API 互換を提供する
- C. Cosmos DB for NoSQL — JSON ドキュメントを SQL ライクな構文でクエリできる
- D. Cosmos DB for MongoDB — MongoDB ワイヤープロトコルに互換性があり既存コードを再利用できる
解答と解説を見る
正解: D
Cosmos DB for MongoDB は MongoDB のワイヤープロトコルと互換性を持ち、既存の MongoDB クライアントドライバーやライブラリをほとんどそのまま使用できる。接続文字列を変更するだけで既存の MongoDB アプリを Azure Cosmos DB に移行でき、コード変更を最小限に抑えられる。選択肢 C の Cosmos DB for NoSQL は Azure 独自の SQL ライクな構文(SELECT * FROM c WHERE c.id = '...' など)でクエリを行うため、MongoDB クライアントライブラリとは互換性がなくコードの書き直しが必要になる。選択肢 A の Cosmos DB for Cassandra は Cassandra Query Language(CQL)を使用するもので、MongoDB とは全く異なるプロトコルである。選択肢 B の Cosmos DB for Table は Azure Table Storage との互換性を提供するものであり、MongoDB アプリの移行先としては適切でない。
📚 関連サービスの解説: Azure Cosmos DB