Azure非リレーショナル応用
あるSaaS企業がCosmos DBで顧客テナントのメタデータ(テナントID、契約情報、使用量統計)を管理しています。テナントごとに異なるデータ量があり、一部の大規模テナントのクエリが頻繁にホットパーティション化しています。企業が「パーティションキーを変更することなく」スケーラビリティを向上させたいと考えています。最適なアプローチはどれか?
A.パーティションキーの値に対して乱数プレフィックスを追加する「合成パーティションキー戦略」を導入し、ホットなテナントIDを複数の論理パーティションに分散させる← 正解
✓ 正解です。合成パーティションキー戦略(例:テナントID + 乱数プレフィックス)を導入することで、同一テナントのデータを複数の物理パーティションに分散させ、ホットパーティション化を軽減できます。クエリ時にはプレフィックスを含めて参照するため、パーティションキー自体の変更ではありません。
B.パーティション仕様の変更(パーティションキー自体の置き換え)は避けられない。代わりにRU(要求ユニット)を自動スケーリング設定にしてホットパーティション化の影響を緩和する
✗ パーティションキーを変更しない方針に矛盾しています。また自動スケーリングはホットパーティション化の根本的解決ではなく、単なるRU費用の増加につながります。
C.Cosmos DBではなくAzure Table Storageに移行する。Table Storageはパーティションキーの最適化により、自動的にホットパーティション化を回避する
✗ Table Storageも同じパーティションキー設計が必要であり、ホットパーティション化の問題を解決できません。むしろCosmos DBは複合的な解決策を提供します。
D.複数のコンテナーに分割し、各テナントサイズに応じた個別の専用コンテナーを作成する。小規模テナント用と大規模テナント用でスループット要件を分離できる
✗ 複数コンテナー化は運用複雑性が増し、テナント管理が困難になります。テナント数が数千を超える場合、スケーラビリティの観点から不現実的です。
この問題のポイント
合成パーティションキー戦略(例:テナントID + 乱数プレフィックス)を導入することで、同一テナントのデータを複数の物理パーティションに分散させ、ホットパーティション化を軽減できます。クエリ時にはプレフィックスを含めて参照するため、パーティションキー自体の変更ではありません。
「Azure非リレーショナル」の他の問題
あるSNS企業がユーザー同士の「フォロー」「フレンド」関係を管理するDBを設計しています。主な操作は「友達の友達を3ホッ…あるIoT企業が10,000台のスマートホームデバイスから温度・湿度・電力消費量を毎秒収集・保存しています。「デバイスI…あるECサイトがAzure Table Storageで商品カタログ(5億件)を管理しています。「クエリレイテンシが増加…あるスタートアップがオンプレミスのMongoDBアプリケーションをAzureに移行します。「既存のMongoDBドライバ…あるゲーム会社が1億人のプレイヤープロファイルを管理するDBを設計しています。「プレイヤーごとに所持アイテムが異なる(ス…Cosmos DB(Core SQL API)でコンテナを設計する際、「パーティションキーの選択」として最も適切なのはど…
IT・クラウド の関連資格
AWS Certified Cloud Practitioner(CLF-C02)
AWSクラウドの入門資格。クラウドの概念・AWSのコアサービス・セキュリティ・料金モデルを問う。
AWS Certified Solutions Architect - Associate(SAA-C03)
AWSでのシステム設計能力を問うアソシエイト資格。高可用性・セキュリティ・コスト最適化の設計が中心。
AZ-900:Microsoft Azure Fundamentals
クラウドとAzureの基礎を問うMicrosoft認定資格。クラウドの概念、Azureの主要サービス、セキュリティ・コンプライアンス・料金を扱う。