今日やったこと
DynamoDBについてを読んだ
Amazon DynamoDB
優れたスケーラビリティ・拡張性を持つNoSQLデータベースを提供するサービス
エンドポイントを通じて、いずれかのアベイラビリティゾーンにあるノードにアクセスする
単一障害点がないことが特徴で、どこのノードからもアクセス可能
複数ノード間で整合性と取るために以下オプションを指定可能
DynamoDBの結果整合性のオプション
- 読み込み
- 結果生合成のある読み込み
- 2/3の読み込みで結果が一致した場合正常応答
- 強い読み込み整合性
- 全てのReadRepairが完了している状態で結果を応答
- トランザクション読み込み
- 直列化可能分離レベルでデータを読み取るオプション
- 結果生合成のある読み込み
- 書き込み
- 結果整合性のある書き込み
- 2/3以上の書き込みが成功した場合正常応答
- トランザクション書き込み
- 全ての書き込みが成功した場合正常応答
- 結果整合性のある書き込み
キャパシティユニット
DynamoDBの課金体系に2つのオプションがある
- オンデマンドキャパシティモード
- リクエストに応じて請求が発生する
- プロビジョンドモード
- 事前に必要と予想される読み込み・書き込みできるキャパシティユニットを指定する
キャパシティユニットの定義
読み込みキャパシティユニット
Read Capacity Unit: RCUs
- 1秒あたりの読み込み項目数×項目のサイズ
- 4KBまでを1ブロックとして計算
- 例)3KBを読み込むリクエストが毎秒1000回→1000RCUs
- 結果整合性がある読み込みの場合はスループットが2倍
- トランザクション読み込みの場合はスループットが半分
書き込みキャパシティユニット
Write Capacity Unit: WCUs
TimeToLive(TTL)
項目に対して、有効期限(TTL)を設定可能
使用すると、指定された日時に、スループットを消費することなく、削除できる
DAX(DynamoDB Accelarator)
VPC内でキャッシュクラスタを構築し、DynamoDBのデータへ高速にアクセスできるキャッシュサービス
グローバルテーブル
複数のリージョンにまたがる共通のデータベース
通常は、リージョンごとにDBが分かれている
終わりに
結果整合性については、覚えるのもごちゃごちゃしそう
ユースケースと一緒にどういう使い方をするのが理想かと一緒に覚えていきたい。