Amazon DynamoDB(ダイナモディービー)とは何かざっくり解説!
- 整理整頓を捨てて、「スピード」だけに命をかけたデータベース。
- 「何が入ってるかは知らん! 引換券(キー)さえあれば0.001秒で出す!」というクローク係。
- アクセスが100万件来てもビクともしない、屈強なゴリラ。
【詳しく教えて!】超高速の「巨大クローク(荷物預かり所)」
前回、「Amazon RDS」を紹介しましたよね。
あれは「Excelみたいな表」で、きっちりデータを管理する「几帳面な執事」でした。
でも、世の中には「几帳面すぎて遅い!」って場面があるんです。
例えば、大人気アイドルのライブチケット予約とか、ソーシャルゲームのイベント開始直後とか。
世界中から一斉に「俺のデータを保存しろー!」「俺のデータを見せろー!」ってアクセスが殺到します。
こんな時、RDS(執事)はいちいち
「えーっと、お名前は? フリガナは? 住所に抜け漏れはありませんね? はい、では5番の棚にしまって……」
なんてやってるから、パンクしちゃうんです。
そこで登場するのが、Amazon DynamoDB(ダイナモディービー)です。
これは例えるなら、「超・雑だけど、手だけは異常に速いクローク係」です。
「Excel(RDS)」vs「雑なメモ帳(DynamoDB)」
DynamoDBのルールはたった一つ。
「引換券(キー)を持ってきたら、荷物を渡す」。
これだけです。
【RDS(今までのデータベース)】
「氏名」「年齢」「住所」という枠が決まっている。
枠にハマらないデータ(例えば「ペットの名前」とか)を急に入れたくなっても、設計図から書き直さないといけない。
検索は得意だけど、手続きが多くて遅い。
【DynamoDB(NoSQL)】
枠なんてありません。
「Aさんの荷物」というタグさえあれば、中身が「みかん」だろうが「戦車」だろうが、ごちゃ混ぜに放り込んでOK。
「中身が何か?」なんて確認しません。
「はいタグね! はい荷物これ! 次!」
このやり取りだけなので、爆速なんです。
Aさん(新人):
先輩、今度リリースするスマホゲーム、100万人が一斉にログインする予定なんですけど、データベースどうしましょう?
Bさん(ベテラン):
そりゃお前、RDSを使ったらアクセス集中でサーバーが爆発して死ぬぞ。
Aさん(新人):
ええっ! 几帳面な執事(RDS)じゃダメなんですか?
Bさん(ベテラン):
執事は丁寧すぎるんだよ。ここは「DynamoDB」という名のゴリラを雇うんだ。
Aさん(新人):
ゴリラ……ですか?
Bさん(ベテラン):
そう。DynamoDBはな、データが10個でも、1億個でも、データを出すスピードが変わらないんだ。「ミリ秒(0.001秒)」の世界で動く。
Aさん(新人):
すげぇ……。でも、複雑な検索とか苦手なんですよね?
Bさん(ベテラン):
そう。「去年の3月にみかんを買った、東京都に住む30代男性」みたいな検索は超苦手だ。でも「ユーザーID:1234のデータ出せ!」みたいな指名検索なら世界最強だ。
Aさん(新人):
なるほど! 適材適所ってやつですね!
「サーバーレス」だから管理いらず
これも大事なポイント。
DynamoDBは、前に紹介したS3(バケツ)やLambda(小人)と同じで、「サーバーレス」なんです。
データが増えてきても、ハードディスクを増設したりする必要はありません。
Amazonが勝手に裏側で巨大な倉庫を拡張してくれます。
あなたはただ、データを投げ込むだけでいいんです。楽ちんでしょ?
【結局どういうこと?】
ビジネスで言うと、「複雑な分析はできないけど、スピードとパワーだけは誰にも負けない、特攻隊長のようなデータベース」です。
「ゲームのハイスコア」「ショッピングカートの中身」「SNSの『いいね』ボタン」など、とにかく大量のアクセスをさばかなきゃいけない時は、迷わずこいつを選んでください。
まぁ、そんな感じです。


コメント