昨今のDB設計は一昔前に比べると変わってきています。
従来の要件 | 新しい要件 | |
---|---|---|
ユーザー数 | 10万 | 100万 |
データ量 | GB〜TB | TB〜EB |
場所 | 社内 | グローバル |
パフォーマンス | 秒 | ミリ秒/マイクロ秒 |
リクエスト数 | 万 | 百万 |
アクセス手法 | 社内サーバー | モバイル/IoT |
拡張 | スケールアップ | スケールアウト |
支払い | 前払い | 従量課金制度 |
開発者のアクセス頻度 | 日次/週次/月次 | APIアクセス |
昨今必要な考え方
用途に合わせて選ぶデータベースを変える必要性が発生してきている。下記のような種類がある。
- リレーショナル
- キーバリュー
- ドキュメント
- インメモリー
- グラフ
- 時系列
- 台帳
リレーショナル(Amazon RDS)
マネージドサービス
Aurora
Amazonがクラウドを使いこなすために設計した全く新しいDBエンジン、MySQLとの互換性があります。
Community
Commerical
キーバリュー(Dynamo DB)
マネージドサービス、NoSQL
Redis
Memcached
ドキュメント(Amazon DocumentDB)
- マネージドサービス、JSONやXML等の不定形なデータ構造に対応する。
- MongoDBに互換性があります。
- 複雑なデータモデリングを容易に表現することが可能です。
- 読み取り件数を数百万/秒までスケールすることが可能です。
頻繁に変更される属性情報
- Amazon.comの商品属性情報
- アプリケーションログ
- デバイスログ
RDBではスキーマ設計が必要
ドキュメントDBはRDBに比べて楽です。スキーマを事前に決められないデータを格納するのに効果的です。
- 全ての属性情報定義は難しい。
- 属性を定義しないとINSERTできない。
インメモリー(Amazon ElasticCache)
特徴
- マネージドサービス
- KVS(キーバリューストア)
- 最大限メモリで処理するので短いレイテンシで応答ができます。
- 短い応答時間が期待できる。
リアルタイム性の高いアプリケーション
- レイテンシ・クリティカルな処理
- Webサイト・ゲーム・デバイス等
RDBではマイクロ秒レベルのレイテンシが難しい
- ディスクベースの処理ではレイテンシに限界がある。
- スキャンや結合にコストがかかる。(RDBの柔軟なSQLにはコストがかかる。)
キャッシュが可能
- 障害時のデータ消失リスクを許容できる。
- インメモリのために障害によるデータ損失のリスクがある。
- 非同期レプリケーションでも可能
ユースケース
- データキャッシュ
- 推論キャッシュ
- クエリキャッシュ
グラフ(Amazon Nepture)
マネージドサービス、データ同士を相互に結び付けてデータ同士の関係をグラフという形で表します。複雑な関係性を表すのに使われます。多:多の関係を示します。
時系列(Amazon TimeStream)
マネージドサービス
台帳(Amazon QLDB)
マネージドサービス
この記事へのコメントはありません。