その他のデータベース(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 SpectrumS3 にあるデータを Redshift にロードせずに、そのまま SQL で問い合わせる。Redshift 内のテーブルと組み合わせることもできる
Redshift Serverlessクラスターの設計なしで使え、容量は自動でスケール。使っていない間は課金されない。予測できない・たまにしか使わない分析に向く
自動スナップショット既定の保持期間は 1 日(最大 35 日)。RA3 ノードでは無効にできない
スナップショットのリージョン間コピースナップショットを自動で別のリージョンにコピーでき、災害対策に使える

Redshift は分析用なので、Web アプリの注文処理のように 1 件ずつ頻繁に書き込む用途には向きません。業務データは RDS や DynamoDB に保存し、分析用にまとめて Redshift に取り込むのが基本の形です。

Redshift と Athena の使い分け

Amazon Athena は、S3 にあるデータを標準の SQL でそのまま問い合わせるサーバーレスのサービスです。データのロードも、サーバーの準備もいりません。料金は実行したクエリとスキャンしたデータ量に応じてかかります。Athena の詳細は分析の分野で扱いますが、Redshift との使い分けはよく問われます。

観点Amazon RedshiftAmazon Athena
データの置き場所Redshift に取り込む(Spectrum なら S3 も読める)S3 に置いたまま
向く使い方BI ツールから毎日のように行う複雑な集計、大量のデータを繰り返し分析たまに行う分析、ログの調査などのアドホック(その場限り)な問い合わせ
料金の考え方クラスターの時間(Serverless は使った容量)スキャンしたデータ量
準備クラスターまたは Serverless のワークグループを作るS3 のデータにテーブル定義を付けるだけ

Athena でスキャン量(=料金)を減らすには、データを列指向の形式(Parquet など)に変換したり、日付などでパーティション(フォルダ分け)したりします。

ドキュメントデータベース: Amazon DocumentDB

Amazon DocumentDB(MongoDB 互換)は、JSON 形式のドキュメントを保存・検索するフルマネージドのデータベースです。MongoDB と互換性があるので、既存の MongoDB のアプリのコードや、ドライバー・ツールをそのまま使えます。商品カタログやユーザープロフィールのように、項目ごとに持つ情報が違う入れ子のデータに向きます。

「MongoDB を AWS に移したい」「運用の手間を減らしたい」という要件なら DocumentDB です。DynamoDB もドキュメントを保存できますが、MongoDB のアプリをそのまま動かすことはできません。

グラフデータベース: Amazon Neptune

Amazon Neptune は、データ同士のつながりを保存して、たどるのが得意なグラフデータベースです。グラフとは、人や商品などの「点」と、友達・購入などの「線(関係)」でデータを表す形です。

リレーショナル DB で「友達の友達の友達が買った商品」を探すと、JOIN を何段も重ねることになり遅くなります。Neptune はつながりをたどる処理に特化しているので、数十億の関係でもミリ秒単位で問い合わせられます。

ワイドカラムデータベース: Amazon Keyspaces

Amazon Keyspaces(Apache Cassandra 向け)は、オープンソースの Apache Cassandra と互換性のあるサーバーレスのデータベースです。Cassandra のクエリ言語(CQL)や既存のアプリのコード、開発者ツールをそのまま使えます。

サーバーのプロビジョニングやパッチ適用は不要で、テーブルはトラフィックに合わせて自動でスケールし、使った分だけ支払います。「自社で運用している Cassandra のクラスターを、運用の手間なく AWS に移したい」という要件で選びます。

どちらも試験ガイドでは分析などの分野に入るサービスですが、「データベースの選択」の問題で選択肢に並ぶことがあるので、用途だけ押さえます。

サービス用途
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 のスナップショットのリージョン間コピー

    引っかけポイント

    まとめ: SAA 試験で押さえるポイント

    確認問題

    参考リンク

    AWS 公式ドキュメント(外部サイトが開きます)。