AWS Database Migration Service & AWS Schema Conversion Tool

# AWS Database Migration Service

https://d1.awsstatic.com/webinars/jp/pdf/services/20170919_AWS-BlackBelt-DMS.pdf

## AWS DMS の立ち位置

  • 計画
  • 移行
    • AWS Database Migration Service
    • AWS Schema Conversion Tool
  • 運用

 

## AWS DMSとは

  • 既存のデータベースを最小ダウンタイムでマイグレーションするサービス
  • 異種プラットフォームへの移行にも対応
  • アプリケーションを稼働したまま移行も可能

 

## AWS DMS 特徴

  • 最小限のダウンタイム
  • 簡単
  • 豊富な対応プラットフォーム
  • 高い信頼性
  • コスト

 

## AWS DMS の使い方

 

## AWS Schema Conversion Tool とは

ソースDBスキーマ、ビュー、ファンクション、ストアドプロージャーの大部分を自動的にターゲットDB互換フォーマットに変換できるデスクトップアプリケーション

 

## AWS Schema Conversion Tool の特徴

  • 手動変換の補助
    • アクション可能なエラーメッセージ
  • 評価レポートの作成
    • 何割が自動変換可能なのかの見積もり
    • 変換工数の事前見積もりが可能に
  • アプリケーションSQLに対応
    • アプリケーションコードをスキャンして変換
  • 豊富な対応プラットフォーム

 

## 利用例

  • Schema Conversion Tool でアプリケーションの変換と事前見積もりを行い、AWS DMS で移行
  • 複数のDBAWS DMS で統合
  • 本番環境用のAurora から複数環境へデータレプリケーション
  • DMS脳死で使うのではなく、停止時間が取れるなどの理由でダンプなどからリストアした方がシンプルになることもある

 

## 利用の流れ

  1. SCT でテーブル定義とPK制約を移行
  2. DMSFullLoad + CDC開始
  3. FullLoad 完了後にセカンダリインデックスを作成
  4. CDCLatency が小さくなったタイミングでアプリからの書き込みを停止(ダウンタイム開始)
  5. マーカーをソースDBInsert
  6. マーカーのターゲットDB到着を確認
  7. アプリがターゲットDBに接続(ダウンタイム終了)

 

## AWS DMS の説明

  • 移行タイプ
    • 既存データを完全に移行(FullLoad)
      • 並列に各テーブルから1万行ずつ変換&移行
    • データ変更のみをレプリケートする(Change Data Capture
    • 既存のデータを移行して、継続的な変更をレプリケート
  • 監視
    • 移行時には監視をしておくことでパフォーマンス問題に対処しやすい(高い場合にはより大きいインスタンスへ)
      • CPU
      • メモリ
      • ネットワーク帯域
  • FullLoad Change Data Capture の動作の概要を理解しておくことでチューニングが行いやすくなる

 

## AWS Schema Conversion Tool の説明

  • Source target のサポートしている組み合わせが存在
  • データ変換時にマッピングルールをカスタムすることができる(e.g. データタイプの変更)
  • データをCSV形式にアンロードするエージェントもある。出力したものはS3UPしたり、Snowball 経由でS3にアップロードすることもできる

 

## 雑感

昨日学んだ、AWS Application Discovery Serviceで事前にアーキテクチャの概要を洗い出し、AWS Schema Conversion Tool を使い新DBへのアプリケーションコードの移行や、移行の際のデータの変換をおこないつつ、AWS DMS AWS Server Migration Service DBAPの移行を行うといった感じになりそう。

リフト&シフト案件が多い世の中でこのサービスを使っているところも多そう(事例としてあまり耳にしたことがないけど)。

AWSが顧客を増やすためのサービスの一つとして考えられる位置付け。