Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
DynamoDB の好きなところ
Yuki Toyoda
September 24, 2020
Technology
1
120
DynamoDB の好きなところ
社内の「実践AWSゼミ」にて発表したスライドです
Yuki Toyoda
September 24, 2020
Tweet
Share
More Decks by Yuki Toyoda
See All by Yuki Toyoda
Rustハンズオン @ Rust CA 1 Day Youth Boot Camp
helloyuk13
9
3.2k
SwiftでAWS Lambda
helloyuk13
0
110
Rustハンズオン@エウレカ社
helloyuk13
17
7.6k
Rust ハンズオン第6回 ベアメタル Rust 編
helloyuk13
0
170
Rust で Web アプリケーションはどこまで開発できるのか
helloyuk13
24
45k
Rustハンズオン第4回 Webバックエンド編
helloyuk13
1
380
Rustハンズオン第3回 基礎文法編
helloyuk13
1
500
Rustハンズオン第5回 WebAssembly編
helloyuk13
7
2.1k
第1回 Rust Hands-On
helloyuk13
8
2k
Other Decks in Technology
See All in Technology
【Pythonデータ分析勉強会#33】「DearPyGuiに入門しました」の続き~Image-Processing-Node-Editor~
kazuhitotakahashi
0
190
Inside out - abusing archive file formats
ange
3
600
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
3
9.2k
ソフトウェアテスト自動化、一歩前へ
yoshikiito
7
1.1k
俺の Laravel がこんなに速いわけがない! / My Laravel Too Fast
hanhan1978
0
120
How to start with DDD when you have a Monolith
javujavichi
0
370
データ分析基盤のはじめかた
chanyou0311
0
130
PUTとPOSTどっち使う?
hankehly
0
280
ソフトウェアライセンス 2022 / Software License 2022
cybozuinsideout
PRO
1
1.2k
さいきんのRaspberry Pi。 / osc22do-rpi
akkiesoft
6
5.4k
誰が正解を知っているのか / Who knows the right answer
takaking22
1
250
Google Cloud Updates 2022/05/16-05/31
no24oka
2
110
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
29
4.3k
What’s in a name? Adding method to the madness
productmarketing
11
1.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
19
1.2k
Producing Creativity
orderedlist
PRO
334
37k
Facilitating Awesome Meetings
lara
29
4k
Rebuilding a faster, lazier Slack
samanthasiow
62
7.2k
Building a Scalable Design System with Sketch
lauravandoore
448
30k
For a Future-Friendly Web
brad_frost
166
7.4k
Ruby is Unlike a Banana
tanoku
91
9.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
226
15k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_i
23
15k
Fireside Chat
paigeccino
12
1.3k
Transcript
DynamoDB の 好きなところ AWS ゼミ 豊田
もくじ 1. DynamoDB とは 2. 整合性モデル 3. DynamoDB の前身 Dynamo
4. 個人的に思ういいところ
DynamoDB とは • マネージドの NoSQL。 • ドキュメント指向。 • 読み込み書き込みが速い。 ◦
読み込みは RTB サーバーでは満足できる速度ではないので、キャッシュの工夫や DynamoDB Acceralator (DAX) の助けが必要ではある ◦ プロダクトでは数億件のデータを入れているけれど、書き込みがよくスケールするのが本当に嬉し い✨ • AZ が関係ない。 • テーブル単位でキャパシティユニットによるスループットの管理ができる。
整合性モデル • 一番知っておいた方がいいことかも。 • 書き込み ◦ 2つ以上の AZ で書き込み完了確認が取れた時点で、書き込みが承認される。
• 読み込み ◦ 弱い整合性と強い整合性の2つを選べる。 ◦ 2つ以上の AZ で書き込み完了した時点から読み取りが可能になる(弱い整合性なら)。 ◦ 結果整合性を担保しているので、最新の書き込み状況がすぐには反映されないこともある。 ◦ 強い整合性の場合は一貫性を担保できるが、お金を倍消費する。 • 要するに一貫性が必要な場合には、使用するのは難しい。 ◦ その際は RDS を利用するなどするほうがよいかも。
DynamoDB の前身 Dynamo • 2007 年に「Dynamo: Amazon’s Highly Available Key-value
Store」という論文で発 表された。 • Consistent Hashing を利用したパーティショニングを採用しており、マスターがいな い脱中心化アーキテクチャになっていた。 • 一貫性(consistency)を設定可能で、可用性、レイテンシ、一貫性のバランスを調整 可能にしていた。 • 書き込みの際のコンフリクトを許容。Vector Clock という機構でクライアントが情報 を読み取ってコンフリクトを解消できるようにしていた。 • シンプルなキーバリューストア(DynamoDB はドキュメント指向) • これにインスパイアされて Apache Cassandra ができた。 • DynamoDB とはほぼ別物
個人的に思ういいところ • Lambda と相性がいいので、単純に Lambda の永続化機構として使いやすい。 • 基本的には保存容量を気にしなくていいので、無限に容量が膨らむ可能性のある データを入れておく際に安心して入れておける。 •
Batch Write で億単位のデータを高速に書き込みできる vs Redis。 • キャパシティがテーブル単位なので、設定を間違えても死ぬのはそのテーブルだ け。 • Dynamo Streams と組み合わせで、CQRS + ES アーキテクチャをこれひとつで実現 できる。