移行(DMS / MGN)

オンプレミスや他のクラウドで動いているシステムを AWS へ移すとき、データベースは AWS DMS(Database Migration Service)、サーバーは AWS Application Migration Service(MGN)を使います。SAA では「停止時間を最小にして移したい」「エンジンの違うデータベースへ移したい」といった要件から、正しいサービスと手順を選ぶ問題が出ます。

ひとことで言うと: データベースの中身を移すなら DMS(エンジンが違えばスキーマ変換も)、サーバーを OS・アプリごとそのまま移すなら MGN です。どちらも、移行元を動かしたままコピーし続け、最後に短時間で切り替えられます。

たとえるなら、DMS は「営業を続けながら、帳簿の中身を新しい帳簿に書き写していく係」、MGN は「お店の建物ごと、そっくりの複製を新しい土地に建てておく係」です。

このページで押さえる論点

移行サービスの全体像

何を移すかによって、使うサービスが分かれます。SAA-C03 の試験ガイドでも、移行のサービスとして DMS・Application Migration Service のほか、DataSync・Snow Family・Transfer Family が挙げられています。後の 3 つはファイルやオブジェクトのデータ移行用で、別ページ(データ移行)で扱います。

移すものサービス移したあとの姿
データベースのデータAWS DMSRDS・Aurora などの AWS のデータベース(EC2 上の DB も可)
データベースのスキーマ(エンジンが違う場合)DMS Schema Conversion、AWS SCT(Schema Conversion Tool)移行先エンジン用に変換されたテーブル定義など
サーバー(OS・アプリ・データを丸ごと)AWS Application Migration Service(MGN)EC2 インスタンス
ファイル・オブジェクトDataSync、Snow Family、Transfer Family などS3・EFS・FSx など

移行の進め方には、次のような種類があります。MGN の公式ドキュメントでも、まずリホストで AWS へ移し、その後にリプラットフォームやリファクタリングで作り変えていく進め方が紹介されています。

AWS DMS のしくみ

AWS DMS は、リレーショナルデータベース・データウェアハウス・NoSQL データベースなどのデータを、AWS へ(またはクラウドとオンプレミスの間で)移すサービスです。AWS 上のレプリケーションインスタンス(コピー作業をするサーバー)でレプリケーションのソフトウェアが動き、移行元から読んだデータを移行先へ書き込みます。

部品役割
レプリケーションインスタンスデータを読み書きしてコピーする作業役。マルチ AZ にすると、別の AZ にスタンバイが自動で用意される
ソースエンドポイント移行元のデータベースへの接続情報
ターゲットエンドポイント移行先のデータベースへの接続情報
レプリケーションタスク「どのテーブルを、どの方式(全ロード・CDC)で移すか」を決めた作業の単位

DMS は、移行先にテーブルと主キーがなければ自動で作ります。ただし作るのはデータを入れるための最小限の定義なので、エンジンの違う移行でスキーマ(テーブル定義や、ビュー・ストアドプロシージャなどのデータベースのオブジェクト)をきちんと変換したい場合は、次に説明する DMS Schema Conversion や AWS SCT を使います。

停止時間を短くする: 全ロード+CDC

DMS のタスクには 3 つの移行方式があります。試験で「ダウンタイム(停止時間)を最小にしたい」とあれば、全ロード+CDC が答えです。

方式何をするか向いている場面
全ロード(Full load)既存のデータを一度だけまとめてコピーするコピーが終わるまでアプリを止めてよい場合
全ロード+CDC全ロードをしながら移行元の変更を記録し、全ロードの後にその変更を反映、その後も変更を反映し続ける移行元を動かしたまま移し、最後に短時間で切り替えたい場合
CDC のみ移行元の変更(差分)だけを反映し続ける既存のデータは別の方法で移した場合や、継続的に同期したい場合

CDC(Change Data Capture: 変更データキャプチャ)は、移行元のデータベースで起きた変更(追加・更新・削除)を拾って、移行先に次々と反映する仕組みです。移行中も移行元のデータベースは普段どおり使えるので、アプリを止めるのは最後の切り替えのときだけで済みます。下の図で流れを確かめてみましょう。

再生型アニメ図解

全ロード+CDC で停止時間を短くする

アプリ 移行元 DB DMS 移行先 DB

※簡略化しています: 全ロードは実際にはテーブルごとに並行して進み、変更は DMS のメモリやディスクに一時的にためられます。移行先のスキーマの準備(DMS Schema Conversion など)や、切り替え前の動作確認の手順は省いています。

同種間移行と異種間移行

移行元と移行先のデータベースエンジンが同じか違うかで、手順が変わります。試験ガイドにも「異種間移行、同種間移行」という言葉が出てきます。

種類例手順
同種間移行(エンジンが同じ)オンプレミスの MySQL → RDS for MySQL、Oracle → RDS for Oracleスキーマはそのまま使えるので、DMS でデータを移す
異種間移行(エンジンが違う)Oracle → Aurora PostgreSQL、SQL Server → Aurora MySQL① DMS Schema Conversion(または AWS SCT)でスキーマを移行先のエンジン用に変換 → ② DMS でデータを移す

DMS Schema Conversion は DMS の機能で、移行元のスキーマを評価して移行の難しさを示し、移行先エンジンの形式へ自動で変換します。AWS SCT(Schema Conversion Tool)は、自分の PC にダウンロードして使う、同じ目的のツールです。どちらも「スキーマの変換」の担当で、データそのものを運ぶのは DMS です。

商用データベースのライセンス費用を減らすために、Oracle や SQL Server から Aurora(MySQL・PostgreSQL 互換)へ移す、というのが試験の定番シナリオです。この場合は異種間移行なので、スキーマ変換と DMS の 2 つがセットで答えになります。

AWS Application Migration Service(MGN)

AWS Application Migration Service(MGN) は、物理サーバー・仮想マシン・他のクラウドのサーバーを、作りを変えずに AWS へ移す(リホストする)ためのサービスです。現在の公式ドキュメントでは「AWS Transform MGN」という名前になっていますが、試験ガイドでは「AWS Application Migration Service」と書かれています。

DMS が「データベースの中のデータ」を移すのに対して、MGN は「サーバー丸ごと」を移します。データベースが入ったサーバーを MGN で丸ごと EC2 に移すこともできますが、その場合、移行後もデータベースの運用(パッチ当てやバックアップ)は自分で行うことになります。「マネージドなデータベース(RDS など)へ移したい」なら DMS を選びます。

要件から移行サービスを選ぶ

下のフローチャートで、何を移すかから使うサービスを選ぶ練習をしてみましょう。

比較・選択フローチャート

質問に答えて移行サービスを選ぶ

移したいものを思い浮かべて「はい / いいえ」で答えてください。答えた経路が上から順に表示されます。

    ※簡略化しています: 移行の計画づくり(どのサーバーをどの順に移すかの調査)や、データ量・回線の太さによる転送方法の違いは分岐に含めていません。

    問題文のキーワード → 選ぶべき答え

    問題文の言い回し答えと理由
    「オンプレミスの DB を RDS に移行」「移行中も移行元 DB を使い続ける」AWS DMS
    「ダウンタイムを最小限に DB を移行」DMS の全ロード+CDC。変更を反映し続け、最後に切り替える
    「Oracle から Aurora PostgreSQL へ」「エンジンの異なる DB へ移行」DMS Schema Conversion(または AWS SCT)でスキーマ変換 + DMS でデータ移行
    「MySQL から RDS for MySQL へ」(同じエンジン)AWS DMS(スキーマ変換は不要)
    「商用 DB のライセンス費用を削減したい」Aurora などへの異種間移行(スキーマ変換+DMS)
    「サーバーを変更せずにそのまま AWS へ」「リホスト」「lift and shift」AWS Application Migration Service(MGN)
    「多数の VMware の仮想マシンを、停止時間を最小にして EC2 へ」MGN。ブロック単位の継続的なレプリケーションで、切り替えは通常数分
    「移行元と移行先を継続的に同期しておきたい」DMS の CDC
    「ファイルサーバーのデータを S3・EFS へ」DataSync など(DMS・MGN ではない)

    引っかけポイント

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

    確認問題

    参考リンク

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