[レポート] DAT205 AWSのデータベース:適切な仕事のための適切なツール #reinvent

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

このページは re:Invent2018で行われているセッション「DAT205: Databases on AWS: The Right Tool for the Right Job」についてのレポートです。

Shawn Bice, VP of Non-Relational Databases at AWS, discusses a purpose-built strategy for databases, where you choose the right tool for the job. Shawn explains why your application should drive the requirements of a database, not the other way around. We introduce AWS databases that are purpose-built for your application use cases. Learn why you should select different database services to solve different aspects of an application, and watch a demonstration in which application use cases lend themselves well to specific data services. If you're a developer building modern applications that require high performance, scale, and functional databases, and you're trying to determine which relational and non-relational data services to use, this session is for you. Please join us for a speaker meet-and-greet following this session at the Speaker Lounge (ARIA East, Level 1, Willow Lounge). The meet-and-greet starts 15 minutes after the session and runs for half an hour.

目的にあったデータベース選定の戦略について概説するセッションで、データベースの仕組みとそのユースケースについて概説しています。

レポート

データベース選定のための戦略について説明がありました。 午前のキーノートで発表されたばかりの新サービスについても触れました。

データベース選定のための戦略

AWSのDBチームは単一の製品のみを用いてプログラムで複雑なことをするより、 条件毎にあう製品を組み合わせた方がよいと説明しています。

このセッションではその中から RDB, KVS, グラフDBについてフォーカスしました。

リレーショナルDB

リレーショナルDBの特徴

  • データごとにテーブルを分割する
  • 高度な構造
  • システムによって強制されるキーで関連を持たせる
  • データの正確性と一貫性を持つ

ユースケース

  • キー以外での検索を行う
  • 列に対して集計を行う(件数や合算など)
  • その他多くのビジネスシーン

汎用性のあり実績のあるものなのであまり説明は不要ですね。

キーバリューデータ

特徴

  • 単純なキーと値の組み合わせ
  • キーで区切られる
  • 障害に強い
  • 読み書きともに高いスループットで低いレイテンシー
  • 規模によらず一貫したパフォーマンス

ユースケース

  • 高度なスケーラビリティが求められる場合
  • 高い読み書き性能が求められる場合
  • データ量の予測ができない場合

Graph data

特徴

  • 関係はファーストクラスのオブジェクトです
  • 頂点はエッジによって接続される

ユースケース

  • 関係性を重視した業務モデルの場合(SNS、リコメンド機能など)

Graph data はユースケースを絞った感がありますね。

事例とデモ

airbnb の事例

airbnbのデータベースの使い分けについて説明がありました。

デモ

本のオンラインショッピングのデモで用途別にDBを使い分けるデモを行いました。 スライドに書いてあるGitHubにすぐに使えるCloudFormationテンプレートも記載されています。

Ladger database (QRDB)

Ladgerは、今のデータと履歴の双方を適切に管理するためのもの。 RDBに近いですが、ジャーナルというデータ更新操作と、データは現在の値と履歴の双方を管理するという点で、拡張がなされているイメージでした。

ジャーナルというデータ更新の履歴をハッシュ値と共に格納して証跡を管理、データは現在値のものとバージョン列を持つ履歴テーブルで構成されているようです。

そのRadgerを実現しているのがキーノートでも発表された QRDB です。

Timestream(Amazon Timestream)

\ timestreamとは計測データなどの値を淡々と格納するもの。 RDBでもできますが、件数が多いことなどを考慮すると特化した

これを実現したのが新サービス(Preview)のAmazon Timestreamでした。

まとめ

さいごに

AWSでは用途別に様々なデータベースを用意しているのがわかりますね。 新サービスも増えましたし、既存のサービスもアップデートが満載でした。