AWS認定資格 WEB問題集&徹底解説
ソリューションアーキテクト-プロフェッショナル
AWSサービスの一つであるAWS Database Migration Service (AWS DMS)はどんな内容なのでしょうか?また、AWS認定資格のソリューションアーキテクト-プロフェッショナル(SAP)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
1. サービス概要
AWS DMS(Database Migration Service)は、オンプレミスや他クラウドのデータベースをAWSに安全・迅速に移行するマネージドサービスです。移行中も元のデータベースは稼働し続けるため、ダウンタイムを最小化して移行できます。
同種データベース間の移行(Oracle → RDS Oracle)と、異種データベース間の移行(Oracle → Amazon Aurora PostgreSQL)の両方をサポートします。異種移行時はスキーマ変換にAWS Schema Conversion Tool(SCT)を併用します。
2. 主な特徴と機能
2.1 移行タイプ
- 全ロード(Full Load): ソースDBの全データをターゲットDBに一括コピー。移行完了後にアプリケーションを切り替え。
- 全ロード + CDC(Change Data Capture): 全ロード中および完了後に、ソースDBへの変更(INSERT/UPDATE/DELETE)をリアルタイムにターゲットDBに継続レプリケート。ダウンタイムなし移行に最適。
- CDCのみ(継続的レプリケーション): 既存の移行済みDBへの差分変更を継続的にレプリケート。データベースのレプリケーションや継続的な同期に使用。
2.2 構成要素
- レプリケーションインスタンス: DMSが動作するEC2インスタンス(マネージド)。移行処理を実行する中核。
- ソースエンドポイント: 移行元データベースの接続情報(ホスト・ポート・認証情報)。
- ターゲットエンドポイント: 移行先データベースの接続情報。
- レプリケーションタスク: 移行設定(移行タイプ・テーブルマッピング・変換ルール)を定義して実行。
2.3 対応ソースDB(主要)
Oracle・SQL Server・MySQL・PostgreSQL・MariaDB・MongoDB・SAP・DB2・Sybase・Amazon Aurora・Azure SQL等。
2.4 対応ターゲットDB(主要)
Amazon RDS(全エンジン)・Aurora・Redshift・DynamoDB・S3・OpenSearch・Kinesis Data Streams・DocumentDB・Neptune等。
2.5 AWS SCT(Schema Conversion Tool)
異種データベース移行時(例: OracleからAurora PostgreSQL)にスキーマ・ストアドプロシージャ・関数を自動変換するローカルツール。変換不可な部分はレポートで示しアプリコードの修正箇所を明示します。
3. アーキテクチャおよび技術要素
- AWS SCTでソースDBのスキーマをターゲットDB向けに変換・ターゲットDBに適用(異種移行時)。
- DMSレプリケーションインスタンスを作成(ソースDBとターゲットDBの両方にアクセスできるサブネットに配置)。
- ソースエンドポイント・ターゲットエンドポイントを作成して接続テスト。
- レプリケーションタスク(Full Load + CDC)を作成・開始。
- レプリケーションが追いついたらアプリを新DBに切り替え→DMS停止。
4. セキュリティと認証・認可
- 転送時暗号化: ソース/ターゲットDBとの通信をSSL/TLSで暗号化。
- 保存時暗号化: レプリケーションインスタンスのストレージをKMSキーで暗号化。
- VPC配置: レプリケーションインスタンスをVPCサブネット内に配置。プライベートネットワーク経由でDB接続(インターネット非経由)。
- Secrets Manager統合: DB認証情報をSecrets Managerに格納してDMSエンドポイントから参照(パスワードのハードコード回避)。
5. 料金形態
- レプリケーションインスタンス: EC2インスタンスタイプに応じた時間課金(移行中のみ起動することでコスト削減)。
- データ転送: AWSへのインバウンドデータ転送は無料。アウトバウンドは通常料金。
- ストレージ: レプリケーションインスタンスのストレージ(GB/月)。
6. よくあるアーキテクチャ・設計パターン
- ダウンタイムなし移行(Full Load + CDC): 全ロードでデータをコピーしながらCDCで差分を継続同期→レプリケーションが追いついたら瞬時にアプリを切り替え。本番環境のダウンタイムを数分以内に抑える。
- 異種DB移行(Oracle → Aurora PostgreSQL): AWS SCTでスキーマ・プロシージャを変換→DMSでデータを移行。OracleライセンスコストをAuroraで削減。
- 継続的なS3への同期: RDS/AuroraのデータをDMS CDCでS3に継続的にレプリケートしてデータレイクを最新状態に維持。
7. 設定・デプロイ手順(ハンズオン例)
- DMSコンソールで「レプリケーションインスタンスの作成」→インスタンスクラス・サブネットグループ・マルチAZを選択。
- 「エンドポイントの作成」→ソースDB(種類・ホスト・ポート・認証情報)を登録。ターゲットDB(RDS Aurora等)も同様に登録。
- 「データベース移行タスクの作成」→移行タイプ(Full Load + CDC)・テーブルマッピングを設定。
- タスク開始→AWS Management Consoleでレプリケーション状況を監視。
- レプリケーションラグがほぼゼロになったらアプリの接続先を新DBに切り替え→タスクを停止・インスタンスを削除。
8. 試験で問われやすいポイント
8.1 移行タイプ
- Q: DMSでダウンタイムを最小化してDB移行するには?
A: 「Full Load + CDC(継続的変更レプリケーション)」を使用。全ロード中も変更をキャプチャし、ラグがゼロになったタイミングで切り替え。
8.2 異種DB移行とSCT
- Q: Oracle から Amazon Aurora PostgreSQLへの移行で使うツールは?
A: AWS SCT(Schema Conversion Tool)でスキーマ変換 + AWS DMS でデータ移行の2ステップ。同種DB移行(MySQL→RDS MySQL)ではSCTは不要。
8.3 DMSの構成要素
- Q: AWS DMSの主要な3つの構成要素は?
A: レプリケーションインスタンス(処理エンジン)・ソースエンドポイント(移行元DB接続情報)・ターゲットエンドポイント(移行先DB接続情報)。これらを組み合わせてタスクを実行。
8.4 ターゲットとしてのS3・Kinesis
- Q: DMSのターゲットとしてS3やKinesisは使えるか?
A: 使える。RDS/Aurora → S3(データレイク構築)、RDS → Kinesis Data Streams(リアルタイムストリーミング)がDMSのターゲットとして対応。