継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

【Develoer試験勉強】DynamoDBの勉強

タダです。

AWS Developer Associate試験勉強を行ったメモです。 今回は、DynamoDBに関する概念や機能についてです。

BASE特性

RDBMSのACID特性に対する、BASE特性があります。 DynamoDBはBASE特性を持つDBです。

Basically Available

基本的に利用可能である性質

Soft-State

一時的な不整合を許容する性質

Eventual Consistent(結果整合性)

システム内で一時的には整合性が失われるが、最終的には整合性のある状態になるという性質 DynamoDBでは、「強い整合性」オプションがあり、整合性を保つことができる。

データモデル

DynamoDBは以下の要素から構成されています。

  • table(テーブル)
  • item(行)
  • attribute(列)

パーティション

DynamoDBは、テーブルを複数のパーティションに分けてデータを保存します。 1つのパーティションが保存できるデータ量やスループットは決まっており、 アクセスやデータ量が増えれば、パーティションを拡張して対応します。

プライマリキー

テーブル作成には必ずプライマリキーの指定が必要です。

セカンダリインデックス

セカンダリインデックスとは、プライマリキーに指定したattributeに基づいてインデックスが 作成されて、これを利用することで高速にデータの検索を行うことができます。 セカンダリインデックスには、「ローカルセカンダリインデックス」と 「グローバルセカンダリインデックス」があります。

ローカルセカンダリインデックス(LSI)

LSIは、パーティションキーに指定したattributeとそれ以外のattributeをソートキーとしてインデックスを作成します。 LSIは、プライマリキーと同じパーティション内のインデックスという意味でローカルとなっています。

グローバルセカンダリインデックス(GSI)

GISは、プライマリキーとは別のattributeを使ってインデックスを作成できます。 パーティションをまたいでインデックスを作成するという意味でグローバルとなっています。

スループット

DynamoDBを利用する場合、予め読み込みと書き込みに必要なスループットを指定する必要があります。 スループットは、Read Capacity UnitsとWrite Capacity Unitsに指定する値で決定されます。

Read Capacity Units(RCU)

1RCUにつき、4KBのitemに対する秒間1回の強い整合性のある読み込みが可能です。 結果整合性の読み込みの場合、スループットがこの2倍、秒間2回の読み込みになります。

Write Capacity Units(WCU)

1WCUにつき、1KBのitemを秒間1回で書き込みが可能です。

DynamoDB Streams

DynamoDB Streamsは、DynamoDBに行われた追加、更新、削除の変更履歴を保持し取り出し可能です。 また、過去24時間以内にそのテーブルのデータに対して行われた変更のストリーム全てにアクセス可能です。

ユースエース

  • クロスリージョンレポリケーション
  • ゲームやソーシャルサイトなどのユーザの集計、分析、解析のための非同期集計
  • ユーザーが新しい写真をアップロードするとすぐにサークル内のすべての友人のモバイルデバイスに自動的に通知するモバイルアプリケーションの構築など

以上がDynamoDBに関する概念や機能についてのまとめになります。 次回は、実際にDynamoDBを使ってみた時のまとめを行います。