2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

クラウド時代のデータ戦略:AWSデータベース・ストレージ完全攻略への道:Day 20 - データベース移行サービス:DMSでオンプレミスからAWSへ

Last updated at Posted at 2025-07-29

Day 20: データベース移行サービス:DMSでオンプレミスからAWSへ

皆さん、こんにちは!「AWSデータベース・ストレージ完全攻略」のDay 20へようこそ!

昨日のDay 19では、データ間の関係性分析に特化したグラフデータベース、Amazon Neptuneを学びました。これまでのDaysで、RDS、Aurora、DynamoDB、ElastiCache、Redshift、そして本日Neptuneと、AWSが提供する多様なデータベース・ストレージサービスを網羅してきました。これで、アプリケーションや分析ワークロードの要件に応じて適切なデータベースを選択する知識が身についたはずです。

しかし、これらの素晴らしいAWSデータベースサービスを利用するためには、多くの場合、既存のオンプレミス環境や他のクラウド上にあるデータベースからデータを移行する必要があります。手動での移行は複雑で時間もかかり、ダウンタイムのリスクも伴います。

今日のDay 20では、その課題を解決するためのAWSの専門サービス、 AWS Database Migration Service (DMS) に焦点を当てます。DMSがどのようにして多様なデータベース間の移行をシンプルかつ安全に行うのか、その仕組みと特徴を詳しく見ていきましょう。

Day 20_ データベース移行サービス:DMSでオンプレミスからAWSへ - visual selection.png


1. データベース移行の課題とDMSの役割

データベース移行は、単にデータをコピーするだけではありません。以下のような多くの課題が伴います。

  • 異種データベース間の移行: OracleからPostgreSQL、SQL ServerからAurora MySQLなど、異なるデータベースエンジン間でのスキーマやデータ型の変換が必要。
  • ダウンタイムの最小化: 移行中にアプリケーションの停止時間を最小限に抑える必要がある。
  • データ整合性: 移行中にデータが破損したり、不整合が生じたりしないことを保証する必要がある。
  • 複雑な設定と管理: 移行ツールのインストール、設定、監視、エラー処理など、専門知識と労力が必要。
  • ネットワークとセキュリティ: 大量のデータを安全かつ効率的に転送するためのネットワーク設定とセキュリティ対策。

AWS Database Migration Service (DMS) は、これらの課題を解決するために設計されたフルマネージドのサービスです。DMSは、多様なデータベースをソースおよびターゲットとしてサポートし、 継続的なデータレプリケーション(CDC: Change Data Capture) を可能にすることで、ダウンタイムを最小限に抑えた移行を実現します。


2. AWS Database Migration Service (DMS) の概要

DMSは、データベースの移行プロセスを簡素化、自動化し、ダウンタイムを最小限に抑えることを目的としています。

DMSの主な特徴:

  1. 多様なソースとターゲットのサポート:
    • ソース: オンプレミス、EC2、RDS、他のクラウド(Azure SQL Database, Google Cloud SQLなど)の多くのRDBMS(Oracle, SQL Server, MySQL, PostgreSQL, MariaDB, Db2, SAP ASEなど)、NoSQLデータベース(MongoDB, DynamoDBなど)、データウェアハウス(Redshiftなど)、S3、Kinesisなど。
    • ターゲット: RDS、Aurora、DynamoDB、Redshift、S3、OpenSearch Service、DocumentDB、Kinesisなど、AWSの主要なデータベース・ストレージサービス。
    • 同種移行 (Homogeneous Migration): ソースとターゲットのデータベースエンジンが同じ場合(例: RDS MySQLからAurora MySQL)。
    • 異種移行 (Heterogeneous Migration): ソースとターゲットのデータベースエンジンが異なる場合(例: OracleからAurora PostgreSQL)。DMSはスキーマ変換をサポートしませんが、後述のAWS SCTと連携します。
  2. 継続的なデータレプリケーション (CDC):
    • ソースデータベースから既存のデータを一度ロードするだけでなく、移行中にソースデータベースで発生する変更(挿入、更新、削除)をリアルタイムでキャプチャし、ターゲットデータベースに適用できます。
    • これにより、アプリケーションのダウンタイムを最小限に抑えつつ、データを移行できます(最終的な切り替え時のみ短時間の停止で済む)。
  3. フルマネージド:
    • 移行プロセスに必要なレプリケーションインスタンスのプロビジョニング、セットアップ、パッチ適用、監視、スケーリングなどはすべてAWSが担当します。
  4. 移行タイプ:
    • フルロードのみ (Full Load Only): 既存のデータのみを一度だけ移行します。
    • フルロード + CDC (Full Load + CDC): 既存のデータを移行した後、継続的に変更をレプリケートします。
    • CDCのみ (CDC Only): 既存のデータは手動で移行済みで、以降の変更のみをレプリケートします。
  5. 高可用性オプション:
    • レプリケーションインスタンスをMulti-AZでデプロイすることで、可用性を高めることができます。

3. DMSの主要なコンポーネント

DMSを利用して移行を実行するには、主に以下のコンポーネントを設定します。

a. レプリケーションインスタンス (Replication Instance)

  • DMSが移行を実行するために使用するEC2インスタンスです。
  • ソースデータベースからデータを読み込み、ターゲットデータベースにデータを書き込む処理を実行します。
  • インスタンスタイプ(CPU、メモリ)を選択し、移行するデータ量や変更頻度に応じて適切なサイズを選びます。
  • Multi-AZオプションを有効にすることで、可用性を高めることができます。

b. エンドポイント (Endpoints)

  • ソースエンドポイント: 移行元のデータベースへの接続情報(データベースの種類、サーバー名、ポート、ユーザー名、パスワードなど)を定義します。
  • ターゲットエンドポイント: 移行先のデータベースへの接続情報(データベースの種類、サーバー名、ポート、ユーザー名、パスワードなど)を定義します。

c. タスク (Tasks)

  • 実際のデータ移行とレプリケーションの定義です。
  • 以下の情報を設定します。
    • ソースエンドポイントターゲットエンドポイント
    • レプリケーションインスタンス
    • 移行タイプ:
      • 既存のデータ移行 (Migrate existing data)
      • 既存のデータ移行と継続的な変更レプリケーション (Migrate existing data and replicate ongoing changes)
      • 変更のレプリケーションのみ (Replicate data changes only)
    • テーブルマッピング: どのスキーマ、どのテーブルを移行するかを定義します。フィルタリングや簡単な変換(例: スキーマ名の変更)も可能です。
    • タスク設定: ログ設定、エラー処理、データ検証など、詳細な設定を行います。

4. 異種データベース移行におけるAWS Schema Conversion Tool (AWS SCT) との連携

DMSはデータ移行に特化しており、異なるデータベースエンジン間でのスキーマやコードの自動変換は行いません。異種データベース移行の場合、スキーマの変更、データ型のマッピング、ストアドプロシージャ、ファンクション、トリガーなどのデータベースコードの変換が必要になります。

そこで役立つのが、AWS Schema Conversion Tool (AWS SCT) です。

  • 役割: ソースデータベースのスキーマ、ビュー、ストアドプロシージャ、ファンクション、トリガーなどを自動的に分析し、ターゲットデータベースエンジンに適した形式に変換します。
  • 手動での介入: 完全に自動変換できない部分(難易度の高いSQL文や固有の機能など)は、SCTがレポートを作成し、手動での介入が必要な箇所を提示します。
  • 移行ワークフロー:
    1. AWS SCTでスキーマとコードを変換: ソースDBのスキーマとコードをSCTでターゲットDB用に変換し、ターゲットDBに適用します。
    2. AWS DMSでデータを移行: DMSを使用して、ソースDBからターゲットDBへデータを移行し、必要に応じてCDCで継続的なレプリケーションを設定します。

5. DMSを活用した移行シナリオ

a. 同種データベース移行 (Homogeneous Migration)

  • 例: オンプレミスのMySQLからAmazon RDS for MySQL、またはRDS for PostgreSQLからAurora PostgreSQLへ。
  • プロセス:
    1. DMSレプリケーションインスタンス、ソース/ターゲットエンドポイントを設定。
    2. DMSタスクを作成し、「既存のデータ移行と継続的な変更レプリケーション」を選択。
    3. タスクを開始し、フルロードが完了した後、CDCで変更がレプリケートされ続ける。
    4. アプリケーションの切り替え(DNS変更など)を行う。
    5. レプリケーションタスクを停止・削除。
  • 特徴: スキーマ変換が不要なため、比較的シンプルに移行できます。

b. 異種データベース移行 (Heterogeneous Migration)

  • 例: オンプレミスのOracleからAmazon Aurora MySQLへ。
  • プロセス:
    1. AWS SCT: ソースOracle DBのスキーマとコードを分析し、Aurora MySQL用のSQLスクリプトに変換。必要に応じて手動で調整。
    2. ターゲットDBへの適用: 変換されたスキーマとコードをAurora MySQLに適用。
    3. DMS設定: DMSレプリケーションインスタンス、ソースOracleエンドポイント、ターゲットAurora MySQLエンドポイントを設定。
    4. DMSタスク: タスクを作成し、「既存のデータ移行と継続的な変更レプリケーション」を選択。
    5. タスクを開始し、フルロード完了後、CDCで変更がレプリケートされ続ける。
    6. アプリケーションの切り替え(DNS変更など)。
    7. レプリケーションタスクを停止・削除。
  • 特徴: SCTとの連携が必要となり、変換作業とテストに時間と労力がかかりますが、大幅なダウンタイムなしに異なるDBエンジンへの移行が可能になります。

c. データレイクへの継続的なデータ取り込み

DMSは、データベース移行だけでなく、オンプレミスDBからS3やKinesisへの継続的なデータレプリケーションにも利用できます。

  • 例: オンプレミスOracle DBの変更ログをリアルタイムでS3にストリーミングし、データレイクに継続的にデータを取り込む。
  • プロセス:
    1. ソースをOracle DB、ターゲットをS3またはKinesisに設定したDMSタスクを作成。
    2. DMSがOracle DBの変更をキャプチャし、指定されたフォーマットでS3に書き込むか、Kinesisストリームに送信。
  • 活用: リアルタイム分析、機械学習モデルの更新データソース、監査ログの収集。

6. AI企業におけるDMSの活用例

AI企業では、既存のデータソース(オンプレミスDB、SaaSデータなど)をAWSの分析環境やMLサービスに統合する必要が多く、DMSはそのための重要なブリッジとなります。

  • 既存データソースのデータレイクへの統合:
    • オンプレミスの業務データベース(顧客データ、取引データなど)をDMSで継続的にAmazon S3にレプリケートし、データレイクの基盤とする。これにより、MLモデルの学習データや特徴量エンジニアリングのソースとして利用可能になります。
  • RDBからの特徴量ストアへの移行:
    • 既存の顧客データや製品データがRDBMSにある場合、それをDMSでDynamoDB(リアルタイム特徴量ストア用)やRedshift(オフライン特徴量ストア用)に移行・同期させる。
  • レガシーDBのモダナイゼーション:
    • AIサービスを構築するにあたり、バックエンドのレガシーなオンプレミスデータベースがボトルネックになる場合、DMSとSCTを使って、AWSの高性能なAuroraやDynamoDBへの移行を支援する。
  • ログデータの集約と分析:
    • オンプレミスのアプリケーションから出力されるログデータをDMSでKinesisやS3に継続的にストリーミングし、AWSのリアルタイム分析サービス(Kinesis Analytics)やデータウェアハウス(Redshift)で分析し、AIモデルの改善や運用監視に役立てる。
  • データセットの準備:
    • 複数の異なるソースにあるデータを、MLモデルの学習のためにAWS上で一元的に集約する必要がある場合、DMSを使用して効率的にデータをAWSに移行・同期する。

まとめとDay 21への展望

今日のDay 20では、データベースの移行、特にオンプレミス環境からAWSへの移行を効率的かつ安全に行うためのフルマネージドサービス、AWS Database Migration Service (DMS) を学びました。

  • DMSが多様なデータベースをソース・ターゲットとしてサポートし、同種・異種移行に対応すること。
  • 継続的なデータレプリケーション(CDC) によってダウンタイムを最小限に抑えた移行が可能であること。
  • DMSの主要なコンポーネント(レプリケーションインスタンス、エンドポイント、タスク)の役割。
  • 異種移行においては、スキーマ変換のためにAWS Schema Conversion Tool (AWS SCT) とDMSを連携させること。

DMSは、レガシーなデータベース資産をAWSの最新のデータベース環境に移行し、クラウドネイティブなAI/MLワークロードを構築するための強力な基盤を提供します。

さて、これで主要なデータベース移行サービスもカバーしました。明日のDay 21からは、いよいよデータ分析の最終段階、BIツールと可視化、そして機械学習サービスとの連携に焦点を当てていきます。まずは、AWSのBIサービスであるAmazon QuickSightの基礎から学んでいきましょう。

それでは、また明日お会いしましょう!


2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?