AWS DynamoDB - user000422/0 GitHub Wiki

基本概要

NoSQL フルマネージド 高可用性 容量無制限 「JOIN」はできない。 大容量のデータ保持には向いていない(コストが割高)。 柔軟な検索は行えない。

■料金 https://aws.amazon.com/jp/dynamodb/pricing/on-demand/

項目 金額
ストレージ 1GB単位

■ストレージ 自動拡張

■テーブル パーティションキー + 属性(値) で構成される。 RDBMSに例えると 主キーがパーティションキー、各カラムが属性。 AttributeType … データ型

AttributeType
S 文字列
N 数値

■設計 テーブルは分けずに1つで。(テーブル1つがベストプラクティス) インデックスを利用することでパフォーマンスを向上できるが高コスト。

操作

# 表示 テーブル一覧
aws dynamodb list-tables

# 表示 テーブル詳細
aws dynamodb describe-table --table-name sample_table
# テーブル作成
# ※カンマの後ろにスペース禁止
# ※キーを設定する属性以外はテーブル作成後に追加すること
aws dynamodb create-table \
--table-name sample_table \ # テーブル名を定義
--attribute-definitions \ # 属性を定義
  AttributeName=sample_id,AttributeType=N \
  AttributeName=sample_code,AttributeType=S \
--key-schema \ # スキーマを定義
  AttributeName=sample_id,KeyType=HASH \ # HASH 主キー
  AttributeName=sample_code,KeyType=RANGE \ # RANGE ソートキー
--provisioned-throughput \ # スループットを定義(これか何かが必須)
  ReadCapacityUnits=5,WriteCapacityUnits=5 \
--table-class STANDARD