Azure認定資格 WEB問題集&徹底解説

DP-900:Microsoft Azure Data Fundamentals

正解 B問題
分野3:Azure 上の非リレーショナルデータの操作の考慮事項の説明 タスクステートメント3.2:Azure Cosmos DB の機能の説明
合格に向けて、もっと深く学習する
豊富な問題と詳細なAzureサービス解説を、1 時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある IT コンサルティング会社のアーキテクトは、顧客企業向けに Azure Cosmos DB の導入提案書を作成している。提案書のドラフトには、Cosmos DB で選択できるデータベース API として次の 4 つが列挙されていたが、実際にはこの中に Cosmos DB でサポートされていない API が 1 つ混在していることが分かった。
実際には Cosmos DB でサポートされていない API はどれか。
  • Azure Cosmos DB for Apache Cassandra
  • Azure Cosmos DB for Redis
  • Azure Cosmos DB for Table
  • Azure Cosmos DB for MongoDB
解説 頻出度★★★★★
この問題は、Azure Cosmos DB が提供する API の一覧(NoSQL・MongoDB・Apache Cassandra・Apache Gremlin・Table)を覚えており、Redis は Cosmos DB ではなく別サービス(Azure Managed Redis)が担うと区別できるかがポイント。

A. Azure Cosmos DB for Apache Cassandra

Azure Cosmos DB for Apache Cassandra は実在する API である。
Apache Cassandra のクエリ言語 CQL と互換性があり、ワイド カラム ストア型のデータを扱う既存アプリケーションを、コードをほぼ変えずに Cosmos DB へ移行できる。
サポートされているため、この設問の答えにはならない。

正解

B. Azure Cosmos DB for Redis

Cosmos DB に Redis 用の API(Azure Cosmos DB for Redis)は存在しない。
Redis はインメモリのキー/値ストアで、Azure では Azure Managed Redis という独立したサービスとして提供される(従来の Azure Cache for Redis は提供終了予定で、Enterprise / Enterprise Flash は 2027 年 3 月 31 日、Basic / Standard / Premium は 2028 年 9 月 30 日に廃止され、Azure Managed Redis への移行が推奨されている)。用途もキャッシュやセッション管理が中心で、グローバル分散と永続化を前提とする Cosmos DB とは役割が異なる。
「キー/値」という言葉から Cosmos DB の Azure Cosmos DB for Table と混同しやすいが、Redis という製品名が付いた API は Cosmos DB のラインアップにないため、これが正解。

C. Azure Cosmos DB for Table

Azure Cosmos DB for Table は実在する API である。
Azure Table Storage と互換性のあるキー/値型のデータモデルを扱い、Table Storage で動いているアプリケーションを、より高いスループットと低レイテンシが必要になった際に移行させる用途で使われる。
サポートされているため、この設問の答えにはならない。

D. Azure Cosmos DB for MongoDB

Azure Cosmos DB for MongoDB は実在する API である。
MongoDB のドライバーやクライアント ライブラリと互換性があり、MongoDB の専門知識を持つチームが Cosmos DB のグローバル分散・要求ユニット(RU)ベースのモデルで MongoDB ドライバーを使いたい場合に適している。なお、既存の MongoDB アプリケーションの移行や MongoDB クエリ言語の全機能が必要な場合は、別サービスの Azure DocumentDB が推奨されている。
サポートされているため、この設問の答えにはならない。

これだけ覚える(記憶フック)
Cosmos DB の API は「NoSQL / MongoDB / Cassandra / Gremlin / Table」。Redis だけは別サービス。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
Cosmos DB でサポートされていない API を 1 つ選ぶ(否定形の設問) 「正しいものを選ぶ」ではなく「仲間外れを探す」問題。実在する API を確実に消していく解き方になる
→選択肢(B)が正解
既存の OSS データベースからの移行に対応する API MongoDB 互換と Apache Cassandra 互換はいずれも Cosmos DB が正式に提供している
→選択肢(A・D)を消す
Azure Table Storage からのステップアップ先 Azure Cosmos DB for Table は Table Storage 互換として Cosmos DB に用意されている
→選択肢(C)を消す
Redis を Azure で使いたい場合の受け皿 Azure Managed Redis(提供終了予定の Azure Cache for Redis の後継)という独立したサービスが担当し、Cosmos DB の API ではない
→選択肢(B)が正解
ひっかけポイント
  • 選択肢 B の Redis はキー/値ストアという点で Azure Cosmos DB for Table と性格が近いため、「Cosmos DB にもありそう」と感じさせるのが狙い。キー/値だから Cosmos DB、という連想で選ばないこと
  • 設問が否定形(サポートされていないものはどれか)である点に注意。急いで読むと「実在する API」を選んでしまう典型パターン
  • 選択肢に挙がっていないが、Cosmos DB にはグラフ用の Apache Gremlin とネイティブの NoSQL(旧 Core)もある。列挙形式で出題されたときに備え、5 つまとめて覚える。なお Azure Cosmos DB for PostgreSQL は廃止予定の個別のオファリングで、この 5 つの API には数えない(新規プロジェクトには非推奨)
  • Redis は Azure ではキャッシュ層のサービスという位置づけ。データベース(永続化・グローバル分散)の Cosmos DB とは役割が違うと押さえておくと迷わない
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「Cosmos DB でグラフデータを扱うための API はどれか」 Azure Cosmos DB for Apache Gremlin が正解に変わる。
「Azure でインメモリキャッシュを利用したい」 Azure Managed Redis が正解に変わる(Cosmos DB は不適。Azure Cache for Redis は提供終了予定)。
「Cosmos DB のネイティブ(既定)の API はどれか」 Azure Cosmos DB for NoSQL(旧称 Core (SQL) API)が正解に変わる。
「Azure Table Storage と互換性のある Cosmos DB の API はどれか」 Azure Cosmos DB for Table が正解に変わる。
関連サービスの解説 Azure Cosmos DB
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
Cosmos DB がサポートする 5 つの API(Redis は含まれない)と MongoDB 移行時の Azure DocumentDB 推奨 Azure Cosmos DB の API を特定する - Training
Azure Cache for Redis の提供終了と Azure Managed Redis への移行 Frequently asked questions (FAQ) on the retirement of Azure Cache for Redis
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 0%
No.10 解説
ある IT コンサルティング会社のアーキテクトは、顧客企業向けに Azure Cosmos DB の導入提案書を作成している。提案書のドラフトには、Cosmos DB で選択できるデータベース API として次の 4 つが列挙されていたが、実際にはこの中に Cosmos DB でサポートされていない API が 1 つ混在していることが分かった。
実際には Cosmos DB でサポートされていない API はどれか。
  • Azure Cosmos DB for Apache Cassandra
  • Azure Cosmos DB for Redis
  • Azure Cosmos DB for Table
  • Azure Cosmos DB for MongoDB

(会員限定)当問題の評価をお願いします。改善に活用します。