はじめに
AWS Certified Cloud Practitionerでは、AWSの主要サービスを「何に使うのか」「似たサービスと何が違うのか」という観点で理解しておくことが重要です。この記事では、手書きメモに出てきやすい Amazon DynamoDB、AWS Database Migration Service(AWS DMS)、AWS Schema Conversion Tool(AWS SCT) を、初学者でも混同しにくいように整理します。
先に結論を書くと、次の3つで覚えると理解しやすいです。
- DynamoDB:高速に使えるフルマネージドなNoSQLデータベース
- AWS DMS:データベースのデータ移行を支援するサービス
- AWS SCT:異なるデータベースエンジンへ移るときのスキーマ変換を支援するツール
Amazon DynamoDBとは何か
Amazon DynamoDBは、AWSが提供するフルマネージドなNoSQLデータベースです。公式ドキュメントでは、キーバリュー型およびドキュメント型のデータモデルをサポートし、あらゆる規模で1桁ミリ秒のパフォーマンスを目指すサービスとして説明されています。
NoSQLを短く言うと
NoSQLは、従来のリレーショナルデータベース(RDB)のように表同士を複雑に結合して使う設計だけに限らないデータベースの考え方です。Cloud Practitionerでは、まず次の理解で十分です。
- RDSのようなRDBは、表の関係をしっかり整理して扱うのが得意
- DynamoDBのようなNoSQLは、必要なデータをすばやく取り出す設計が得意
DynamoDBの特徴
- フルマネージド:サーバーの管理やパッチ適用をAWSが担当する
- 高い拡張性:アクセス増加に対応しやすい
- 低レイテンシ:短い応答時間でデータ取得しやすい
- JOINを前提としない:RDBのような複雑な結合処理を中心に設計しない
初心者向けのイメージ
DynamoDBは、「このキーのデータをすぐ返してほしい」という使い方に強いサービスです。たとえば、次のような場面と相性がよくあります。
- ユーザーごとのショッピングカート
- ログインセッション情報
- ゲームのスコアやランキングの一部
- IoT機器ごとの最新状態
具体例
たとえばECサイトで、user123 のカート情報を毎回すばやく取得したい場合、user123 をキーとして保存しておけば、必要なデータへ高速にアクセスしやすくなります。Cloud Practitionerでは、DynamoDBを「大規模アクセスに強いAWSのNoSQLデータベース」として整理しておくと十分実戦的です。
AWS DMSとは何か
AWS Database Migration Service(AWS DMS)は、データベースをAWSへ移行したり、別の環境へ移したりするときに使うサービスです。公式には、リレーショナルデータベース、データウェアハウス、NoSQLデータベースなどの移行を支援するサービスとして説明されています。
DMSの役割を一言でいうと
「データを移す担当」です。
たとえば、オンプレミスのデータベースをAmazon RDSやAmazon Auroraへ移したいとき、AWS DMSを使うことで移行作業を進めやすくなります。
DMSが試験で重要な理由
Cloud Practitionerでは、AWS DMSの細かな設定よりも、次の理解が重要です。
- 既存データベースをAWSへ移行したいときに使う
- 本番停止時間をできるだけ短くする移行でよく使われる
- 初回の一括コピーだけでなく、変更分の継続反映にも使える
フルロードと継続レプリケーション
AWS DMSでは、まず既存データをまとめて移し、その後に発生した変更を追いかけて反映する使い方があります。公式ドキュメントでは、継続的な変更の複製を CDC(Change Data Capture) と説明しています。
引っ越しで例えると分かりやすいです。
- フルロード:最初に家具や荷物をまとめて新居へ運ぶ
- CDC:引っ越し中に増えた荷物や変更分だけを追加で新居へ送る
この仕組みにより、切り替え前に新旧環境の差分を小さくしやすくなります。
AWS SCTとは何か
AWS Schema Conversion Tool(AWS SCT)は、異なるデータベースエンジンへ移行するときに、スキーマやSQLの変換を支援するツールです。
スキーマとは
スキーマとは、データベースの設計図のようなものです。たとえば次のような定義が含まれます。
- テーブル定義
- 列の型
- インデックス
- ビュー
- 一部のSQLコードやデータベース機能
なぜSCTが必要なのか
たとえば、OracleからAurora PostgreSQLへ移る場合、データだけコピーしても、そのまま動くとは限りません。なぜなら、データベースごとに使える型やSQL構文、機能が異なるからです。そこで、AWS SCTが変換の下準備を助けます。
初心者向けのイメージ
- AWS SCT:設計図を新しい形式へ作り替える
- AWS DMS:中に入っているデータを運ぶ
この役割分担を理解すると、試験でも混乱しにくくなります。
DynamoDB・DMS・SCTの違いを一気に整理
| サービス | 主な役割 | 試験での覚え方 |
|---|---|---|
| Amazon DynamoDB | NoSQLデータベースとしてデータを保存・高速取得する | 高速・高スケールなフルマネージドNoSQL |
| AWS DMS | データベースのデータ移行を支援する | データを移す担当 |
| AWS SCT | 異なるDBエンジン間でスキーマ変換を支援する | 設計図を変換する担当 |
試験で狙われやすいポイント
- DynamoDBはNoSQLデータベースであり、RDSの代わりに「すべての業務システムで必ず使う」ものではない
- AWS DMSは移行サービスであり、通常の本番アプリの保存先データベースそのものではない
- AWS SCTはスキーマ変換を支援するが、データ本体の継続移行の主役はAWS DMSと整理すると覚えやすい
- 「オンプレミスのDBをAWSへ移す」「ダウンタイムを抑えて移行したい」といった問題では、AWS DMSが候補になりやすい
- 「高速なNoSQLデータベースを使いたい」という問題では、DynamoDBが候補になりやすい
よくある混同
1. DynamoDBとRDSの混同
RDSは主にリレーショナルデータベース、DynamoDBはNoSQLデータベースです。用途が重なる場面はありますが、設計思想が異なります。試験では「RDBが必要なのか」「NoSQLが向いているのか」を見分ける視点が重要です。
2. AWS DMSとAWS SCTの混同
この2つは一緒に登場しやすいですが、役割は別です。データ移行はDMS、スキーマ変換はSCTという切り分けで整理してください。
直前復習用まとめ
- DynamoDB = AWSのフルマネージドNoSQLデータベース
- DynamoDB = キーバリュー型・ドキュメント型をサポート
- DynamoDB = 高速で大規模アクセスに強い
- AWS DMS = データベース移行サービス
- AWS DMS = フルロードやCDCで移行を支援
- AWS SCT = 異なるDBエンジン間のスキーマ変換を支援
- DMSとSCTは併用されることがあるが、役割は同じではない
公式一次情報
- Amazon DynamoDB の概要:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html
- Amazon DynamoDB の機能紹介:https://aws.amazon.com/dynamodb/features/
- AWS DMS の概要:https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html
- AWS DMS の CDC(継続レプリケーション):https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html
- AWS DMS のベストプラクティス:https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html
- AWS Schema Conversion Tool の概要:https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html
