[レポート] DAT205 AWSのデータベース:適切な仕事のための適切なツール #reinvent
このページは 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では用途別に様々なデータベースを用意しているのがわかりますね。 新サービスも増えましたし、既存のサービスもアップデートが満載でした。