Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DynamoDB の好きなところ

Yuki Toyoda
September 24, 2020

DynamoDB の好きなところ

社内の「実践AWSゼミ」にて発表したスライドです

Yuki Toyoda

September 24, 2020
Tweet

More Decks by Yuki Toyoda

Other Decks in Technology

Transcript

  1. DynamoDB の

    好きなところ

    AWS ゼミ 豊田


    View Slide

  2. もくじ

    1. DynamoDB とは

    2. 整合性モデル

    3. DynamoDB の前身 Dynamo

    4. 個人的に思ういいところ


    View Slide

  3. DynamoDB とは

    ● マネージドの NoSQL。

    ● ドキュメント指向。

    ● 読み込み書き込みが速い。

    ○ 読み込みは RTB サーバーでは満足できる速度ではないので、キャッシュの工夫や DynamoDB
    Acceralator (DAX) の助けが必要ではある 

    ○ プロダクトでは数億件のデータを入れているけれど、書き込みがよくスケールするのが本当に嬉し
    い✨

    ● AZ が関係ない。

    ● テーブル単位でキャパシティユニットによるスループットの管理ができる。


    View Slide

  4. 整合性モデル

    ● 一番知っておいた方がいいことかも。

    ● 書き込み

    ○ 2つ以上の AZ で書き込み完了確認が取れた時点で、書き込みが承認される。 

    ● 読み込み

    ○ 弱い整合性と強い整合性の2つを選べる。 

    ○ 2つ以上の AZ で書き込み完了した時点から読み取りが可能になる(弱い整合性なら)。 

    ○ 結果整合性を担保しているので、最新の書き込み状況がすぐには反映されないこともある。 

    ○ 強い整合性の場合は一貫性を担保できるが、お金を倍消費する。 

    ● 要するに一貫性が必要な場合には、使用するのは難しい。

    ○ その際は RDS を利用するなどするほうがよいかも。 


    View Slide

  5. DynamoDB の前身 Dynamo

    ● 2007 年に「Dynamo: Amazon’s Highly Available Key-value Store」という論文で発
    表された。

    ● Consistent Hashing を利用したパーティショニングを採用しており、マスターがいな
    い脱中心化アーキテクチャになっていた。

    ● 一貫性(consistency)を設定可能で、可用性、レイテンシ、一貫性のバランスを調整
    可能にしていた。

    ● 書き込みの際のコンフリクトを許容。Vector Clock という機構でクライアントが情報
    を読み取ってコンフリクトを解消できるようにしていた。

    ● シンプルなキーバリューストア(DynamoDB はドキュメント指向)

    ● これにインスパイアされて Apache Cassandra ができた。

    ● DynamoDB とはほぼ別物


    View Slide

  6. 個人的に思ういいところ

    ● Lambda と相性がいいので、単純に Lambda の永続化機構として使いやすい。

    ● 基本的には保存容量を気にしなくていいので、無限に容量が膨らむ可能性のある
    データを入れておく際に安心して入れておける。

    ● Batch Write で億単位のデータを高速に書き込みできる vs Redis。

    ● キャパシティがテーブル単位なので、設定を間違えても死ぬのはそのテーブルだ
    け。

    ● Dynamo Streams と組み合わせで、CQRS + ES アーキテクチャをこれひとつで実現
    できる。


    View Slide