目次
DMS(Database Migration Service)はDB移行以外に使える魔法のサービスかも?
米国時間の10/6~10/9に開催されましたAWS最大のイベント「re:Invent 2015」で様々な情報が発表されました。その中で発表された異なるDB間の移行を行う新サービス「AWS Database Migration Service」について、使用例をあげながらご説明します。また、ここに記載されている内容について、re:Inventの技術セッションから判断している内容になるため、1つのご参考程度に考えていただきますようお願い致します。
関連記事:AWS DMSを使ってみた(1)
AWS Database Migration Service とは
Database Migration Serviceは、先日行われた「re:Invent 2015」の中で発表された異なるDBプラットフォーム間のデータ移行が行えるサービスです。抽出元のDBは、Amazon RDSだけでなく、ORACLEやSQL ServerなどのオンプレDBに対応しているため、オンプレDBからAWSクラウドDBへのデータ移行サービスとして注目されています。
操作方法も非常に簡単です。抽出元DBと移行先DBを指定するだけで、抽出元DBのテーブル構造を解釈して、自動的に移行先DBのDBプラットフォームに合わせたテーブルを作成し、データ移行を行います。そのため、DBプラットフォーム間のテーブルカラム定義の互換性などを意識することなく、ノンプログラミングでデータ移行が行えます。(参考:AWS Database Migration Service)
現在、プレビュー版(試用版)の体験者の募集を行っており、実際の正式リリース日については未定です。
データ同期によりDB乗り換え時間が短縮できる
Database Migration Serviceは、抽出元DBとデータ同期を行います。そのため、抽出元DBを運用しながら移行元DBへのDB乗り換えが可能になります。
企業システムなどのDB乗り換えでは、システム稼働中に不変的なマスタ情報、過去データのデータ移行から開始します。そして、年末年始などの連休を利用し、システムを停止して、残りのトランザクションデータをデータ移行します。そのため、非常に長い切り替え時間とタイトなスケジュールを組むことになります。そのため、企業にとって、DB乗り換えは非常にリスクが高い作業になります。
しかし、Database Migration Serviceは、データ同期機能があります。Database Migration Serviceの起動中は、データ同期を行っているため、DBを乗り換える寸前までシステムを稼働できます。そして、システムの停止時間は、システムのDB接続先を新しいDBに切り替えるだけのため、数時間で完了します。そのため、企業側にとってDB移行のリスクが軽減します。
AWSクラウドDBへのデータ移行の費用はほぼ0円
大容量DBのデータ移行で懸念される事項として、データ通信料金があると思います。しかし、Database Migration Serviceは、オンプレDB、クラウドDBに関係なく、抽出元DBからのデータ受信料金は0円です。そして、AWSの同じアベイラビリティーゾーン内のクラウドDBへのデータ送信料金も0円です。つまり、同じアベイラビリティーゾーン内にDatabase Migration Serviceと移行先のクラウドDBを構築すれば、データ通信料金は無料で行えます。
また、処理エンジンの使用料金も激安です。処理エンジンとなるインスタンスは、8つのタイプ(処理性能)から選択可能で、1番安いインスタンスタイプ(dms.t2.micro)の場合、1時間当たり0.018ドルで使用できます。ある意味では、電気代より安いことになりますので、オンプレPCでデータ移行処理を実行するよりお得です。しかし、1番安いから性能が悪いわけではなく、キャッシュ容量は50GBあり、CPUバースト機能(条件によってCPU負荷時にCPU性能を自動的に上げる機能)があるため、急ぎのデータ移行スケジュールでない限り、十分な性能だと思われます。(参考:AWS Database Migration Serviceの料金)
AWS Schema Conversion Tool によるテーブル以外の資産の移行
DBの中には、テーブル情報以外にビューやテーブルトリガー、ユーザーファンクションなどの様々な資産があります。これらを移行をサポートするツールとして「AWS Schema Conversion Tool 」が発表されました。これを使うことで、異なるDBプラットフォームでもユーザーファンクションなどを最適な形に変換してくれます。今回の技術セッションの発表では、変換元DBとしてORACLEとSQL Server、変換先DBとしてMy SQL系(My SQL、Aurora、MariaDB)しか対応していないようです。
【使用例】初期分析をRDS、実運用をRedshiftにすることでデータ分析の初期コストを抑える
Database Migration Serviceは、オンプレDBからAWSのクラウドDBへのデータ移行機能が前面に出ていますが、Amazon RDSも抽出元DBとして選択できるため、AWS内でのDB移行にも使えます。そのため、データ分析業務では、データ件数によって、RDSからRedshiftにDBを切り替える用途で使えそうです。
例えば、データ分析を行う場合、最初からRedshiftを使うのは、費用的に厳しい場合があります。その場合、初期データとして1,000万件程度のデータをAmazon RDSのPostgre SQLに登録して、データの初期分析を行います。そして、分析方法が決まり、問い合わせるSQL命令が完成したら、Database Migration ServiceによってRDSからRedshiftにデータ移行し、残りの大量データをインポートし、Redshiftで実運用を行います。この様に運用することによって、初期分析時のAWS使用料金を抑えることができます。また、RDS(Postgre SQL)で使用したSQL命令は、Redshiftでもほぼ使えるため、開発資産を有効に活用できます。
Database Migration Serviceが登場する前は、Amazon RDSからデータダンプを行いRedshiftにインポートする方法、または、AWS Data Pipelineを使用する方法しかありませんでした。これらを使用する場合、テーブル単位で処理する必要があったため、非常に手間でした。しかし、Database Migration Serviceによって、DB単位で処理できるため、非常に簡単にRedshiftへの乗り換えが行えそうです。
【使用例】様々なDBとデータ同期して、分析用DBに集約する
Database Migration Serviceには、データ同期機能があります。これを使用して、POSシステムなどの業務DBからRedshiftなどのAWSの分析用クラウドDBにリアルタイムでデータコピーを行います。これによって、業務DBに負担をかけないリアルタイムのデータ分析が行えそうです。また、複数の業務DBを繋ぐことで、1つの分析用クラウドDBにデータを集めることもできそうです。
この様なリアルタイム分析が行えれば、Database Migration Serviceが強力なサービスになると思いますが、データ同期のタイミングや、分析用クラウドDBの書込みオーバーヘッド(特にRedshiftの書込み)によって、リアルタイム分析が行えるかの検証は必要だと思います。
Database Migration Service はシンプルな機能だが、インパクトは十分ある
Database Migration Serviceは、非常にシンプルなサービスです。既存のAWSで運用指定しているシステムにとっては必要ない機能かもしれません。しかし、DB間のデータ移行用途にとっては、機能面、価格面から強力なサービスになると思います。今までDBの乗り換えが困難でしたが、このサービスを使うことでパソコンを買い替える感覚でDB乗り換える時代がやってくるかもしれません。
【AWS re:Invent 2015 参加レポート・関連記事】
- AWSの新サービス「AWS WAF」がリリース~re:Invent 2015 速報~
- AWS re:Invent 2015 新サービスから見るAWSの狙いを勝手に予想
- Amazon QuickSightはTableauを脅かす存在になりうるのか
- AWS Database Migration Service によってオンプレDBからの移行が加速する (本稿)
- re:Inventの歩き方 その1:英語力は技術力でカバーせよ!
- re:Inventの歩き方 その2:技術セッションの攻略法
- re:Inventの歩き方 その3:イベントの楽しみ方