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

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

DynamoDBの概要

特長

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

構成要素( Table, Item, Attribute )

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

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

プライマリキー

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

セカンダリインデックス

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

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

639-aws-dynamodb-introduction_secondary.png
  • GSI
    • 全データの中から PostId を指定して抽出
  • LSI
    • ある UserId の中から PostId を指定して抽出

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

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

参考

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

639-aws-dynamodb-introduction_console_create1.png

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

639-aws-dynamodb-introduction_console_create2.png

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

639-aws-dynamodb-introduction_console_create3.png

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

639-aws-dynamodb-introduction_console_create4.png

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

639-aws-dynamodb-introduction_console_create5.png

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

作成したテーブルです。

639-aws-dynamodb-introduction_console_create6.png
639-aws-dynamodb-introduction_console_create7.png

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

参考