Instiq
第1章 · データモデルとパーティション設計·v1.0.0·更新 2026/6/28·読了目安 約13分

変更要約: DP-420 第1章を新規作成(ドメイン1前半: 非リレーショナルモデリング(embed vs reference/非正規化/id・パーティションキー・一意キー/既定 TTL/バージョニング)、パーティション設計(キー選定/ホットパーティション・429/クロスパーティションコスト/データ・スループット分散/合成キー/階層パーティションキー/同一論理パーティション内トランザクション)、サイジングとスケーリング(RU/s/サーバーレス vs プロビジョニング vs Free/オートスケール/データベースレベルスループット/グローバル分散コスト))。

1.3サイジングとスケーリング

この節の要点

スループット/ストレージ要件の評価、リクエストユニット(RU/s)、サーバーレス・プロビジョニング・Free 層、オートスケール、データベースレベルスループット、グローバル分散コストを理解します。

Cosmos DB のコストと性能は リクエストユニット(RU) で測る。読み取り/書き込み/クエリはそれぞれ RU を消費し、課金とスループットの単位になる。要件に合うスループットモデルの選択が設計の要点です。

1.3.1サーバーレス・プロビジョニング・Free 層

サーバーレス は消費した RU だけ課金で、断続的/予測不能/低トラフィックの開発・小規模に向く。プロビジョニングスループット は RU/s を確保し、安定/高トラフィックの本番に向く。プロビジョニングは 手動(固定 RU/s)オートスケール(上限内で 10%〜100% を自動変動) があり、変動の大きいワークロードはオートスケールでピークに追従しつつアイドルコストを抑える。Free 層 はアカウントごとに一定の RU/s とストレージを無償提供する。

1.3.2スループットの粒度とグローバル分散コスト

スループットは コンテナレベル(そのコンテナ専用)か データベースレベル(DB 内の複数コンテナで共有)で構成する。多数の小さなコンテナをまとめて低コストに回したいときは データベースレベルプロビジョニング が有効。グローバル分散では リージョンを追加するごとに、そのリージョン分のプロビジョニング RU/s がコストとして加算される(マルチリージョン書き込みではさらに増える)ため、可用性/遅延の要件とコストを天秤にかける。

試験ポイント

決め手:「断続的/予測不能/低トラフィック」=サーバーレス。「安定/高トラフィック本番」=プロビジョニング(手動)。「変動が大きい」=オートスケール。「多数の小コンテナを共有」=データベースレベルスループット。「リージョン追加=RU/s 分のコスト増」。RU は読み書きクエリの課金/スループット単位。

注意

混同に注意:
①サーバーレス(消費課金・単一リージョン中心)とプロビジョニング(RU/s 確保)の使い分け。
②オートスケールは上限の 10%〜100% で変動=常時最大ではない。
③データベースレベル共有は均等配分の癖があり、ホットなコンテナには専用スループットが要ることがある。
④RU が不足すると 429(レート制限)→SDK のリトライで対処。

RU/s が課金/スループット単位、サーバーレス(断続/消費課金)・プロビジョニング手動(安定本番)・オートスケール(変動・上限内自動)、データベースレベルで複数コンテナ共有、リージョン追加で RU/s コスト増を示す図。
要件で選ぶ

1.3.3この節のまとめ

  • RU/s が課金/スループットの単位=サーバーレス(消費)・プロビジョニング(確保)・オートスケール(変動)を要件で選ぶ
  • スループットはコンテナレベル or データベースレベル(複数コンテナ共有)で構成
  • リージョン追加ごとに RU/s 分のコストが増える=可用性/遅延とコストを天秤に

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. トラフィックが断続的で予測しづらい開発用の小規模 Cosmos DB を、使った分だけ課金で運用したい。最適なのはどれですか?

Q2. トラフィックの変動が大きい本番ワークロードで、ピークに追従しつつアイドル時のコストを抑えたい。最適なのはどれですか?

Q3. 多数の小さなコンテナをまとめてコスト効率よくスループットを共有したい。最適なのはどれですか?

Q4. Cosmos DB でリージョンを追加してグローバル分散する際のコストへの影響として正しいのはどれですか?

Q5. プロビジョニング RU/s が不足したときに Cosmos DB が返すものとして正しいのはどれですか?

理解度を確認第1章「データモデルとパーティション設計」の問題を解く