AWSのRDSやDynamoDBといったDBサービスの各種特徴まとめ

RDS
スポンサーリンク

AWSのデータベースサービスって、
いっぱいあって何を使っていいかわかりませんよね?

「Aurora?」
「DynamoDB??」

いっぱいあり過ぎて、何をどう使うのかがわからない。

「よくわからないから、とりあえず一番使われているRDSを使うか・・・」
ということが多いと思います。

今回はそんなAWSのDBサービスについて、
各種特徴をわかりやすく解説していきたいと思います。

AWSのDBサービス一覧

AWSにはどのようなデータベースのサービスがあるのでしょうか?
まずは一覧を書き出してみたいと思います。

(※2019年1月現在のサービスです。)

  1. RDS
  2. DynamoDB
  3. ElastiCache
  4. Neptune
  5. Amazon Redshift
  6. Amazon DocumentDB

さらに・・・

「Amazon Timestream」と「Amazon Quantum Ledger Database」
というデータベースも現在(2019.1時点)プレビュー(ベータ版?)版としてありましたが、
こちらはまだ正式リリースされていないものですので、対象外とさせていただきます。

「あれ?Auroraは?」
と、思われた方もいらっしゃるかと思います。

AWSの人気サービスの「Aurora」は、データベースエンジンの一つという括りでして、
RDSで選択できる「MySQL」や「PostgreSQL」と同列とお考えいただければよろしいかと思います。

各データベースサービスの特徴

では、各データベースサービスの特徴概要をまとめてみます。

RDS

「MySQLやOracleといったRDBMSならコレ!」

言わずと知れたAWSでよく使われているDBサービス。

フルマネージド型のサービスであり、
対象としているデータベースの種類は、リレーショナルデータベース!

リレーショナルデータベースとは、
例えば異なるテーブルがIDなどのキーによって関連づいたような複雑なデータ構造が作れるもの。

トランザクションという論理的に一つにまとまった処理単位でデータが書き換えられるため、データの整合性が保証されている。

データの操作にはSQL言語を使う。

データの読み込み(参照系)については、スケールアウトができるものの、
基本的にスケーリングはスケールアップ(ダウン)となる。

データが膨大になればなるほど処理時間が長くなるのも特徴です。

DynamoDB

「高いスケーリング性+低レイテンシはコレ!」

フルマネージド型のサービス。

対象とするデータベースは、Key-Value型のデータベース。
ただし、JSONデータも格納できることから後述するドキュメント型データベースとも言えます。

Key-Value型のデータベースとは、
名前の通り「キー」と「値」がそれぞれ一対になっている以下のようなデータを対象としたデータベース。

例)お天気情報

キー:値
日付:2019年1月31日
天気:晴れ
気温:10℃

RDSとは異なり、スキーマ(DB)という概念がない。テーブル単位で作成する。
また、データが膨大になっても処理時間が遅くなるということはない。

スループットについては、お金を払えばどこまでだって上げられる。

低レイテンシで、かつデータが大きくなっても遅くなりづらいという特徴から、
スマホアプリのデータ蓄積等でよく使われている注目のサービス。

ちなみにNoSQL、つまりSQLでの操作ではないため、SQLを知らなくても操作が可能です。

ElastiCache

「高速な一時的データ保管といったらコレ!」

フルマネージド型のインメモリキャッシュ。

インメモリキャッシュとは、DBの参照系負荷を低減するため、
メモリ上にデータを保存し、高速にデータのやりとりを行うことです。

ただし、メモリ上のデータ保存のためノード障害の発生によりデータが吹っ飛ぶというリスクがあります。

低コストで利用が可能。

以下のようなケースで利用されます。

  • RDSの参照系のスループットを出すためのリードレプリカの代替
  • 一時的なデータ保存(セッション情報、アプリ情報)

エンジンは「Redis」と「Memcached」という2つのタイプがある。

Neptune

「レコメンドや経路などネットワーク的なデータ構造を対象とするならコレ!」

フルマネージド型のサービス。

RDSと何が違うって、そもそも対象としているデータベースが違う。

対象としているデータベースは、グラフ型データベース!

グラフ型データベースってあまり聞きなれない言葉ですよね?

グラフ型データベースとは、「オブジェクト」と「関係性」という2つの属性が基本となるデータ構造です。
人間関係、通信ネットワーク、レコメンデーションエンジンなど、ネットワーク構造をもつものを表現するのに適している。

リレーショナルデータベースでは複雑になってしまうが、
グラフ型データベースであれば簡単に、高速に扱うことが可能です。

出典:アマゾンウェブサービス

Amazon Redshift

「DWHやBIといった大規模分析用データベースの場合はコレ!」

フルマネージド型のサービス。

対象とするデータベースは、列指向データベース。
ペタバイト級の超大容量のデータも扱え、実際にはデータウェアウェアハウスとして分析系のデータベースとして使われます。

列指向データベース、これもあまり聞かない言葉ですよね。

実は列指向データベースの基礎となっているのは、リレーショナルデータベースです。

リレーショナルデータベースは、別名「行指向データベース」ともいいます。
リレーショナルデータベースが「行」であるのに対し、列指向データベースは「列」となります。

以下の表を例えとします。
売上金額について分析したいので、金額のデータだけ欲しいです。

この場合、行を対象とする行指向データベースでは、1行とってくるだけで様々なデータを取得しますよね?
金額についても取得しますが、同時にID、日付、品名、単価や数量まで取ってきてしまいます。

でも列指向データベースであれば、金額列だけを取ってこれます。列を対象としているからです。

もちろん行指向だって、特定の列を取ってくるようなSQLを書けばできます。
でも逆にいうと、行指向は、その手間をかけないと特定の列が取ってこれないんです。

その手間をかけるというのが、大量のデータになればなるほど負荷になってくるんです!

列指向データベースが分析系に強いと言われるのは、この考え方が根本にあります。

Amazon DocumentDB

「MongoDBからの移行といったらコレ!」

フルマネージド型のサービス。

MongoDBという有名なDBとの互換性をもっていて、
オンプレミスやEC2でMongoDBを運用していて、フルマネージドサービスに切り替えるということで、
Amazon DocumentDBへ移行させるというパターンを狙っているように思えます。

MongoDBからの移行ツールもありますので、移行するのは簡単です。

対象とするデータベースは、ドキュメント型データベース。

ドキュメント型データベースとは、JSONやXMLなど様々なデータを1つのドキュメントとしてそのまま格納できるデータベースです。

シンプルなため使いやすく、コンテンツの管理に向いています。

スケーラビリティが高いというのも特徴の一つです。


いかがでしたでしょうか?

さまざまなデータベースサービスがAWSにはありますが、
それぞれが独自の特徴を持っています。

今回の記事がデータベースの選定にお役立ちいただけたら幸いです。

以上、hidesanでした!

スポンサーリンク
RDS
Tech Dive
タイトルとURLをコピーしました