その他のデータベース(Redshift / DocumentDB / Neptune 等)
AWS には、用途に合わせて作られたデータベース(目的別データベース)がたくさんあります。SAA では細かい設定よりも、「問題文の要件からどのサービスを選ぶか」が問われます。このページでは、RDS・Aurora・DynamoDB・ElastiCache 以外の試験対象のデータベースと、分析でよく比べられるサービスを、選び方の目線で整理します。
ひとことで言うと: データの形と使い方(集計・つながり・JSON・全文検索など)に合わせて、専用のデータベースを選びます。
たとえるなら、料理に合わせて包丁を使い分けるようなものです。どれでも切れなくはないですが、刺身には刺身包丁、パンにはパン切り包丁を使うと速くきれいに仕上がります。
このページで押さえる論点
データベースの種類と目的別データベース
1 つのデータベースですべてをこなそうとすると、苦手な処理で遅くなったり高くついたりします。AWS では、データの形と問い合わせ方に合わせて目的別のデータベースを選ぶのが基本の考え方です。試験ガイドでも「費用対効果の高いデータベースタイプ(時系列形式、列指向形式など)を決定する」ことが求められています。
| 種類 | データの形 | AWS のサービス |
|---|---|---|
| リレーショナル | 表(行と列)。SQL・JOIN・トランザクション | RDS、Aurora(RDS と Aurora) |
| キーバリュー | キーと値の組 | DynamoDB(DynamoDB) |
| インメモリ | メモリ上のキーと値 | ElastiCache(ElastiCache) |
| データウェアハウス(列指向) | 分析用に大量のデータを列ごとに保存 | Redshift |
| ドキュメント | JSON のような入れ子のデータ | DocumentDB |
| グラフ | 点(人・商品)と線(友達・購入)のつながり | Neptune |
| ワイドカラム | 行ごとに列が変わる大量の書き込み向けの表 | Keyspaces |
| 検索 | 全文検索用の索引 | OpenSearch Service |
| 時系列 | 時刻付きの計測値(センサー・メトリクス) | Timestream |
業務の処理(注文の登録など、少量のデータを頻繁に読み書きする処理)を OLTP、大量のデータを集計して傾向を見る処理を OLAP(分析)と呼びます。RDS・Aurora・DynamoDB は OLTP 向け、Redshift は OLAP 向けです。
データウェアハウス: Amazon Redshift
Amazon Redshift は、ペタバイト規模まで扱えるフルマネージドのデータウェアハウス(分析用に大量のデータを集めて保存するデータベース)です。SQL で問い合わせができ、既存の BI ツール(グラフや表で分析するツール)とつなげられます。
Redshift が集計に強いのは、データを列指向(カラムナ)で保存するからです。通常のデータベース(行指向)は 1 行分のデータをまとめて保存しますが、列指向は同じ列の値をまとめて保存します。「100 列のうち売上と日付の 2 列だけを 1 億行分集計する」ような分析では、必要な列だけを読めばよいので、読み取る量が大きく減ります。同じ種類の値が並ぶので圧縮も効きます。
| 機能 | 内容 |
|---|---|
| Redshift Spectrum | S3 にあるデータを Redshift にロードせずに、そのまま SQL で問い合わせる。Redshift 内のテーブルと組み合わせることもできる |
| Redshift Serverless | クラスターの設計なしで使え、容量は自動でスケール。使っていない間は課金されない。予測できない・たまにしか使わない分析に向く |
| 自動スナップショット | 既定の保持期間は 1 日(最大 35 日)。RA3 ノードでは無効にできない |
| スナップショットのリージョン間コピー | スナップショットを自動で別のリージョンにコピーでき、災害対策に使える |
Redshift は分析用なので、Web アプリの注文処理のように 1 件ずつ頻繁に書き込む用途には向きません。業務データは RDS や DynamoDB に保存し、分析用にまとめて Redshift に取り込むのが基本の形です。
Redshift と Athena の使い分け
Amazon Athena は、S3 にあるデータを標準の SQL でそのまま問い合わせるサーバーレスのサービスです。データのロードも、サーバーの準備もいりません。料金は実行したクエリとスキャンしたデータ量に応じてかかります。Athena の詳細は分析の分野で扱いますが、Redshift との使い分けはよく問われます。
| 観点 | Amazon Redshift | Amazon Athena |
|---|---|---|
| データの置き場所 | Redshift に取り込む(Spectrum なら S3 も読める) | S3 に置いたまま |
| 向く使い方 | BI ツールから毎日のように行う複雑な集計、大量のデータを繰り返し分析 | たまに行う分析、ログの調査などのアドホック(その場限り)な問い合わせ |
| 料金の考え方 | クラスターの時間(Serverless は使った容量) | スキャンしたデータ量 |
| 準備 | クラスターまたは Serverless のワークグループを作る | S3 のデータにテーブル定義を付けるだけ |
Athena でスキャン量(=料金)を減らすには、データを列指向の形式(Parquet など)に変換したり、日付などでパーティション(フォルダ分け)したりします。
ドキュメントデータベース: Amazon DocumentDB
Amazon DocumentDB(MongoDB 互換)は、JSON 形式のドキュメントを保存・検索するフルマネージドのデータベースです。MongoDB と互換性があるので、既存の MongoDB のアプリのコードや、ドライバー・ツールをそのまま使えます。商品カタログやユーザープロフィールのように、項目ごとに持つ情報が違う入れ子のデータに向きます。
- しくみは Aurora に似ていて、データは 3 つの AZ に 6 つのコピーで保存されます。ストレージは 10 GB 単位で自動的に増えます。
- 読み取り用のレプリカを最大 15 台置けます。プライマリに障害が起きると、レプリカへ自動でフェイルオーバーします。
- ポイントインタイムリカバリ(最大 35 日)と、KMS による保管時の暗号化に対応します。
「MongoDB を AWS に移したい」「運用の手間を減らしたい」という要件なら DocumentDB です。DynamoDB もドキュメントを保存できますが、MongoDB のアプリをそのまま動かすことはできません。
グラフデータベース: Amazon Neptune
Amazon Neptune は、データ同士のつながりを保存して、たどるのが得意なグラフデータベースです。グラフとは、人や商品などの「点」と、友達・購入などの「線(関係)」でデータを表す形です。
リレーショナル DB で「友達の友達の友達が買った商品」を探すと、JOIN を何段も重ねることになり遅くなります。Neptune はつながりをたどる処理に特化しているので、数十億の関係でもミリ秒単位で問い合わせられます。
- 主な用途: SNS(友達の推薦)、レコメンド(おすすめ)、不正検知(不審な取引のつながりを見つける)、ナレッジグラフ、ネットワークのセキュリティ分析
- 問い合わせ言語: Gremlin、openCypher、SPARQL
- 読み取り用のレプリカは最大 15 台。複数の AZ にデータをコピーし、自動でフェイルオーバーします。
ワイドカラムデータベース: Amazon Keyspaces
Amazon Keyspaces(Apache Cassandra 向け)は、オープンソースの Apache Cassandra と互換性のあるサーバーレスのデータベースです。Cassandra のクエリ言語(CQL)や既存のアプリのコード、開発者ツールをそのまま使えます。
サーバーのプロビジョニングやパッチ適用は不要で、テーブルはトラフィックに合わせて自動でスケールし、使った分だけ支払います。「自社で運用している Cassandra のクラスターを、運用の手間なく AWS に移したい」という要件で選びます。
全文検索・時系列: OpenSearch Service と Timestream
どちらも試験ガイドでは分析などの分野に入るサービスですが、「データベースの選択」の問題で選択肢に並ぶことがあるので、用途だけ押さえます。
| サービス | 用途 |
|---|---|
| Amazon OpenSearch Service | 全文検索(キーワードで商品や文書を探す)、ログ分析、アプリのリアルタイム監視、クリックストリーム分析。OpenSearch Dashboards で可視化できる |
| Amazon Timestream | 時系列データベース。IoT センサーの値やサーバーのメトリクスなど、時刻付きのデータを大量に保存・分析する。新しいデータはメモリに、古いデータは安いストレージに自動で移す |
「DynamoDB や RDS のデータを、キーワードで柔軟に検索したい」という要件では、データを OpenSearch Service にも送って検索に使う構成がよく出ます。
要件からデータベースを選ぶ
試験では、問題文の要件から「データの形」と「問い合わせ方」を読み取ってサービスを選びます。下のフローで、ここまでの内容を確かめてみましょう。
質問に答えてデータベースを選ぶ
保存したいデータと使い方を思い浮かべて「はい / いいえ」で答えてください。答えた経路が上から順に表示されます。
※簡略化しています: 代表的な選び方だけを分岐にしています。Timestream(時系列)、ElastiCache(キャッシュ)は分岐に含めていません。実際には、業務データは RDS や DynamoDB に置き、分析用に Redshift、検索用に OpenSearch Service へ送る、のように複数のサービスを組み合わせることがよくあります。
フローで省いた時系列データは Timestream、キャッシュは ElastiCache で扱います。
問題文のキーワード → 選ぶべき答え
| 問題文の言い回し | 答えと理由 |
|---|---|
| 「データウェアハウス」「ペタバイト規模の分析」「BI ツールで複雑な集計」 | Amazon Redshift。列指向で集計が速い |
| 「S3 のデータを Redshift にロードせずに問い合わせ」 | Redshift Spectrum |
| 「S3 のデータをサーバーなしで SQL 分析」「たまにしか実行しない」 | Amazon Athena。スキャン量に応じた料金 |
| 「MongoDB 互換」「JSON ドキュメント」「既存の MongoDB を移行」 | Amazon DocumentDB |
| 「ソーシャルネットワーク」「友達の友達」「不正検知のつながり」「レコメンド」 | Amazon Neptune(グラフ) |
| 「Apache Cassandra」「CQL」 | Amazon Keyspaces |
| 「全文検索」「ログの検索と可視化」 | Amazon OpenSearch Service |
| 「IoT センサーの時系列データ」「時刻付きのメトリクス」 | Amazon Timestream |
| 「データウェアハウスの容量を管理したくない」「使わない時間は課金なし」 | Redshift Serverless |
| 「データウェアハウスを別リージョンに復旧できるようにする」 | Redshift のスナップショットのリージョン間コピー |
引っかけポイント
- 「Web アプリの注文を 1 件ずつ Redshift に書き込む」→ ✕。Redshift は分析(OLAP)用。業務の処理(OLTP)は RDS・Aurora・DynamoDB
- 「大量データの分析に RDS のリードレプリカを使う」→ △。本番への影響は減らせるが、ペタバイト規模の集計なら列指向の Redshift が向く
- 「MongoDB のアプリを DynamoDB にそのまま移す」→ ✕。DynamoDB は MongoDB 互換ではない。コードを変えずに移すなら DocumentDB
- 「つながりを何段もたどる検索をリレーショナル DB の JOIN で」→ ✕(性能面)。関係をたどる問い合わせが中心ならグラフデータベースの Neptune
- 「S3 のログをたまに調べるために Redshift クラスターを常時起動」→ ✕(コスト面)。たまの分析なら Athena でスキャンした分だけ支払う
- 「キーワードの全文検索を DynamoDB の Scan で」→ ✕。全文検索は OpenSearch Service
まとめ: SAA 試験で押さえるポイント
- データの形と問い合わせ方に合わせて目的別のデータベースを選ぶ。業務処理(OLTP)と分析(OLAP)を分けて考える
- Redshift: 列指向のデータウェアハウス。大量データの集計・BI。S3 のデータは Spectrum で直接問い合わせ、容量管理なしなら Serverless
- Athena: S3 のデータをそのまま SQL で。サーバーレスで、スキャンしたデータ量に応じた料金
- DocumentDB: MongoDB 互換のドキュメント DB。3 AZ に 6 つのコピー、レプリカ最大 15 台
- Neptune: グラフ DB。SNS・レコメンド・不正検知など「つながり」をたどる問い合わせ
- Keyspaces: Cassandra 互換のサーバーレス DB(CQL)
- 全文検索・ログ分析は OpenSearch Service、時系列データは Timestream
確認問題
参考リンク
AWS 公式ドキュメント(外部サイトが開きます)。
- SAA-C03 試験ガイド: 対象の AWS サービス
- Amazon Redshift とは(ペタバイト規模のデータウェアハウス・Serverless)
- Redshift の列指向ストレージ
- Redshift Spectrum で S3 のデータを問い合わせる
- Redshift のスナップショット(自動スナップショットの保持期間)
- Redshift のスナップショットを別リージョンにコピー
- Amazon Athena とは
- Amazon DocumentDB とは(6 つのコピー・レプリカ最大 15 台・10 GB 単位の自動拡張)
- Amazon Neptune とは(問い合わせ言語・用途・レプリカ最大 15 台)
- Amazon Keyspaces とは
- Amazon OpenSearch Service とは
- Amazon Timestream とは