42
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アマゾン ウェブ サービス ジャパン株式会社 データベース ソリューション アーキテクト 柴⽥⻯典 2017年3⽉7⽇ AWS Database Migration Service と Schema Conversion Tool の使いドコロ #AuroraMatsuri

[Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

Embed Size (px)

Citation preview

Page 1: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

アマゾン ウェブ サービス ジャパン株式会社データベース ソリューション アーキテクト柴⽥⻯典2017年3⽉7⽇

AWS Database Migration Service とSchema Conversion Tool の使いドコロ

#AuroraMatsuri

Page 2: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

⾃⼰紹介

柴⽥⻯典[シバタツ]• データベース関連の

相談ごと何でも担当• AWSへの移⾏を機に

RDBMSをAuroraに乗り換えたい

• オンプレミスOracleをAWSにフォークリフティングしたい

• 好きなAWSのサービス: S3 @rewse

Page 3: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

このセッションの⽬的 その1

皆さんの今の気持ち“Aurora良さそうだけど、既存がMySQLでもPostgreSQLでもないから、移⾏が⼤変そう……”

“AWSのマイグレーション関連サービスを使えば、移⾏できそう!”

Page 4: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

このセッションの⽬的 その2

皆さんの今の気持ち“既存がMySQL or PostgreSQLだからレプリケーションするだけで移⾏できるし……”

“AWSのマイグレーション関連サービスを使えば、あのDBとも連携できそう!”

Page 5: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

マイグレーション実施計画における⼀般的な課題

クラウド検討 マイグレーション実施計画 マイグレーション実施

IT部⾨責任者業務部⾨責任者

ü 移⾏のための業務停⽌はできるだけ短くしてほしい

ü インターフェース(SQL含む)をあまり変えないでほしい

ü システム停⽌時間が⻑く取れない

ü 移⾏にあまり費⽤をかけたくない

クラウド化意思決定

Page 6: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

マイグレーションの⽅針と実現⽅法

⽅針• システム移⾏時の停⽌時間を最⼩限に抑え、

ビジネスへの影響を最⼩化し、新たなITサービスを迅速に提供実現⽅法

• フレームワーク、パースペクティブ、プロセスの活⽤• ツールの活⽤、経験ノウハウの蓄積と再利⽤

キーポイント• 移⾏のコスト、リスク、期間を低減• 安⼼、安全な移⾏• ⾃動化

Page 7: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

AWSが提供するマイグレーション関連サービス

計画 移行 運用ディスカバリー 設計 変換 移行 運用 最適化

ドメイン

フェーズ

サービス

マイ

グレ

ーシ

ョン

プロ

セス

ü AWS TCO Calculatorü AWS Application

Discovery Service

ü VM Import/Exportü AWS Server Migration

Serviceü AWS Database

Migration Serviceü AWS Storage Gatewayü AWS Snowballü VMware on AWS

ü AWS CloudWatchü AWS Configü AWS CloudFormationü AWS CloudTrailü AWS Service Catalogü AWS Trusted Advisorü AWS サポート

マイグレーション コンピテンシー

DevOps、Mobile、Security、Big Data、Storage、Microsoft、SAP、Oracle

コンピテンシー

Page 8: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

AWS Database Migration Service とは

既存のデータベースを最⼩限のダウンタイムでマイグレーションするサービス

同種はもちろん異種プラットフォームの移⾏にも対応

オンプレミスDB

DB on EC2

RDS

オンプレミスDB

DB on EC2

RDS

※オンプレミス to オンプレミスは非対応

DMS

Page 9: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

AWS Database Migration Service の特徴

使⽤が簡単MCで数回クリックするだけ

最⼩限のダウンタイムオンラインでの継続的レプリケーション対応

豊富な対応プラットフォームOracle, Microsoft SQL Server, SAP ASE, MySQL, MariaDB,PostgreSQL, Aurora, Redshift

簡単なセットアップソースDBへの変更はほぼ不要

⾼い信頼性マルチAZ可能なインスタンス

低コストc4.largeインスタンスで0.196USD/時間

Page 10: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

AWS Schema Conversion Tool とは

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

Page 11: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

AWS Schema Conversion Tool の特徴

⼿動変換の補助⾃動変換できない個所とその理由を明⽰

評価レポートの作成何割のオブジェクトが⾃動変換可能かなどのPDFレポートを数クリックで作成でき、変換⼯数の事前⾒積もりを補助

アプリケーションSQLに対応アプリケーションソースコードをスキャンして変換

豊富な対応プラットフォームOracle, Microsoft SQL Server, Teradata, Netezza, Greenplum, MySQL, MariaDB, PostgreSQL, Aurora, Redshift

Page 12: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

同種DB間で、ダウンタイムを最⼩限に移⾏

ソース:オンプレミス、EC2、

RDS上のOracle

AWS Database Migration Service

ターゲット:RDS上のOracle

ソース:オンプレミス、EC2、RDS上のMySQL

AWS Database Migration Service

ターゲット:Amazon Aurora

Page 13: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

異なるDB間で、ダウンタイムを最⼩限に移⾏

ソース:オンプレミス、EC2、

RDS上のOracle

AWS SchemaConversion Tool

ターゲット:Amazon Aurora

ソース:オンプレミス、EC2、

RDS上のOracle

AWS DatabaseMigration Service

ターゲット:Amazon Aurora

Page 14: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

データベースの統合

ソース:オンプレミス、EC2、RDS上の

複数のMySQL

AWS DatabaseMigration Service

ターゲット:Amazon Aurora

Page 15: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

継続的なデータレプリケーション

ソース:Amazon Aurora

AWS DatabaseMigration Service

ターゲット:異なるリージョンのAurora、

テスト用Aurora、オンプレミスMySQL

Page 16: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

AWS DatabaseMigration Service 詳細

Page 17: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

設定の流れ

1. DMSインスタンスの作成

2. エンドポイントの設定

3. タスクの定義

インスタンスサイズ、VPC、マルチAZ、パブリックアクセス(ストレージサイズ、サブネットグループ、

AZ、セキュリティグループ、KMSキー)

ソースとターゲットそれぞれのRDBMSプラットフォーム、ホスト名、ポート、SSL有効無効、ユーザー名、パスワード

移⾏タイプ(ターゲットテーブルが存在していた場合、

LOB対応、最⼤LOBサイズ、ログの有効化)

実⾏

Page 18: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

エンドポイントとのセキュリティ

corporate data center

Availability Zone

security group

DMSのパブリックIP →オンプレミスDBのポートへのインバウンドのみ許可

ソースDB FW DMS ターゲットDB

DX / VPN /SSLの利⽤

DMSのプライベートIP →ターゲットDBのポートへのインバウンドのみ許可

Page 19: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

移⾏タイプ

• Migrate existing data (FullLoad)• 現時点でソースDBに⼊っているすべてのデータを

ターゲットDBに移⾏する• Replicate ongoing changes only

(Change Data Capture / CDC)• ソースDBに対する変更データをキャプチャし、

ターゲットに適⽤する• アプリケーションは稼働したまま移⾏可能

• Migrate existing data and replicate ongoing change

Page 20: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

FullLoadの仕組み ターゲットがRedshift以外

1. DMSインスタンスがソースDBから8テーブル並列に、各テーブルから1万⾏ずつSELECT

2. 必要に応じてDMSインスタンスがデータを変換し、ターゲットDBにINSERT

• メモリーだけで処理しきれない場合は、DMSインスタンスのEBSがスワップ領域として使われる

• ⾏⻑が⻑く、⾏⻑×1万⾏×8テーブルがDMSインスタンスのメモリーサイズを超える場合は読み取り⾏数単位を⼩さく

Page 21: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

RedshiftへのFullLoadの仕組み

1. DMSインスタンスがソースDBから8テーブル並列に、各テーブルから1万⾏ずつSELECT

2. DMSインスタンスが必要に応じてデータを変換し、Amazon S3 の専⽤バケットにCSVとして出⼒

3. RedshiftがS3からCOPY(ロード)• Redshift中はCOPY時にテーブル単位で排他ロックを

取る点に注意

Page 22: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

CDCの仕組み

1. DMSインスタンスがソースDBのトランザクションログ(バイナリログ、WAL、REDOログ)を5秒間隔でキャプチャ

2. DMSインスタンスがSQLに変換し、トランザクションCOMMIT順にターゲットDBに実⾏

3. ターゲットDBに接続できない, 遅い場合 or FullLoadが完了していない場合は、DMSインスタンス内でキューイング

Page 23: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

移⾏時のソースDBの停⽌⽅法

1. ソースDBの停⽌準備ができたタイミングでソースDBにマーカーのトランザクションをINSERTINSERT INTO options VALUES ('the_end', 'true');COMMIT;

2. ターゲットDBでマーカーの到着を確認SELECT value FROM options WHERE key = 'the_end';

3. 確認できれば、マーカー以前のトランザクションはすべてターゲットDBに適⽤されていることが保証される

Page 24: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

対応データベース詳細

プラットフォーム ソース ターゲット

Oracle Database 10g R2, 11g, 12c 10g, 11g, 12cMicrosoft SQL Server 2005, 2008, 2012, 2014 2005, 2008, 2012, 2014SAP ASE 15.7以降 15.7以降MySQL / MariaDB / Aurora 5.5以降 5.5以降PostgreSQL 9.4以降 9.3以降Redshift - すべて

Page 25: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

東京リージョンでの料⾦

インスタンス

+

ストレージ

+

データ転送

t2.micro: 0.028USD/時 からc4.4large: 1.564USD/時 までの8種類マルチAZの場合は2倍

0.138USD/GB/⽉マルチAZの場合は2倍

受信: 無料同⼀AZ内への送信: 無料別AZへの送信: 0.010USD/GB別リージョンへの送信: 0.090USD/GBインターネットへの送信: 0.14USD/GB以下

Page 26: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

各RDBMSプラットフォームによる制限

AWS Database Migration Serviceユーザーガイドをご確認ください

Page 27: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

AWS SchemaConversion Tool 詳細

Page 28: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

設定の流れ

1. デスクトップ環境にインストール

2. ソースDBの設定

3. スキーマの選択

4. 評価レポートの確認

5. ターゲットDBの設定

Window, Mac, Fedora, Ubuntu+ JRE 8u45以降

プロジェクト名、OLTP or DW、RDBMSプラットフォーム、ホスト名、ポート、ユーザー名、パスワード、SSL有効無効、JDBCドライバーのパスなど

RDBMSプラットフォーム、ホスト名、ポート、ユーザー名、パスワード、SSL有効無効、JDBCドライバーのパスなど

Page 29: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

メインビュー

Page 30: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

評価レポートビュー (1/2)

Page 31: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

評価レポートビュー (2/2)

Page 32: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

評価レポートビューの Action Items タブ

Page 33: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

データ移⾏ビュー DMSタスクの作成と制御が可能

Page 34: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

マッピングルールの作成

• SCTのデフォルトマッピングルールを変更可能• データタイプの変更

INTEGER ← NUMBER(10,0) → NUMERIC(10,0)• オブジェクトを別スキーマに移動• オブジェクトの名称変更• プレフィックスの追加、削除、置換• サフィックスの追加、削除、置換

• データベース、スキーマ、テーブル、列単位で設定

Page 35: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

ターゲットがRedshiftの場合

分散キーと分散スタイル & ソートキーの決定を補助• 最適化戦略の選択

• メタデータ(ソースDB側の索引など)のみを使⽤する• 統計情報のみを使⽤する

• 統計情報はSCTから取得する• メタデータと統計情報を使⽤する

• 各情報を考慮する重みの設定が可能• 複数の提案と各提案の信頼度について提⽰

現⾏のRedshiftをスナップショット経由でコピーし、ソースとターゲット共にRedshiftにすることで、この機能だけ利⽤することも可能

Page 36: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

アプリケーションSQLの変換

• アプリケーションソースコードをスキャンし、SELECTやDMLなどのSQLを抽出して変換

• Java, C++, C# など

• スキーマ同様に評価レポートを作成可能

• 変換されたSQLに⼿動で微調整を加えたあとに、ソースコードに適⽤することも可能

Page 37: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

OracleからPostgreSQLへの例

Page 38: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

拡張パック

ソースDBにあってターゲットDBにない機能をターゲットDBで実現するためにインストール

• RDBMS on EC2 対象• Email Sending Service• Job Emulation Service• Functions Emulation

• Redshift対象• Functions Emulation

Page 39: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

データ移⾏エージェント

• ソースDBのデータをテキスト形式でアンロードするエージェント

• アンロードしたファイルをSnowbollなどでAWSへ。DMSでは時間が掛かりすぎる場合の代替案

• Fedora or Ubuntu にデーモンとして常駐。SCTを終了しても動作続⾏

• 現在対応しているソースDB:Oracle 11g以降, Teradata 15以降

Page 40: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

DMSとSCTと組み合わせた移⾏の⼿順

1. SCTでテーブル定義とPK制約を移⾏2. DMSでFullLoadとCDC開始3. FullLoad完了後にFK制約とインデックスを定義4. CDCLatencyが⼩さくなったタイミングで

アプリからの書き込み停⽌(ダウンタイム開始)5. マーカーをソースDBにINSERT6. マーカーのターゲットDB到着を確認7. アプリがターゲットDBに接続(ダウンタイム終了)

Page 41: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ

まとめ: マイグレーションにおける課題の解決

業務部⾨責任者• 移⾏のための業務停⽌は

できるだけ短くしてほしい▶ DMS

• インターフェースをあまり変えないでほしい▶ SCT

IT部⾨責任者• システム時間が⻑く

取れない▶DMS

• 移⾏にあまり費⽤を掛けたくない▶従量制の課⾦体系

Page 42: [Aurora事例祭り]AWS Database Migration Service と Schema Conversion Tool の使いドコロ