Amazon DynamoDB 入門

AWS データストアの活用

Dunieski Otano

AWS Solutions Architect

ホットパーティション問題

  • 1人のレジ係が忙しく、3人が暇にしているレストランを想像してみましょう
  • これが、パーティションキーの設計が不適切な場合に起こることです
  • ホットパーティション = 特定のパーティションにトラフィックが集中し、他が遊んでいる状態
  • 解決策:高カーディナリティのパーティションキー — 一意の値が多く、データを均等に分散できる属性

パーティション

AWS データストアの活用

優れたパーティションキーの条件

  • 高カーディナリティ:一意の値が多い
    • userId、orderId、sessionId — 適切
    • country、status、category — 不適切
  • 均等な分散:アクセスパターンが偏らない
  • 予測可能:クエリ時に値が確定している

カーディナリティ

AWS データストアの活用

DynamoDB テーブルの構造

  • パーティションキー(必須):データの分散先を決定
  • ソートキー(省略可):範囲クエリを有効化(例:userId + orderDate)
  • 属性:追加のデータフィールド
  • プライマリキー = パーティションキー、またはパーティションキー + ソートキー

テーブル

AWS データストアの活用

最初のテーブルを作成する

  • AWS コンソール:テスト用の簡単なセットアップ
  • boto3(Python):プログラムによるテーブル作成
  • 主な決定事項:パーティションキー、ソートキー、課金モード

最初のテーブル

AWS データストアの活用

複合キーとソートキーのクエリ

  • 複合キー:パーティションキー + ソートキー
  • 範囲クエリ:日付範囲や数値範囲でのクエリが可能
  • 演算子:=、<、>、<=、>=、BETWEEN、begins_with
  • 例:過去30日間に $100 以上のユーザーの注文を取得

コード

AWS データストアの活用

キャパシティモード:オンデマンド vs プロビジョン済み

  • オンデマンド:リクエストごとに課金、自動スケーリング
    • 適している場面:予測困難なトラフィック、新規アプリケーション
  • プロビジョン済み:RCU/WCU を指定、大規模利用でコスト削減
    • 適している場面:安定したトラフィック、コスト最適化
  • モードの切り替えは24時間に1回まで

モード

AWS データストアの活用

練習しましょう!

AWS データストアの活用

Preparing Video For Download...