変更要約: AZ-204 第2章を Associate 級に深掘り(比較表・シナリオ・FAQ・ひっかけ+深掘り段落、図を日本語化)
2.2Cosmos DB 向けの開発
Azure Cosmos DB のパーティションキー設計、スループット(RU/s・プロビジョンド/サーバーレス)、整合性レベル(強整合〜結果整合)、変更フィードといった開発を理解します。
グローバル分散・低遅延の NoSQL データベースが Azure Cosmos DB です。開発ではパーティションキー・RU/s・整合性レベルの理解が要です。
2.2.1キー・スループット・整合性
- パーティションキー:データを物理的に分散させる鍵。偏らないよう設計し、ホットパーティションを避ける。
- RU/s(リクエストユニット):スループットの単位。プロビジョンド(固定/自動スケール)とサーバーレスがある。
- 整合性レベル:強整合〜結果整合の5段階。強いほど正確だが遅延/コストが増える。
- 変更フィード:コンテナの変更を時系列で取得し、イベント駆動処理(Functions 連携など)に使える。
「分散の鍵=パーティションキー(偏りでホットパーティション/RU 超過)」「スループット=RU/s(断続的=サーバーレス)」「整合性は強整合〜結果整合のトレードオフ」「変更を時系列取得=変更フィード」 は AZ-204 で頻出です。
Cosmos DB はグローバル分散・低遅延の NoSQL です。設計の核は パーティションキー——カーディナリティが高く読み書きが均等に分散する値を選び、偏ると ホットパーティション や 429 を招きます。スループットは RU/s(リクエストユニット) で、プロビジョンド(手動/オートスケール・予測可能な負荷)か サーバーレス(断続的・使った分だけ)を選択、専用 RU とコンテナ間で共有する データベース共有 RU があります。整合性レベル は 強整合 / 有界整合性制約 / セッション(既定)/ 整合性のあるプレフィックス / 結果整合 の5段で、強いほど正確だが遅延/コスト増(セッションが多くのアプリで好バランス)。複数リージョン書き込み(マルチリージョン書き込み)でグローバルに低遅延化、API は NoSQL/MongoDB/Cassandra/Gremlin/Table を選べます。変更フィード でコンテナ変更を時系列取得し Functions 連携。429(TooManyRequests)は 指数バックオフでリトライ し、必要なら RU/キー設計を見直します。判断軸は「分散=パーティションキー」「断続負荷=サーバーレス」「整合性は遅延とのトレードオフ」「変更の取得=変更フィード」。
| 要件/課題 | 対処 |
|---|---|
| データを均等に分散 | 高カーディナリティのパーティションキー |
| 断続的な負荷でコスト最小 | サーバーレス |
| 多くのアプリで好バランス | セッション整合性(既定) |
| 変更を時系列で処理 | 変更フィード → Functions |
シナリオ:グローバルな EC のカート。低遅延で、特定ユーザーに偏らせたくない。 パーティションキーは userId(高カーディナリティで分散)。負荷が読めないステージングは サーバーレス、本番は オートスケール RU/s。整合性は セッション(自分の書き込みは即読める)。在庫変更の波及は 変更フィード→Functions。429 はアプリで 指数バックオフし、続くなら RU/キーを見直します。
Q. データ分散の鍵? パーティションキー(高カーディナリティ)。Q. 断続負荷で最小コスト? サーバーレス。Q. 既定の整合性は? セッション。Q. 変更を時系列処理? 変更フィード。Q. 429 の対処? 指数バックオフ+RU/キー見直し。Q. グローバル低遅延書き込み? マルチリージョン書き込み。
混同に注意:
①パーティションキーは後から変更困難——設計時にカーディナリティと分散を慎重に。
②偏るとホットパーティション/RU 超過(429)——均等分散するキーを選ぶ。
③整合性は「強いほど良い」ではない(遅延/コスト/可用性とのトレードオフ)。
④RU/s 不足は 429 の主因——オートスケールやキー見直しで対処。
RU 超過(429: TooManyRequests)はアプリ側で指数バックオフ付きリトライを行い、必要ならスループットやキー設計を見直します。
2.2.2この節のまとめ
- パーティションキー(分散)/RU/s(スループット)/整合性レベル
- 変更の時系列取得=変更フィード、429=バックオフ
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. Cosmos DB でデータを物理的に分散させ、性能を左右する設計要素はどれですか?
Q2. Cosmos DB のスループットを表す単位はどれですか?
Q3. コンテナの変更を時系列で取得し、イベント駆動処理に使う Cosmos DB の機能はどれですか?

