#本整理の目的
特に頭を使わず、DBならRDSでしょと考えてきた基盤エンジニア(5年目)が適材適所なDB選択を体系的に学びなおしたのでまとめる。
参考は2019年のAWS Summitのセッションより。
https://www.youtube.com/watch?v=h1r8AzOdlqo
DBの歴史[要件の変化(2000年~)]
RDBMSだけでは様々な要件に対応できなくなり、KVSなど特性を持ったDBが誕生した。
項目 | 従来要件 | 新要件 |
---|---|---|
ユーザ | ~10万 | 100万+ |
データ量 | ~TB | PB-EB |
範囲 | 社内 | グローバル |
パフォーマンス | 秒 | マイクロ秒 |
AWSにおけるデータカテゴリと選択指針
グラフ化や台帳といったカテゴリもあるが、本整理の範囲外。
データカテゴリ | Relational | Key-value | Document | In-memory |
---|---|---|---|---|
AWS サービス | RDS | DynamoDB | DocumentDB | ElastiCache |
特徴 | 参照結合性、ACIDトランザクション | 高スループット、低レイテンシー | ドキュメント保存し、高速クエリ | 超低レイテンシ |
選択指針 | 汎用的なDB、特に要件がなければ… | 高スケーラビリティ/数ミリ秒のレスポンスタイム/シンプルなクエリでよい | スキーマを決められないデータの格納 | ミリ秒未満のレスポンスタイム/キャッシュ利用したい |