「AWSの代表的なデータベースサービスにDynamoDBとRDSがあるけど何が違う?」
「DynamoDBとRDSの違いを理解してAWS資格試験に合格したい!」
こんなお悩みは抱えていませんか?
AWSには似たようなサービスがいっぱいあって、それぞれの違いを理解するのって大変ですよね…
そこで今回は、普段仕事でたくさんのAWSサービスを扱っている私がDynamoDBとRDSの違いについて紹介していきます!
特に重要な比較ポイントが3つだけあるので、そこだけでも覚えていただけたら嬉しいです。
具体的にDynamoDBとRDSの比較ポイントとは、
1. NoSQL or リレーショナル
2. データ保存方法
3. ユースケース
の3点です。
この記事を読めば、DynamoDBとRDSの違いが一目瞭然になり、AWS資格試験でもデータベースに関する問題を落とさないようになれます。
一つずつ理解していき、違いをしっかり理解していきましょう!
NoSQL or リレーショナル
1つ目の比較ポイントは、「NoSQLデータベースか?それともリレーショナルデータベースか?」という点が挙げられます。
DynamoDBとRDSを比較する際に必ずと言っていいくらい、最初に出てくる違いです。
これだけは、何がなんでも絶対に覚えていきましょう!
DynamoDB
DynamoDBは、AWSが提供するNoSQLデータベースサービスです。
一般的にデータベースを操作する時は、SQLというクエリ言語を用いられますが、DynamoDBはSQLの代わりにAPIを使ってデータベースを操作します。
RDS
RDSは、AWSが提供するリレーショナルデータベースサービスです。
また、RDSはフルマネージドサービスであるため、パッチ適用やバックアップなどの運用管理を自身で行う必要がありません。(AWS側が自動でやってくれます!)
また、RDSはSQLを用いてデータベースを操作します。
データ保存方法
2つ目の比較ポイントとして、DynamoDBとRDSで「データの保存形式が違う」という点が挙げられます。それぞれのデータ保存形式のメリットも紹介していくので、一緒に覚えましょう。
DynamoDB
DynamoDBでは、データをキーバリューストア形式でデータベースに保存します。
キーバリューストア形式とは、Pythonの辞書型変数のようにデータをキーとバリューで紐づけて管理する方法のことです。
これにより、DynamoDBは関連性が低いデータセットでも目的のデータを取得することが可能になります。
RDS
一方RDSでは、データをテーブル形式でデータベースに保存します。
テーブル形式とは、Excelのようにデータを行と列で管理する方法のことです。
これの方法を利用することで、RDSはデータの検索が容易で、複雑な検索も可能にします。
ユースケース
3つ目の比較ポイントとして、「ユースケースごとにDynanoDBとRDSのどちらを採用するか」という点が挙げられます。
簡単に言うと…
可用性、拡張性が求められるとき → DynamoDBを採用
一貫性、原子性が求められるとき → RDSを採用
です。
この説明だけだと、理解するのに時間がかかってしまうと思うので、もう少し詳しく説明していきます。
DynamoDB
DynamoDBは、様々なデータ形式を用いている大量のデータセットを扱うときや高いスケーラビリティが求められるときに有効です。
またDynamoDBは、分散処理により、データ取得のスピードアップが望めます。
これによりリアルタイム処理を実現することが可能です。
そして、サーバーレスアーキテクチャを設計する際にもDynamoDBがよく採用されます。
RDS
RDSは、大量のデータ処理や高いトラフィックには弱いですが、整合性やトランザクション処理が必要なときによく採用されます。
整合性とは、複数のユーザーが同じデータを取得したときに、データに矛盾が生じないことです。
またトランザクション処理とは、複数の処理を一連の1つの処理と見なす仕組みのことです。もし、トランザクション処理中にエラーが起きたときには一連の処理を無かったことにできます。これにより、データの生合成を保つことができます。
さいごに
今回は「DynamoDBとRDSを使い分けるポイント」を3つの視点で比較して紹介してきました。
違いを理解して、最適なデータベースを選択できるようになりましょう!
また私のサイトでは、AWS初心者に向けて有益な情報を発信しています。
興味のある方は是非、覗いてみて下さい!
ご精読ありがとうございました!
コメント