JAWS-UG 朝会 #33 で DB の種類についてのまとめ LT をしました。
資料は公開していますが、LT内で喋った内容の補足を含めて記事公開します。
(だいぶ期間空いてしまいましたが...)
はじめに
この記事で紹介する内容について
前述の通り、 JAWS-UG 朝会 でお話しした内容の補足記事です。
AWSのDBそれぞれについて、1枚絵レベルで説明していきます。
なお、この整理は AWS エバンジェリストシリーズ AWSの基礎を学ぼう での学びの復習を目的としたものです。これに興味を持った方は、こちらの受講もお奨めします。
登壇時の資料は、こちらから確認できます。
なお、この記事は登壇時 2022年5月10日時点の情報をもとに書いています。
若干、最近の影響大きそうなリリース情報も追記してます。
この記事で得られること
- なんとなく、AWSのDBってどんなものがある? がわかる。
- なんとなく、AWSのDBの使い分けがイメージできる。
この記事で得られないこと
- それぞれのDBの使い方、設計方法の理解。
- AWS 認定資格 DBS を取れる知識の習得。
DB 9種類の紹介
大きく、以下の3つのカテゴリに分けて説明しています。
- RDB系: RDS (Aurora含む)
- KVS系: DynamoDB, DocumentDB, Cassandra, ElastiCache, MemoryDB
- その他: Neptune, TimeStream, QLDB
捉え方によっては 「S3 も KVSでは?」とかもあるんですが、一旦は AWSマネジメントコンソールで DBとカテゴライズされているものを対象としています。
RDS
一番手。リレーショナルデータベースが必要ならこの方です。
AWSのサービスの中でも歴史あるRDSですが、今では提供形態も様々です。
絵の一番下に書いている 5段階をもとに、どのくらいセルフで管理したいか、管理したくないかで考えると良いのではないかと思います。
なお、かつては Lambda と RDS の組み合わせはアンチパターンと言われましたが、
2020年6月の Amazon RDS Proxy 一般提供 にてその課題は解消されています。
(かつて アンチパターンだった理由は他にもありますが、ここでは割愛。)
DynamoDB
以降は、NoSQL データベースたちです。
KVSシリーズ1つ目、DynamoDB.
とりあえず AWS で DB 使うならまずこれを考えましょう 的な立ち位置のものと考えています。
若干癖はありますが、マネージドサービスの利点、他サービス連携しやすさなどがポイントかなと。
調べるときは、 オンデマンドキャパシティ対応が 2018年11月 であることに注意。
それまでの資料を見るとプロビジョンド前提になりますが、使い方次第ではかなりコストが変わってきます。
2022年5月時点では、 DevAx::connect Season 2 の 資料がおすすめです。
DocumentDB
KVSシリーズ2つ目、DocumentDB.
MongoDB 互換の DB です。
より json ライクにデータを扱えます。
ただし、MongoDB 互換であり、全てのMongoDB の API が使えるわけでないので注意。随時対応しています。
2022年1月から 無償利用枠 の提供も始まりました。
Keyspaces
KVSシリーズ3つ目、Keyspaces.
Apache Cassandra 互換のDB.
Keyに対して、テーブルが紐づくようなデータ構造です。
ElastiCache
KVSシリーズ4つ目、ElastiCache.
高速な読み書きのできるDBです。
memcached と Redis のどちらかを選べます。
シンプルな使い方で良いなら、memcached.
より要件が増えてきたら、redis.
リアルタイム処理に強い一方、永続的な保存を求めるなら別のDBが良いでしょう。
MemoryDB
KVSシリーズ5つ目、MemoryDB.
Redis のみ利用可能です。
ElastiCache と比較して 書き込みの速度は遅くなるものの、
分散保管により高い耐久性を提供してくれます。
Neptune
その他シリーズ1つ目、Neptune. グラフDBです。
SNSなど、複雑なつながりを管理するのが得意なDBです。
このDBも、2022年4月に 無償利用枠 の提供を開始しました。
2022年7月の Global Database対応 で、可用性面での信頼性も向上。
TimeStream
その他シリーズ2つ目、TimeStream. 時系列DBです。
時系列処理が得意なDB. IoT とか 監視とかで活用されます。
東京でも 2022年8月に利用可能になりました。
QLDB
その他シリーズ3つ目、QLDB. 台帳DBです。
ブロックチェーン技術を用いた、意図しない変更がないことを保証してくれるDB.
最後に
思いつきでグラレコ描いてみて、Twitter上で好評いただいてそのノリで!での登壇でした。
だいぶ触りだけの内容ですが、雰囲気掴むのにちょうど良いボリュームと思っていただける方がいれば
ご紹介した甲斐があります。