RDS vs DynamoDB vs Redshift
― 構造化・非構造化・分析用データベースの違いをスッキリ整理 ―
AWSにはデータを扱うサービスがたくさんありますが、「RDS」「DynamoDB」「Redshift」はとくに混乱しやすいこの3つ。どれも"データベースサービス"ですが、目的も仕組みもまったく違います。
この記事では、保存するデータの性質(構造化/非構造化/分析用)の観点から違いを解説してみます!
一言でまとめると
- RDS → 構造化されたデータを正確に管理(伝統的なSQL型)
- DynamoDB → 柔軟な形式で超スケーラブル(NoSQL型)
- Redshift → 大量データを高速に分析(データウェアハウス型)
Amazon RDS(Relational Database Service)
リレーショナルデータベース(SQL)を簡単に使えるマネージドサービス。
- 表(テーブル)と行・列で構造化されたデータを扱う
- トランザクション(整合性・整った処理)が重要な業務に最適
- MySQL / PostgreSQL / Oracle / SQL Server / Aurora などに対応
- マルチAZ構成で高可用性を実現
- バックアップやパッチ適用はAWSが自動実行
よくある使い方
- 会計・人事・顧客管理システム
- ECサイトの商品・注文・在庫管理
- 企業内の基幹データ処理
注意点
- データ量が急増するとスケールに限界がある
- 柔軟なデータ構造には不向き
例えるなら:会社の台帳(すべての項目(列)がきっちり決まっていて、整合性がめっちゃ大事)
Amazon DynamoDB
NoSQL型のフルマネージドデータベース。
- スキーマレス(列の構造を事前に決めなくてOK)
- 自動でスケール(アクセス増えても落ちない)
- 高可用性(マルチAZ複製がデフォルト)
- 低レイテンシ(1桁ミリ秒)で読み書き可能
- データは「テーブル」「項目」「属性」で構成される
よくある使い方
- Webアプリやモバイルアプリのユーザーデータ
- セッション情報やリアルタイムデータ
- ゲーム・IoT・SNSなどアクセスが多い環境
注意点
- 複雑なJOINやSQLクエリはできない
- データ分析には不向き(DynamoDB Streams経由で分析可)
例えるなら:メモアプリ(必要な項目だけ自由に書ける。スピード重視、柔軟性高め)
Amazon Redshift
データウェアハウス(DWH)型の分析特化データベース。
- ペタバイト級データを超高速で集計・分析
- カラムナ型(列指向)でデータ圧縮・クエリ最適化
- S3やRDS、DynamoDBと連携してデータを取り込み可能
- BIツール(QuickSightやTableau)と相性が良い
- SQL互換(PostgreSQLベース)
よくある使い方
- 売上データ・アクセスログの分析
- ビジネスインテリジェンス(BI)ダッシュボード
- 機械学習前のデータ集約・前処理
注意点
- トランザクション処理には不向き(集計専用)
- 少量データならRDSやAthenaのほうが効率的
例えるなら:分析専用の巨大ホワイトボード(毎日の取引データをまとめて眺めるのに最適)
イメージで理解する
- RDS → データを「正しく保存・更新」する
- DynamoDB → データを「柔軟&スピーディに扱う」
- Redshift → データを「分析・集計する」
選び方の目安
- 整ったテーブルで正確に管理したい → RDS
- スピードとスケーラビリティを重視 → DynamoDB
- 大量データを一括分析したい → Redshift
試験(CLF)での頻出ポイント
- 「スキーマレスでスケーラブルなデータベースは?」→ DynamoDB
- 「構造化データをSQLで扱いたい」→ RDS
- 「データ分析・BI向けのデータベースは?」→ Redshift
まとめ
RDS、DynamoDB、Redshiftは、どれも"データベースサービス"ですが、目的がまったく異なります。
- RDS → トランザクション処理(保存の正確さ)
- DynamoDB → 柔軟性・リアルタイムスピード
- Redshift → ビッグデータ分析