AWS DMS(Database Migration Service)についてまとめています。
AWS DMSは、データベースを低価格でAWSに移行
AWS Database Migration Service (AWS DMS) は、データベースを AWS に移行するサービス。
移行中でもオリジナルのデータベースは利用可能な状態で、連携するアプリケーションのダウンタイムを最小限に抑えることができます。対応しているデータベースと、移行可能なデータベースは以下の通りです。
- Oracle Database → Amazon Aurora、MySQL、PostgreSQL、Oracle
- Oracle Data Warehouse → Amazon Redshift
- Azure SQL → Amazon Aurora、MySQL、PostgreSQL
- Microsoft SQL Server → Amazon Aurora、Amazon Redshift、MySQL、PostgreSQL
- Teradata → Amazon Redshift
- IBM Netezza → Amazon Redshift
- Greenplum → Amazon Redshift
- HPE Vertica → Amazon Redshift
- MySQL、MariaDB → PostgreSQL
- PostgreSQL → Amazon Aurora、MySQL
- Amazon Aurora → PostgreSQL
- IBM DB2 LUW → Amazon Aurora、MySQL、PostgreSQL
- Apache Cassandra → Amazon DynamoDB
- SAP ASE → RDS for MySQL、Aurora MySQL、RDS for PostgreSQL、および Aurora PostgreSQL
AWS Database Migration Service では、Oracle → Oracle のような同種DB間の移行も、Oracle や Microsoft SQL から Amazon Aurora といった異種データベースプラットフォーム間の移行もサポートされています。また、AWS Database Migration Service を使用すると、ソースデータベースから、ターゲットデータベースに低レイテンシーでデータのレプリケートが可能です。ソースデータベースの更新が、ターゲットデータベースにも反映されるということですね。
Oracle→Oracleや、Oracle → Amazon RDS for Oracle、MySQL → Amazon Aurora、MySQL → Amazon RDS for MySQL、Microsoft SQL Server → Amazon RDS for SQL Server のように互換性のあるデータベース間では、スキーマ構造、データ型、データベースコードの互換性があるため、一回の処理で移行が可能。
ソースデータベースは、AWS外部のユーザのサーバ内や、実行中のAmazon EC2インスタンス、Amazon RDSデータベースを対象にできます。ターゲット(移行先)データベースは、 Amazon EC2 または Amazon RDS 内のデータベースを指定することが可能です。
AWS DMS(Database Migration Service)の料金
AWS DMSの料金は、データの移行に使用するオンデマンドインスタンスの時間料金と、ストレージサイズに対して課金されます。AWS DMSのデータ転送は全て無料。ただし、アベイラビリティーゾーンや異なるリージョンのターゲットデータベース、 AWS 外のターゲットデータベースに移行する場合は、標準 AWS データ転送料金がかかります。
具体的には、AWS Pricing Calculatorで、オンデマンドインスタンスの数とインスタンスクラス、ストレージ容量を指定することで見積もることができます。
【関連記事】
▶AWSの見積もりは、AWS Pricing Calculatorで自動計算 ユースケースから流用も可能
一般的なデータベース移行以外に、AWS Database Migration Service では、継続的なデータレプリケーションもサポートされています。常にデータベースのレプリケーションを作成しつづけ、障害に備えるんですね。冗長化レプリケーションサーバーを使って、レプリケーションストリームを提供するマルチ AZ を有効化するオプションも用意されています。
OracleからAmazon Redshiftへ移行する例
Amazon Redshiftは、AWSのマネージド型データウェアハウスです。ペタバイト規模の容量に対応しています。ビジネスインテリジェンスツールを使ってデータの分析が可能です。
OracleデータウェアハウスをAmazon Redshiftに移行することで、コストを節約しながらクエリパフォーマンスを高速化できるんですね。NASDAQ、NTT Docomo、Amgen、Bong Wirelessなど多くの企業がデータウェアハウスをAmazon Redshiftに移行した実績があります。
例えば、Amazon RDSで利用中のOracleデータウェアハウスを、Amazon Redshiftに移行するには、具体的に以下の手順を実行することになります。
- AWS Schema Conversion Toolを使って、データウェアハウススキーマとコードを変換
- AWS Database Migration Serviceを使って、データを移行
- 移行が成功したかどうか、ソースとターゲットのオブジェクトタイプ、オブジェクト数、各テーブルの行数の確認をするため、SQLクエリを実行して検証
参考)Oracle から Amazon Redshift に移行する方法 – アマゾン ウェブ サービス (AWS)
AWS Schema Conversion Toolでは、ソースのスキーマとカスタムコードのほとんどを、Amazon Redshiftto互換性のあるフォーマットに自動変換できます。自動変換できなかったコードにはマークがつけられ、手動で変換を行うことになります。
AWS Database Migration Serviceで実際に行う作業は、AWS マネジメントコンソールで数回クリックするだけです。移行中も、ソースのデータウェアハウスは通常通り運用が可能です。
移行にかかる時間は、手動変換部分の量によります。DMSでのレプリケーション設定は数分以内に完了します。セルフマネージド型のレプリケーションソリューションはインストールや構成などの作業をおこなうと数時間から数日かかるので、作業工数の大幅な節約になりますね。
ソースのOracleデータウェアハウスの容量が10GBだった場合、1回移行するための料金は約7.85ドル。(無料利用枠を利用し、移行後にリソース全てを削除する前提で算出)
AWS DMSのまとめ
- AWS DMS(Database Migration Service)は、データベースをAWS内のデータベースに低価格で移行するサービス
- AWS DMSの料金は、移行時に使用するインスタンスの使用時間と、ストレージ容量に課金される
- AWS Database Migration Serviceを使って、データベースの継続的なレプリケーションを作成することも可能