DEA / ドメイン1 データの取り込みと変換

AWS DMS

(Database Migration Service) は、データベースのデータを別のデータベースやデータストアへ移すサービスです。一度だけ全データを移す移行にも、変更を取り出して続けて反映する継続的な複製 () にも使えます。DEA では、 からや へデータを取り込む手段として、また異なるエンジン間でスキーマを変換する手段として出題されます。

Point
  • DMS = Database Migration Service の略です。
  • SCT = Schema Conversion Tool の略で、スキーマ (テーブル定義、ビュー、ストアドプロシージャなど) を別のエンジン向けに書き換える道具です。
  • 同種移行 (homogeneous) は同じエンジン同士 (MySQL → Aurora MySQL)、異種移行 (heterogeneous) は違うエンジン同士 (Oracle → Aurora PostgreSQL) です。
  • 和訳

概要

概要の図 異種移行のスキーマ変換 ソースOracle・SQL Server・MySQL・PostgreSQL・MongoDB など ソースエンドポイント レプリケーションインスタンスまたは DMS Serverless ターゲットエンドポイント Aurora・RDS S3 Parquet Kinesis Data Streams Redshift DMS Schema Conversionまたは AWS SCT

は、 (接続先の定義)、の実行環境、タスク (何をどう移すか) の3つで構成します。データを移すのは DMS、異種移行でスキーマを書き換えるのは DMS Schema Conversion または 、と役割が分かれます。


主要技術

①構成要素

要素内容
ソース読み取り元のデータベースの接続情報
ターゲットエンドポイント書き込み先の接続情報と、出力の設定 ( なら形式やパーティション)
インスタンスタスクを実行するマネージドの インスタンス。サイズとマルチ を選ぶ
Serverless容量をサービスが見積もり、自動で拡張・縮小する。インスタンスの選定やパッチ適用が不要
タスク / レプリケーション設定テーブルの選択、変換ルール、全ロードと の種類
実行環境向くケース
レプリケーションインスタンス負荷が安定、細かい設定と予測可能な費用
DMS Serverless負荷が変わる、容量の見積もりをしたくない、運用を減らしたい

レプリケーションインスタンスをマルチ AZ にすると、AZ の障害時にスタンバイへし、継続的な複製が止まりにくくなります。


②タスクの種類: 全ロードと CDC ⚠️ 頻出

種類内容使いどころ
全ロード既存のデータを一度に移す一回限りの移行、初期データの作成
全ロード + 全部移した後、進行中の変更を続けて反映ダウンタイムを最小にした移行、継続的な取り込み
CDC のみ変更だけを流す初期データを別の方法 (ネイティブのダンプなど) で用意した場合

CDC は、ソースのトランザクションログ (MySQL のバイナリログ、PostgreSQL の論理、Oracle の REDO ログなど) を読みます。そのため、ソース側でログの保持や論理レプリケーションの設定が必要です。

ソースCDC の前提となる設定
for MySQL自動バックアップを有効にする (バイナリログが有効になる)。パラメータグループで binlog_format を ROW、binlog_row_image を FULL にする。RDS はバイナリログをすぐ消すため、mysql.rds_set_configuration で binlog retention hours を延ばす
MySQLクラスターのパラメータグループで binlog_format を ROW にする
PostgreSQL論理レプリケーション (rds.logical_replication) を有効にする

⚠️ 頻出: 「本番 DB を止めずに移行し、切り替えの直前まで変更を反映し続けたい」は全ロード + CDC です。


③ターゲットごとの使い方

ターゲット使い方ポイント
への取り込み出力形式に CSV か を選ぶ。Parquet にすると で効率よく読める。日付でフォルダを分ける設定や、 の操作列 (I/U/D) を付けられる
変更をストリームとして配る変更を 、、 など複数の処理系で使う
DWH へのロード は内部で S3 に書いてから する
、、他の 移行・同期—

S3 へ CDC を書き出すと、変更はファイルとして追記されていきます。分析用のテーブルにするには、 や で などへ します (「変更データキャプチャ (CDC) と 」の章)。


④テーブルマッピングとデータの検証

機能内容
選択ルール移すスキーマやテーブルを含める・除く (ワイルドカード可)
変換ルールスキーマ名やテーブル名、列名の変更、列の追加・削除、小文字化
データ検証ソースとターゲットの行を比較し、不一致を報告する
移行前評価 (premigration assessment)データ型の非互換や設定の不足を移行前に見つける
LOB の設定大きなオブジェクト (LOB) の扱い。制限付き LOB モードは速いが、上限を超える部分は切り捨てられる

の変換ルールは名前の変更や列の追加など軽いものに限られます。複雑な変換や結合は、移した後で や の で行います。


⑤スキーマ変換: AWS SCT と DMS Schema Conversion ⚠️ 頻出

異種移行では、テーブル定義だけでなく、ビュー、ストアドプロシージャ、関数、トリガーもターゲットのエンジンの文法へ書き換える必要があります。 自体はスキーマのコード (プロシージャなど) を変換しません。

道具形態特徴
DMS Schema ConversionDMS のコンソールで使うマネージドの機能評価レポートで手作業が必要な箇所を示し、スキーマを変換してターゲットへ適用する。生成 AI による変換の補助もある
自分の PC やサーバーにインストールするデスクトップアプリ対応するソースとターゲットの組み合わせが多い。 (Oracle、Teradata、Netezza など) から への変換にも使う
⑤スキーマ変換: AWS SCT と DMS Schema Conversion ⚠️ 頻出の図 評価レポート自動変換できる割合 スキーマ変換DMS Schema Conversion / SCT 手作業で残りを修正 ターゲットへ適用 DMS で全ロード + CDC

同種移行 (例: MySQL → MySQL) ではスキーマ変換はほぼ不要で、ネイティブのツール (ダンプや) や DMS の同種データ移行も選べます。

⚠️ 頻出: 「Oracle から Aurora PostgreSQL へ移行。ストアドプロシージャも変換したい」は、DMS Schema Conversion (または AWS SCT) でスキーマを変換し、DMS でデータを移す組み合わせです。DMS だけではプロシージャは変換されません。


⑥ネットワークとセキュリティ

項目内容
配置インスタンスは 内。のソースへは か で到達させる
接続許可ソース DB のファイアウォールやで、レプリケーションインスタンスからの接続を許可する
認証情報のパスワードを で管理できる
暗号化保管時は 、転送中は /

試験対策

①判断マトリクス

問題文のキーワード選ぶ機能
DB を止めずに移行、変更も反映し続ける全ロード +
のデータを のへ、 で分析 → S3 ()
DB の変更を複数の処理系へストリームで配るDMS →
移行の容量を見積もりたくない、運用を減らすDMS Serverless
複製を の障害で止めないマルチ AZ のインスタンス
異種移行でプロシージャも変換DMS Schema Conversion /
DWH (Teradata など) から へスキーマ変換AWS SCT
移したデータが正しいか確認DMS のデータ検証
移行前に非互換を見つける移行前評価
→ Redshift を運用最小で継続同期DMS ではなく 統合を検討

②よくある誤答

  • がストアドプロシージャも変換すると考えること。スキーマのコードは DMS Schema Conversion か です。
  • DMS の変換ルールで複雑な結合や集計を行おうとすること。移した後で や で行います。
  • に必要なソース側の設定 (バイナリログの保持など) を忘れること。
  • / から への継続的な同期に、自分で DMS のパイプラインを組むことを最初に選ぶこと。運用最小なら 統合です。

参考文献

  1. ※1出題比率: AWS 公式の試験ガイドに記載された、採点対象の設問のうちその分野が占める割合です。

検索

キーワードを入力してください