【AWS Summit Japan 2022】今から理解する NoSQL Databases〜 ケーススタディと実践的データモデリング(AWS-44)

AWS

2022.5.27

Topics

こんにちは。ColdAirflow です。
本記事は、AWS Summit Japan 2022 のセッション「今から理解する NoSQL Databases〜 ケーススタディと実践的データモデリング」のレポート記事です。

セッション概要

タイトル

今から理解する NoSQL Databases〜 ケーススタディと実践的データモデリング 〜(AWS-44)

スピーカー

AWS 技術統括本部 ソリューションアーキテクト 上原 友理 氏
AWS 技術統括本部 ソリューションアーキテクト 堤 勇人 氏

概要

NoSQL Database は知っているが、実際にどうやって開発していくのかイメージが持てないという開発者の方に向けたセッションです。 前半では、ショッピングサイトをケーススタディとし、サービスの成長と共に起こる問題と、それに対処するデータベースの選択をご説明します。 後半では NoSQL の開発でも頭を悩ませることが多い、データモデリングのやり方について、DynamoDB を例に取りステップ毎にポイントを解説していきます。

レポート

セッション内容

  • お話すること
    • ⽬的別にデータベースを使い分ける具体的なシチュエーション
    • DynamoDB を例に、データモデリングの実践的なステップの解説
  • お話しないこと
    • リレーショナルデータベース と NoSQL データベースの違い
    • 各 NoSQL データベースサービスの説明
    • マネージドサービス 等の AWS の基本的な説明

「お話しないこと」が気になる方は以下をご覧ください。
開発者のための、NoSQL Database の選び⽅ ⼊⾨

セッション対象者

  • NoSQL データベースの利⽤を検討されている開発者の⽅
  • リレーショナルデータベースでサービスを構築した経験のある⽅

セッションアジェンダ

  • NoSQL データベースが求められる背景
  • こんな時に NoSQL データベースを使おう
  • 実践的 NoSQL データモデリング
  • データモダナイゼーション with AWS

NoSQL データベースが求められる背景

  • 最新のアプリケーション要件
    • アクセスユーザー: 100 万+
    • データボリューム: テラバイト、ペタバイト
    • アクセス元: 世界中から
    • パフォーマンス: ミリ〜マイクロ秒遅延
    • リクエストレート: 毎秒百万
    • 交通アクセス: ウェブ、モバイル、IoT、デバイス
    • スケール: スケールアップ/ダウン、スケールアウト/イン
    • 事業マネタイズ: 従量制課⾦制
    • 開発者アクセス: API アクセス
    • アプリの変更頻度: 毎週やそれ以下の場合も

クラウドの導入で世界は常に変化しているので当然技術も変化をしていきます、データベースだけ変化しないわけはありません。

そういった「最新のアプリケーション要件」を今まで主流であったリレーショナルデータベースだけで管理していくのには限界があります。
そのため、NoSQL データベースという新たな選択肢が生まれています。

データベースに求めるものは利⽤するアプリケーションによって異なる

  • 性能
  • 拡張性
  • 開発の柔軟性
  • サポートするデータ形式

要件に応える幅広いデータベースサービス

AWS ではニーズに答えるべく様々なデータベースサービスが存在します。
本セッションでは各種データベースの詳細な解説はないため、データベースの詳細については以下資料をご参照ください。

AWS が提供するクラウドデータベース | AWS

さらに、AWS だと「Purpose-Built Database」という考え方が存在します。
本セッションは「適材適所の選択」で様々なユースケースに応じて NoSQL を選択していきます。
そのため、考え方を理解しておくとより本セッションで吸収できることが多いと思います。

  • AWS では多様なデータベースの選択肢
  • ワークロードに応じて最適な選択が可能

詳細については以下資料をご覧ください。
Purpose-built databases
AWS Purpose-Built Databases Week Archive

こんな時に NoSQL データベースを使おう

  • 設定:あなたは新しくリリースされた、あるショッピングサイトの開発者です

担当している新サービスが軌道に乗ったある⽇・・

「サイトが表⽰できないって、問合せが来てるよ。すぐに対応して︕」

システムの成⻑と共に様々な課題が発⽣

「読み込み負荷の上昇」

→ インメモリデータベースの利用: Amazon ElastiCache , Amazon MemoryDB for Redis

RDS の場合、リードレプリカの選択肢もあるため、なにが適しているかはその場その場によって異なります。
大事なのは何を重要視するかによって適切な判断を行うことだと思います。

ユーザ数が伸び悩んでいるある⽇・・

「新規ユーザを増やす為に、ユーザ同⼠の繋がり機能を追加して︕」

システムの成⻑と共に様々な課題が発⽣

「機能追加に伴う複雑なクエリの検討」

→ グラフデータベースの利用:Amazon Neptune

「ユーザ同⼠の繋がり」といった階層構造の場合、RDB だとクエリが複雑になったりインデックスが効かなくなりクエリが遅くなることがあります。
そういった RDB が苦手とする領域を得意とするデータベースも AWS では存在します。

順調にユーザが増加したある⽇・・

「エラーが頻発してるって、SNS で騒がれてるよ。すぐに対応して︕」

システムの成⻑と共に様々な課題が発⽣

「常に⽣成される⼤量の同時接続、⼤量のレコード」

  • 「これまでデータベースの分散にも取り組んで来たけど、ユーザ数の増加と共にレイテンシが増加しているこれ以上分散しても改善は難しい・・」
  • 「シンプルなデータ構造ならもっと⾼速に処理できるデータベースもある仕組みを⼤きく変える必要があるけれど、今後の成⻑のために最適な⽅法を検討しよう」

→ キーバリューデータベースの利用:Amazon DynamoDB

データベースの拡張が難しいのであれば、データ構造を一度見直すことで、キーバリューデータベースでも扱えるようになるかもしれません。

今まさにあなたがシステム開発をしているとしたら・・

  • 最初から全て NoSQL データベースを使うべきか︖
  • まずは使い慣れた リレーショナルデータベース︖

「どちらも正解です︕」

要件を明確にしておくことが⼤切

  • 低レイテンシ
  • 早期リリース
  • 厳密なトランザクション

リアルタイムのランキングを提供する場合は、低レイテンシのほうが重視されるかもしれません。
はたまた、金融系のシステムの場合は厳密なトランザクションのほうが重視されるかもしれません。

大切なことは、一つで完結させずに RDB や NoSQL が得意とする領域、苦手とする領域を理解して適材適所で組み合わせて最適なサービスを提供することです。
これが、「Purpose-Built Database」という考え方です。

実践的 NoSQL データモデリング

DynamoDB を使用した設計とアーキテクチャの設計に関するベストプラクティス – Amazon DynamoDB

データモデリングのステップ

  • アプリケーションを理解する
    • ユーザーの体験を理解する
    • 担当者・開発者とミーティングを持つ
  • ER 図を作成する
  • アクセスパターンを全て書き出す
  • データ特性を把握する
    • カーディナリティ
    • サイズ
    • リクエストレート、許容レイテンシ

データモデリングのループ

  • 最初から全てを想定はできない
  • ビジネスの状況も環境も変わる
  • あなたのスキルも AWS のサービスも進化する
  • 必要なのは Tinkering(鋳掛け)

大切なことは、立ち止まらずに変化進化に対応していくこと。

今回触れていない課題

今回のセッションは以下項目には触れていなかったですが、AWS ブログで関連しそうなものを記述しているので気になる方はご覧ください。

データモダナイゼーション with AWS

必要なインサイトを安全かつ⼤規模にもたらすデータ戦略

  • マネージドサービスへの移⾏
  • レガシーデータベースからの脱却
  • 統合されたデータエコシステムの構築

データモダナイゼーションのあらゆるステージでお客様を⽀援

  • データインフラをクラウド化し、コストを削減する速度と柔軟さを獲得
  • マネージドデータベースの利⽤により、運⽤の重労働を⾃動化
  • purpose-build databases により様々なアプリケーションを構築

拡張性、信頼性、安全性に優れたクラウドプロバイダーでデータ基盤をモダナイズしましょう

  • 特性に合った正しいデータベースの利⽤
  • 時間とコストの節約
  • ユースケースに沿ったスケーラブルで分散されたアプリケーション
  • AWS はクラウドデータベースに対して常にオープンなマインドを持っています

感想

NoSQL の設計を例を用いて解説してくれるため、RDB との設計の違いについて理解がしやすかったです。
今回はデータベースに焦点を当てていましたが、適材適所な考え方はほかの AWS サービスにも言えることだと思います。

世界は変化し続けます、AWS も当然変化をして進化し続けます。
そうなると情報のキャッチアップは大変ですが、本 AWS Summit Japan では他にも様々な情報について解説してくれるため、とても学びのあるイベントでした。

Cold-Airflow

2021年新卒入社。インフラエンジニアです。RDBが三度の飯より好きです。 主にデータベースやAWSのサーバレスについて書く予定です。あと寒いのは苦手です。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら