【入門】DynamoDBの概要と使い方

DynamoDB(NoSQLデータベースサービス)の特長について取り上げます。また、マネジメントコンソールから実際にテーブルを作成してみます。

目次

DynamoDBの概要

特長

  • Key-Value型のNoSQLデータベースサービス
  • 事実上無制限のスループットとストレージ
  • 管理作業をまかせられる
    • レプリケーション
    • ソフトウェアのパッチ適用
    • クラスタースケーリング
    • バックアップ & リカバリ
      • オンデマンドバックアップ
      • ポイントインタイムリカバリ
  • DynamoDBストリーム をトリガーとしたLambadaの実行
    • 項目の追加、変更、削除をイベントとして検出
  • キャパシティーユニット による利用量の事前に設定が可能
    • 1秒あたりの 読み込み 書き込み の回数上限を決めて料金が決定される

構成要素( Table, Item, Attribute )

RDSと比較すると以下のようになります。

DynamoDBRDS
テーブル(Table)テーブル
項目(Item)レコード
属性(Attribute)カラム

プライマリキー

  • テーブルの各項目を一意に識別
  • 2種類をサポート
    • 1つの属性( パーティションキー )で構成
    • 2つの属性で構成( パーティションソートキー )

セカンダリインデックス

  • プライマリキー以外の属性で、データに効率的にアクセスできるようにする
  • 2種類をサポート
    • グローバルセカンダリインデックス(GSI)
    • ローカルセカンダリインデックス(LSI)

下記例で GSILSI の違いを確認します。

  • GSI
    • 全データの中から PostId を指定して抽出
  • LSI
    • ある UserId の中から PostId を指定して抽出

データの読み込み
( GetItem, Query, Scan )

  • テーブルから単一の項目取得
    • GetItem
  • テーブルから複数項目取得
    • Query
      • キーを条件に特定範囲内の検索
    • Scan
      • テーブル全体を検索
      • 負荷が大きい

参考

各種上限

1項目あたりの上限

1つの項目サイズは 400KB を上限としています。容量上限を越えると下記エラーが出ます。

Item size has exceeded the maximum allowed size

Query, Scanで取得可能な容量上限

Query Scan の結果セットにはデータ制限( 1MB )があります。
データ制限を越えると、クエリ応答LastEvaluatedKey がセットされます。

参考

マネジメントコンソールからテーブル作成

プライマリキーを設定しています。

グローバルセカンダリインデックスを設定しています。

ローカルセカンダリインデックスを設定しています

キャパシティモードを設定できます。

キャパシティ計算ツールでコストの計算をすることができます。

作成したテーブルです。

プライマリキー GSI LSIを利用した抽出ができます。

参考

よかったらシェアしてね!
目次