LoginSignup
9
6

More than 3 years have passed since last update.

【DynamoDB】DynamoDBとは

Last updated at Posted at 2020-11-14

DynamoDBとは

キーバリューストア型のデータストアのマネージドサービス

  • NoSQLデータベース
  • データは3つのAZに分散して格納される
  • 格納容量に上限がない
  • データ取得のレイテンシーが低いため、キャッシュの用途にも利用出来る
  • ビッグデータ処理、大量データ処理が必要なアプリケーション、Web行動データ、ログ管理等に利用
  • トランザクション機能は備えていない

テーブル設計

  • テーブル:データのコレクション
  • 項目:項目間で一意に識別可能な属性グループであり、テーブルを構成する要素
  • 属性:各項目を構成する要素

プライマリーキー

ハッシュキーのみでユニーク、もしくはハッシュキー&レンジキーの2つでユニークのいずれかのタイプが指定可能

1. ハッシュキー

  • KVSにおけるキーに相当するデータを一意に特定するためのIDなどのこと
  • テーブル作成時に1つの属性を選び、ハッシュキーとして宣言
  • 単独での重複を許さない

2. レンジキー

  • テーブル作成時に2つの属性を選び、1つをハッシュキー、もう1つをレンジキーとして宣言
  • 2つの値の組み合わせによって1つの項目を特定
  • 単独であれば重複が許される

インデックス

1. 暗黙的なキー

  • データを一意に特定するため特定するために暗黙的にキー(ハッシュキーやレンジキー)として宣言して検索に使用するインデックス
  • 1テーブルに1つ宣言する

2. 明示的なキー

  • ローカル・セカンダリ・インデックス(LSI):プライマリキーのタイプが、ハッシュキー&レンジキーの場合のみ設定可能で、別の規則でのインデックスを可能にする(テーブル作成時に作成)

  • グローバル・セカンダリ・インデックス(GSI):ハッシュキーの属性の代わりになり、ハッシュキーをまたいだ自由な検索を可能にする(テーブル作成後に作成)

読み込みの種類

以下2種類の読み込みはクエリ発行ごとに指定可能

1. 結果整合性の読み込み
・デフォルトの読み込み

2. 強力な整合性の読み込み
・書き込まれたデータが3つのAZに完全に保存されたデータのみを読み込む
・結果整合性の読み込みと比較してRCUを2倍消費する

※ 書き込みは少なくとも2つのAZでの書き込み完了が確認出来たら完了

DynamoDB Local

DynamoDBのエンジンのみのライブラリ
AWS環境にアプリケーションをデプロイしなくてもローカル環境でDynamoDBとアプリケーションの連携テストを実行可能

セキュリティ

アクセス制御

  • テーブルへのアクセス制御にはIAMポリシーを使用
  • DynamoDBテーブルにアクセスする際は、アクセスを許可したIAMポリシーをアタッチしたIAMロールやIAMユーザーを使用する

暗号化

  • KMSを利用してデータの暗号化が出来る
  • 暗号化設定はテーブル作成時にのみ可能
  • 使用するKMSのキーは全テーブル共通
  • 暗号化されたテーブルへのアクセスには、KMSへのアクセス許可があるIAMポリシーが必要
9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6