AWSのDBの種類まとめ(LTの記事起こし)

[JAWS-UG 朝会 #33](https://jawsug-asa.connpass.com/event/240120/) で DB の種類についてのまとめ LT をしました。  
資料は公開していますが、LT内で喋った内容の補足を含めて記事公開します。  
(だいぶ期間空いてしまいましたが...)

## はじめに

### この記事で紹介する内容について

前述の通り、 [JAWS-UG 朝会](https://jawsug-asa.connpass.com/) でお話しした内容の補足記事です。

AWSのDBそれぞれについて、1枚絵レベルで説明していきます。

なお、この整理は [AWS エバンジェリストシリーズ　AWSの基礎を学ぼう](https://awsbasics.connpass.com/) での学びの復習を目的としたものです。これに興味を持った方は、こちらの受講もお奨めします。

登壇時の資料は、こちらから確認できます。  

https://twitter.com/98lerr/status/1523813119088152576?s=20&t=QiiAHAhYUwbGr0ZNchlGmg

なお、この記事は登壇時 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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286147/01df3cdf-befa-7485-e5d5-273f137af6aa.png)

捉え方によっては 「S3 も KVSでは？」とかもあるんですが、一旦は AWSマネジメントコンソールで DBとカテゴライズされているものを対象としています。

### RDS

一番手。リレーショナルデータベースが必要ならこの方です。

AWSのサービスの中でも歴史あるRDSですが、今では提供形態も様々です。
絵の一番下に書いている 5段階をもとに、どのくらいセルフで管理したいか、管理したくないかで考えると良いのではないかと思います。

なお、かつては Lambda と RDS の組み合わせはアンチパターンと言われましたが、  
2020年6月の [Amazon RDS Proxy 一般提供](https://aws.amazon.com/jp/about-aws/whats-new/2020/06/amazon-rds-proxy-generally-available/) にてその課題は解消されています。  
(かつて アンチパターンだった理由は他にもありますが、ここでは割愛。)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286147/b38cd49e-e4c8-ef2c-699e-5f90859e4687.png)

### DynamoDB

以降は、NoSQL データベースたちです。  

KVSシリーズ1つ目、DynamoDB.  
とりあえず AWS で DB 使うならまずこれを考えましょう　的な立ち位置のものと考えています。  

若干癖はありますが、マネージドサービスの利点、他サービス連携しやすさなどがポイントかなと。  

調べるときは、 [オンデマンドキャパシティ対応が 2018年11月](https://aws.amazon.com/jp/about-aws/whats-new/2018/11/announcing-amazon-dynamodb-on-demand/) であることに注意。  
それまでの資料を見るとプロビジョンド前提になりますが、使い方次第ではかなりコストが変わってきます。

2022年5月時点では、 DevAx::connect Season 2 の 資料がおすすめです。
- [申し込みページ](https://pages.awscloud.com/DevAxconnect_Season2.html) (動画リンク、資料pdf)
- [Twitch](https://www.twitch.tv/videos/1418149665?filter=all&sort=time) (動画)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286147/61d27236-2812-fa8d-bc7a-589fc25bcabe.png)

### DocumentDB

KVSシリーズ2つ目、DocumentDB.  
MongoDB 互換の DB です。  

より json ライクにデータを扱えます。
ただし、MongoDB 互換であり、全てのMongoDB の API が使えるわけでないので注意。随時対応しています。  

2022年1月から [無償利用枠](https://aws.amazon.com/about-aws/whats-new/2022/01/amazon-documentdb-mongodb-compatibility-free-trial/) の提供も始まりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286147/1f42adbe-dc57-5bc3-1f25-03663313691f.png)

### Keyspaces

KVSシリーズ3つ目、Keyspaces.  
Apache Cassandra 互換のDB.  

Keyに対して、テーブルが紐づくようなデータ構造です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286147/cf623e06-ac52-1546-ca64-bee78e1aaaf9.png)

### ElastiCache

KVSシリーズ4つ目、ElastiCache.  
高速な読み書きのできるDBです。

memcached と Redis のどちらかを選べます。  
シンプルな使い方で良いなら、memcached.  
より要件が増えてきたら、redis.  

リアルタイム処理に強い一方、永続的な保存を求めるなら別のDBが良いでしょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286147/ed7d54b1-bb38-25ed-5ede-e80197da6e10.png)

### MemoryDB

KVSシリーズ5つ目、MemoryDB.  
Redis のみ利用可能です。  

ElastiCache と比較して 書き込みの速度は遅くなるものの、  
分散保管により高い耐久性を提供してくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286147/0d22bd05-7287-1527-3127-dfab7dbd6b65.png)

### Neptune

その他シリーズ1つ目、Neptune. グラフDBです。  

SNSなど、複雑なつながりを管理するのが得意なDBです。  
このDBも、2022年4月に [無償利用枠](https://aws.amazon.com/about-aws/whats-new/2022/04/amazon-neptune-offers-free-trial/) の提供を開始しました。  
2022年7月の [Global Database対応](https://aws.amazon.com/jp/about-aws/whats-new/2022/07/amazon-neptune-global-database/) で、可用性面での信頼性も向上。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286147/ab6adc52-29da-b604-2b00-3408146d18ce.png)

### TimeStream

その他シリーズ2つ目、TimeStream. 時系列DBです。   

時系列処理が得意なDB. IoT とか 監視とかで活用されます。   
東京でも 2022年8月に利用可能になりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286147/33d2d780-41fe-9cf8-6f8a-bba894d69a1d.png)

### QLDB

その他シリーズ3つ目、QLDB. 台帳DBです。  

ブロックチェーン技術を用いた、意図しない変更がないことを保証してくれるDB.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286147/b50a371a-e6d1-0e02-9ed2-850026b00201.png)

## 最後に

思いつきでグラレコ描いてみて、Twitter上で好評いただいてそのノリで！での登壇でした。  
だいぶ触りだけの内容ですが、雰囲気掴むのにちょうど良いボリュームと思っていただける方がいれば  
ご紹介した甲斐があります。