Amazon DynamoDBとは何かざっくり解説!

AWS

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の『いいね』ボタン」など、とにかく大量のアクセスをさばかなきゃいけない時は、迷わずこいつを選んでください。

まぁ、そんな感じです。

コメント

タイトルとURLをコピーしました