NRIネットコム Blog

NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

DynamoDBを語ってみる

本記事は  わた推し~AWSアワードエンジニア編~  4日目の記事です。
💻  3日目  ▶▶ 本記事 ▶▶  5日目  💻

9名で連載となる「わた推し~AWSアワードエンジニア編~」の4番打者を務めさせていただく、4番 ショート 小林です。(記事が短めという意味です)

私が推すサービスは「Amazon DynamoDB」(以下、DynamoDB)です。

DynamoDBが生まれたのは2012年と、当時は私の周りはRDBだらけで触る機会はまったくありませんでした。

私が初めてDynamoDBを使ったのは2019年とかなり最近で、とあるサーバレスシステムのデータストアとして利用しました。
※そこそこ良い成果を出せたシステムなので、この辺はおいおい記事にしたいと思っています。

当時は設定項目少なくてお手軽だなーとか、カラムが自由だなーとか軽い感想しかありませんでしたが、その後「要点整理から攻略する『AWS認定 データベース-専門知識』」を執筆した際に軽い気持ちで「DynamoDB担当しますよー」と言ってしまい後悔することになります。

  • ユーザから見るとシンプルで便利に見えるということはパフォーマンスやバックアップに関する裏の作りがしっかりしているということ
  • 基本機能がシンプルな代わりにある程度柔軟に機能拡張できる方法(インデックスやトランザクションなど)が用意されているということ
  • パフォーマンス強化や変更履歴管理のための周辺機能も提供されていること

こういうパッと見ではわからなかった多機能さにより、執筆の大半の時間をDynamoDBに費やすことになりました。
要点整理から攻略する『AWS認定 データベース-専門知識』」のDynamoDBの章はとても頑張って書いたので、ぜひ読んでみてください。
特にキーとインデックスのあたりはわかりやすく書けたつもりです。

さらに噛み砕いたものをその後に「図解 Amazon Web Servicesの仕組みとサービスがたった1日でよくわかる」に書いたりしています。

いくつか私の著書2冊から図を引用しつつ、DynamoDBのすごさについて語ってみたいと思います。

DynamoDBのここがすごい その1「シンプル」

これだけの設定で始められます。

中身はこんな感じでレコードを一意に取り出すためのキーがあれば中身は自由です。

ただデータを格納しておき、キー指定で特定のデータだけを取り出せれば良いという使い方には最適です。
なお、シンプルな分データの読み書きは非常に速いですが、基本的にキーのみでデータを扱うため、レコードに含まれるキー以外のデータ検索や格納されているデータの集計といった作業は苦手です。

ユーザから見た管理対象はデータ構成の部分だけでよいのですが、データの読み書きを高速にするためのディスクへの分散書き込みやデータ消失を防ぐためのデータレプリケーションといったことが裏で行われており、安心して使うことができます。
さすがフルマネージドサービスというところですね。

DynamoDBのここがすごい その2「そこそこ柔軟」

「キー指定で特定のデータだけを取り出せれば良いという使い方には最適」と書きましたが、「1つのキーだけでしか検索できないのは不便」という声もあるかと思います。
そのために用意されているのがインデックス機能です。
ソートのためのキーを置き換えたり、検索のためのキーをもう一つ用意したりすることができます。


少々複雑でいくつか制限もありますが、かゆいところに手を届かせる機能のひとつかなと思います。

あとはRDBでおなじみトランザクション機能ですね。DynamoDBでも使うことができます。

DynamoDBのここがすごい その3「便利機能もあるよ」

DynamoDBはそれだけでもミリ秒台での高速な読み込み応答ができるサービスなのですが、「もっと疾く…」という方向けにマイクロ秒台の読み込み応答を実現するDynamoDB Acceleratorというクエリキャッシュサービスも用意されています。
それほどのパフォーマンスが要求されるシステムは扱ったことないので使ったことはないのですが、こちらも簡単な設定で使えるようです。

あとは、DynamoDBの更新履歴を追うことができるDynamoDBストリーム、リージョンにまたがってレプリカを作成するDynamoDBグローバルテーブルなどDynamoDBに付随して便利な機能を提供するサービスも用意されています。

まとめ

お手軽に始められて、ある程度柔軟な使い方もできるという点でとても優れたサービスです。

AWSに公開されている数々の事例でも導入されていることが多く、それも一つの裏付けかなと思っています。

キーを使った柔軟な形式のデータ格納が得意で、検索や集計などが苦手と使い所がはっきりしているので使えそうなところには積極的に試していただいて損はないかなと思います。

無料枠も用意されているのでお気軽に!

執筆者小林恭平

2021 APN ALL AWS Certifications Engineers & AWS Top Engineer
IPA13冠、AWS12冠(どちらも全区分)
大阪で主にインフラのお仕事してます。
技術書もいくつか書いてます。

Twitter:https://twitter.com/kobakoba09

Facebook:https://www.facebook.com/kyohei.kobayashi.756

Amazon著者ページ:Amazon.co.jp: 小林 恭平:作品一覧、著者略歴