InfraAcademy

InfraAcademy Blog

RDSとDynamoDBの違いは?CLF-C02のデータベース問題を、表の形とサーバー管理の2点で見分ける

著者: ryu | #aws #データベース #RDS
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

この記事を共有

こんにちは、インフラエンジニアのryuです。

この記事は、AWSクラウドプラクティショナー(CLF-C02)の勉強をしていて、データベースの問題でRDSとDynamoDBのどちらを選べばいいのか迷ってしまう人に向けて書いています。

どちらもAWSのデータベースのサービスで、名前だけ覚えていると選択肢の中で区別がつきません。ですが、問題文の中には、どちらを選ぶべきかのヒントがたいてい入っています。

この記事では、そのヒントの読み取り方を先に整理してから、オリジナルの練習問題7問で確認していきます。CLF-C02全体の勉強の進め方は、CLF-C02の勉強方法の記事にまとめています。

CLF-C02でデータベースはどこまで問われる?

CLF-C02は4つの分野に分かれていて、データベースは「クラウドテクノロジーとサービス」の分野に入ります。この分野は配点の34%で、4分野の中でいちばん大きい分野です。

この分野の中に、AWSのデータベースサービスを識別するという項目があります。求められるのは、データベースを設計したりSQLを書いたりする力ではありません。問題文に書かれた要件を読んで、それに合うサービスを選べるかどうかです。

具体的には、次のようなことが問われます。

問われること 主なサービス
リレーショナルデータベースを選ぶ Amazon RDS、Amazon Aurora
NoSQLデータベースを選ぶ Amazon DynamoDB
自分でEC2に入れるか、マネージドを使うかの判断 EC2上のデータベース と RDS
データベースの移行 AWS Database Migration Service(DMS)

この記事では、この中でいちばん出やすいRDSとDynamoDBの区別を中心に、ほかのサービスも一緒に整理します。

RDSとDynamoDBの違いとは?

まずは、2つのサービスの違いを表で並べてみます。

比べるところ Amazon RDS Amazon DynamoDB
データベースの種類 リレーショナル(RDB) NoSQL(キーバリュー型・ドキュメント型)
データの持ち方 列が決まった表。複数の表をJOINで結合できる テーブルに項目(アイテム)を入れる。JOINは無い
問い合わせ SQL キーを指定して読み書きするのが基本
サーバーの管理 インスタンス(サーバーの大きさ)を選ぶ サーバーレス。インスタンスを選ばない
選べるエンジン MySQL、PostgreSQL、MariaDB、Oracle、SQL Server、Db2、Aurora DynamoDBのみ
向いている場面 既存の業務システム、表どうしの関係が大事なデータ アクセス数が多く、キーで素早く読み書きしたいデータ

この表の中で、問題を解くときに特に効くのは2行です。1つはデータの持ち方、もう1つはサーバーの管理です。

リレーショナルとNoSQLの違い

RDSが扱うリレーショナルデータベースは、Excelの表のように列があらかじめ決まった形でデータを持ちます。顧客の表と注文の表を分けておき、必要なときにJOINで結合して取り出す、という使い方ができます。

一方のDynamoDBは、NoSQLと呼ばれる種類のデータベースです。AWSの公式ドキュメントでは、キーバリュー型とドキュメント型のデータモデルに対応した、サーバーレスのNoSQLデータベースと説明されています。

DynamoDBでは、テーブルに入れる項目ごとに、パーティションキーなどのキーを必ず持たせます。キーを指定して読み書きするのが基本で、リレーショナルデータベースのようなJOINはありません。

問題文に「SQL」「JOIN」「既存のMySQL」「表どうしの関係」が出てきたらRDS。「キーバリュー」「NoSQL」「サーバーレス」「ミリ秒単位の応答」が出てきたらDynamoDB。まずはこの対応で読むと、多くの問題が解けます。

サーバーを管理するかどうかの違い

RDSは、AWSがハードウェアの準備やデータベースのソフトウェアのパッチ適用、バックアップなどを引き受けてくれるマネージドサービスです。ただし、作るときにはインスタンスクラス(CPUやメモリの大きさ)を選びます。つまり、サーバーの大きさを考える必要は残っています。

DynamoDBはサーバーレスなので、インスタンスを選ぶという作業そのものがありません。AWSの説明では、どんな規模でも1桁ミリ秒の性能を出せるとされています。

この違いから、問題文に「サーバーの管理をしたくない」「インスタンスのサイズを考えたくない」とあれば、DynamoDBのほうが合っていると読めます。

Amazon Auroraはどちらの仲間?

ここで迷いやすいのがAuroraです。AuroraはRDSで選べるエンジンの1つで、リレーショナルデータベースの仲間です。

AuroraはMySQLとPostgreSQLに互換性があり、クラウド向けにAWSが作ったデータベースです。AWSの公式ページでは、SysBenchなどのベンチマークで、同じようなハードウェアの標準のMySQLと比べて最大5倍、PostgreSQLと比べて最大3倍のスループットが出たと説明されています。

問題文のヒント 選ぶサービス
MySQLやPostgreSQLと互換性がある、高性能・高可用性のリレーショナルデータベース Amazon Aurora
OracleやSQL Serverなど、使い慣れたエンジンをそのまま使いたい Amazon RDS
NoSQL、キーバリュー型 Amazon DynamoDB

Auroraを見たら、NoSQLではなくリレーショナルの側だと覚えておきましょう。選択肢にAuroraとDynamoDBが並んでいても、SQLやMySQL互換の話ならAuroraを選びます。

RDSのMulti-AZとリードレプリカの違いとは?

RDSについては、Multi-AZとリードレプリカの区別もよく問われます。どちらもデータベースのコピーを持つ仕組みなので、名前だけだと混ざりやすいところです。

仕組み 目的 動き
Multi-AZ 可用性を上げる(障害に備える) 別のアベイラビリティーゾーン(AZ)にスタンバイを置き、障害時に自動で切り替える
リードレプリカ 読み込みの性能を上げる 読み取り専用のコピーを作り、読み込みの処理を分散する

問題文に「障害」「可用性」「自動フェイルオーバー」とあればMulti-AZ、「読み込みが多い」「読み取りの負荷を分散」とあればリードレプリカです。

AZそのものの考え方があいまいな人は、リージョン・AZ・エッジロケーションの違いを先に読んでおくと、Multi-AZの意味がつかみやすくなります。

一緒に出やすいデータベースのサービス

RDSとDynamoDB以外にも、データベースの問題で選択肢に並びやすいサービスがあります。すべてを深く覚える必要はなく、一言で何をするサービスかを言えれば十分です。

サービス 一言でいうと
Amazon Redshift 大量のデータを集計・分析するためのデータウェアハウス
Amazon ElastiCache よく使うデータをメモリに置いて、読み込みを速くするキャッシュ
Amazon DocumentDB MongoDB互換のドキュメントデータベース
Amazon Neptune 人やモノのつながりを扱うグラフデータベース
AWS DMS 既存のデータベースをAWSへ移行するサービス

また、EC2にデータベースのソフトウェアを自分で入れて動かすこともできます。この場合、OSやデータベースのパッチ適用、バックアップはすべて利用者の仕事になります。RDSを使えば、それらの多くをAWSに任せられます。

この違いは責任共有モデルの考え方とつながっていて、CLF-C02では「どこまでを利用者が管理するか」という形で問われます。EC2そのものについては、AWSのEC2とは?で説明しています。

サービスの数が多くて覚えきれないと感じている人は、AWSのサービスが多すぎて覚えられないときの記事で、グループに分けて覚える方法を紹介しています。

CLF-C02のデータベースの練習問題7問

ここからは練習問題です。問題文の中のヒントに線を引くつもりで読んでみてください。

問題1:既存の業務システムの移行

ある会社は、社内のサーバーで動いているMySQLのデータベースをAWSへ移したいと考えています。アプリケーションはSQLで複数の表を結合しており、できるだけ変更せずに使いたいです。また、データベースのパッチ適用やバックアップはAWSに任せたいです。最も適したサービスはどれですか。

  • A. Amazon DynamoDB
  • B. Amazon RDS
  • C. Amazon Redshift
  • D. Amazon ElastiCache

正解:B

MySQL、SQLで表を結合、パッチ適用やバックアップを任せたい、という条件から、マネージドのリレーショナルデータベースであるRDSが合います。DynamoDBはNoSQLでJOINが無いため、アプリケーションの大きな変更が必要になります。

問題2:サーバーを意識しないデータベース

ゲームのプレイヤーの情報を、プレイヤーIDをキーにして大量に読み書きしたいです。サーバーの台数やサイズを管理したくなく、どれだけアクセスが増えても速く応答させたいです。最も適したサービスはどれですか。

  • A. Amazon DynamoDB
  • B. Amazon RDS for Oracle
  • C. Amazon Aurora
  • D. EC2にインストールしたMySQL

正解:A

キーで読み書き、サーバーを管理したくない、アクセスが増えても速い、という条件はDynamoDBの特徴そのままです。B・Cはリレーショナルで、インスタンスを選ぶ必要があります。Dはサーバーの管理がすべて利用者の仕事になります。

問題3:MySQL互換の高性能なデータベース

MySQLと互換性があり、クラウド向けに作られた、高性能で可用性の高いリレーショナルデータベースのサービスはどれですか。

  • A. Amazon DynamoDB
  • B. Amazon Neptune
  • C. Amazon Aurora
  • D. Amazon DocumentDB

正解:C

AuroraはMySQLとPostgreSQLに互換性のある、AWSが作ったリレーショナルデータベースです。DynamoDBとDocumentDBはNoSQL、Neptuneはグラフデータベースです。

問題4:RDSの可用性を上げる

RDSで動かしているデータベースについて、AZの障害が起きても自動で切り替わるようにしたいです。どの機能を使えばよいですか。

  • A. リードレプリカ
  • B. Multi-AZ配置
  • C. Amazon CloudFront
  • D. Amazon ElastiCache

正解:B

Multi-AZは、別のAZにスタンバイを置き、障害時に自動で切り替える仕組みです。リードレプリカは読み込みの性能を上げるための仕組みで、目的が違います。

問題5:大量データの分析

数年分の売上データを集めて、部署ごとの傾向を集計・分析したいです。最も適したサービスはどれですか。

  • A. Amazon Redshift
  • B. Amazon DynamoDB
  • C. Amazon ElastiCache
  • D. AWS DMS

正解:A

大量のデータを集計・分析する用途にはデータウェアハウスのRedshiftが合います。ElastiCacheは読み込みを速くするキャッシュ、DMSは移行のためのサービスです。

問題6:EC2とRDSの管理の違い

データベースをEC2に自分でインストールして使う場合と比べて、Amazon RDSを使う場合にAWSが引き受けてくれる作業はどれですか。

  • A. データベースに入れるデータの内容の管理
  • B. データベースへのアクセス権限を誰に与えるかの決定
  • C. データベースのソフトウェアのパッチ適用
  • D. アプリケーションのSQLの修正

正解:C

RDSでは、データベースのソフトウェアのパッチ適用などをAWSが行います。データの中身、アクセス権限を誰に与えるか、アプリケーションの修正は、RDSを使っても利用者の責任です。

問題7:データベースの移行

社内で動いているデータベースを、停止時間をできるだけ短くしてAWSへ移したいです。最も適したサービスはどれですか。

  • A. AWS Database Migration Service
  • B. Amazon Redshift
  • C. Amazon Aurora
  • D. AWS CloudTrail

正解:A

データベースの移行にはDMSを使います。Auroraは移行先の候補にはなりますが、移行の作業をするサービスではありません。

InfraAcademyで続けて練習しよう

間違えた問題があれば、問題文のどの言葉を見落としたのかを確認してみてください。RDSとDynamoDBの問題は、ヒントになる言葉を拾えるかどうかでほぼ決まります。

実際のAWSのコンソールでRDSを作る流れを見てみたい人は、RDSの概要や作成方法の記事で手順を紹介しています。なお、AWSの無料利用枠は2025年7月15日に新しい仕組みに変わっているので、実際に作成する前に、AWSの公式ページで料金と無料枠の条件を必ず確認してください。

料金を気にせずに手を動かしたい人は、InfraAcademy のAWSの講座を使ってみてください。講座の中のシミュレーターで、AWSの操作を順番に練習できます。講座の順番はAWSのロードマップで確認できます。

問題演習を続けたい人は、トップページのInfraAcademy の資格模擬問題から「AWS認定 クラウドプラクティショナー模擬試験150問」を解けます。ほかのサービスの使い分けも確認したい人は、EC2とLambdaの違いやS3・EBS・EFSの違いもあわせて読んでみてください。

まとめ

CLF-C02のデータベースの問題で、押さえておきたいところを振り返ります。

  • RDSはリレーショナルで、SQLやJOINが使える。インスタンスの大きさは選ぶ
  • DynamoDBはサーバーレスのNoSQLで、キーで読み書きする。JOINは無い
  • AuroraはRDSのエンジンの1つで、MySQL・PostgreSQL互換のリレーショナルデータベース
  • Multi-AZは可用性のため、リードレプリカは読み込みの性能のため
  • 分析ならRedshift、キャッシュならElastiCache、移行ならDMS
  • EC2に自分で入れるとパッチ適用も利用者の仕事。RDSならAWSに任せられる

データベースの問題は、サービスの名前を覚えるより、問題文のヒントの言葉とサービスを結びつけておくほうが確実に点になります。

この記事の表を見返しながら、1問ずつ理由を言えるようにしておきましょう。合格に向けて、一緒に進んでいきましょう。

参考

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

株式会社InfraAcademy 代表 / エンジニア

大手メーカーでインフラエンジニアとして勤務した後、ベンチャー企業・スタートアップでフルスタックエンジニアを経験。その後、起業し学習サービス「InfraAcademy」を運営しています。
保有資格:ネットワークスペシャリストなど 運営会社:株式会社InfraAcademy

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る