AWS Database Migration Service ご紹介

34
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アマゾン ウェブ サービス ジャパン 下佐粉 昭 2016216201682日更新) AWS Database Migration Service ご紹介&デモ

Transcript of AWS Database Migration Service ご紹介

Page 1: AWS Database Migration Service ご紹介

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

アマゾンウェブサービスジャパン 下佐粉昭

2016年2月16日

(2016年8月2日更新)

AWS Database Migration Service

ご紹介&デモ

Page 2: AWS Database Migration Service ご紹介

2

AWS Database Migration Service

Page 3: AWS Database Migration Service ご紹介

3

AWS Database Migration Service(DMS)

• RDB間のデータ移行を支援する

サービス

• 異機種間のデータ移行も対応

• 利用が容易 DMS

オンプレミス

RDB

RDS

RDB on EC2

オンプレミス

RDB

RDS

RDB on EC2

※オンプレ to オンプレは未サポート

Page 4: AWS Database Migration Service ご紹介

4

2016年3月16日 DMSが正式リリース(GA)!

http://aws.typepad.com/aws_japan/2016/03/aws-database-

migration-service.html

利用可能リージョン:

US East (Northern Virginia), US West (Oregon), US West

(Northern California), Europe (Ireland), Europe (Frankfurt),

Asia Pacific (Tokyo), Asia Pacific (Singapore), Asia Pacific

(Sydney)

Page 5: AWS Database Migration Service ご紹介

5

設定と利用の流れ

ソース・ターゲットのDBの準備

DMSレプリケーション

インスタンスの作成

エンドポイントの作成

タスクの作成&実行 データ転送範囲と方法の定義

接続するDBへの接続定義(ソース&ターゲット)

ソースDB DMS ターゲットDB

VPC内にインスタンスが作成されます

Page 6: AWS Database Migration Service ご紹介

6

レプリケーションの方法

• Migrate existing data(フルロード)

• DMSがソースDBから対象表のデータを読み取る

• ターゲットDBにデータをロードする

• Replicate ongoing changes(CDC)

• DMSがソースDBのトランザクションログから更新差分を抽出

• 継続的にターゲット表にアプライする

• ソースDBの負荷が低いレプリケーションを実現

• 表全体をフルロードした後に、継続的にCDCも可能

Page 7: AWS Database Migration Service ご紹介

7

【補足】CDCについて(2016年7月14日更新)

• GA時点では長期間のCDC継続利用はサポートされていませんでしたが、現在は正式にサポートされています

• https://aws.amazon.com/about-aws/whats-new/2016/07/aws-

database-migration-service-now-supports-continuous-data-

replication-with-high-availability-enables-ssl-endpoints-and-

adds-support-for-sap-ase-formerly-sap-sybase-ase/

• CDCを長期間利用される場合は、マルチAZ構成でDMS

インスタンスを作成される事を推奨します

Page 8: AWS Database Migration Service ご紹介

8

Demo

Page 9: AWS Database Migration Service ご紹介

9

ユースケース①AWS内でのマイグレーション

ソースDB DMS ターゲットDB

ソースDB DMS ターゲットDBVPC Peering

VPC内のマイグレーション

VPC間のマイグレーション

Page 10: AWS Database Migration Service ご紹介

10

ユースケース②オンプレミスからのマイグレーション

直接(TCP/IPで)接続

インターネットVPNもしくはDirect Connect経由

ソースDB DMS ターゲットDB

オンプレミスDC

Internet

Gateway

ソースDB DMS ターゲットDB

オンプレミスDC

VPN

GatewayCustomer

Gateway

VPN

DMSからオンプレミスのRDBに接続できる必要がある点に注意

Page 11: AWS Database Migration Service ご紹介

11

サポートするデータベース(2016年7月14日更新)

ソース ターゲット SSL接続

Oracle on-pre/EC2 10g, 11g, 12c Ent/SE/SE1/SE2 10g, 11g, 12c Ent/SE/SE1/SE2n/a

RDS 11g, 12c Ent/SE/SE1/SE2 11g, 12c Ent/SE/SE1/SE2

MySQL on-pre/EC2/RDS 5.5, 5.6 5.5, 5.6 ○

PostgreSQL on-pre/EC2 9.4 9.3以降○

RDS 9.4 ※1 9.3以降

SQL Server on-pre/EC2 2005, 2008, 2008R2, 2012, 2014 Ent,

Std, Workgroup, Developer

2005, 2008, 2008R2, 2012, 2014 Ent,

Std, Workgroup, Developer○

RDS 2008R2, 2012, 2014 Ent, Std,

Workgroup, Developer ※1

2008R2, 2012, 2014 Ent, Std,

Workgroup, Developer

Aurora RDS MySQL互換としてサポート MySQL互換としてサポート ○

MariaDB on-pre/EC2/RDS MySQL互換としてサポート MySQL互換としてサポート ○

Redshift (ソースとしてはサポート無し) ターゲットDBとしてサポート n/a

SAP ASE

(Sybase ASE)

on-pre/EC2 15.7以降 15.7以降(※1)n/a

※1:CDC利用不可※2:日本語データを含む場合は15.7 SP121以降

Page 12: AWS Database Migration Service ご紹介

12

「使った分だけ」の価格体系

※東京リージョンでの2016年7月時点の価格です

※利用方法によっては、別途CloudWatch LogsやS3の利用料金が発生します

http://aws.amazon.com/jp/dms/pricing/

インスタンス

+GP2 SSDストレージ

+通信費用

dms.t2.micro: $0.028/時間 ~

dms.c4.4xlarge: $1.564/時間

0.138/GB/月

インバウンド:無料同一AZ間通信:無料

アウトバウンド(インターネット):$0.14/GB

Page 13: AWS Database Migration Service ご紹介

13

DMS利用のポイント

Page 14: AWS Database Migration Service ご紹介

14

インスタンスの選択

T2とC4ファミリーから選択可能

• T2:テスト・評価・小規模

• C4:一般的なマイグレーション

上位インスタンスの方がCPU・メモリが増えるだけでなく、ネットワーク帯域が増える

T2はCPUがバースト制

Page 15: AWS Database Migration Service ご紹介

15

移行対象

表定義

インデックス定義

データ

制約(一部)

DMSが移行するもの

移行しないもの

ビュー

プロシージャ

トリガー

シノニム

制約(参照制約やユニーク制約)

Page 16: AWS Database Migration Service ご紹介

16

AWS Schema Conversion Tool(SCT)

異なるRDB間での各種オブジェクトの移行(変換)を補助するツール

• Windows, Mac, Linux にダウンロードして利用

• 稼動OSは64bit版のみサポート

• ODBCで接続。SSLサポートあり

• ソースコード内のSQL分析に対応

移行対象:

• 表、インデックス、トリガー、プロシージャ、制約、ビュー

SCTが自動変換した型が最適とは限らないので、業務に合わせた微調整は必要

Page 17: AWS Database Migration Service ご紹介

17

【参考】Schema Conversion Toolスクリーンショット

調査対象のDBを指定

オブジェクトを調査し、変換可能な量を表示

Page 18: AWS Database Migration Service ご紹介

18

【参考】Schema Conversion Toolスクリーンショット(続き)

変換前(Oracle PL/SQL)

変換後 (Aurora Function)

Page 19: AWS Database Migration Service ご紹介

19

【補足】Schema Conversion ToolがサポートするRDBの組み合わせ

https://docs.aws.amazon.com/ja_jp/SchemaConversionTool/latest/userguide/Welcome.html

Page 20: AWS Database Migration Service ご紹介

20

タスクとテーブルマッピング

• 特定のスキーマや表を移行対象に、もしくは対象外にすることをJSONフォーマットで指定可能

{"Type": "Include","SourceSchema": "company","SourceTable": "%"

},

{"Type": "Exclude","SourceSchema": "company","SourceTable": "emp%"

},

{"Type": "Explicit","SourceSchema": "company","SourceTable": "local"

},

Includeでスキーマ配下の表を含める

Excludeでスキーマ配下の表を対象外に。ワイルドカード(%)で名前指

定も可能

特定の1表だけ指定したい場合はExplicit

Page 21: AWS Database Migration Service ご紹介

21

データ移動の仕組み①

Migrate existing data(フルロード)

• ソース表を一旦インスタンスのEBSにコピーして、一括ロード• EBSは暗号化されています

• ソース表が大きい場合は分割して実行

• RDB固有のファンクションを呼び出している

• 例)OracleであればDirect Path Loadの利用

Page 22: AWS Database Migration Service ご紹介

22

データ移動の仕組み②

Replicate ongoing changes(Change Data Capture:CDC)

• トランザクションのログ(REDOログ、BINログ等)を読み取って、更新差分を転送する

• 低負荷な継続的レプリケーションを実現

• ログ読み取りの方法はRDBそれぞれで異なる。読み取れるように事前に設定が必要

• 長期的にレプリケーションし続ける場合は、DMSインスタンスをマルチAZ構成にする事を推奨

Page 23: AWS Database Migration Service ご紹介

23

CDCを利用する前に必要な設定

ソースDBでトランザクションログが読めるように設定する

• ログを出すようにする設定と権限の設定

• RDBMSごとの詳細はマニュアルに記載

• Oarcleの例)ALTER DATABASE ADD SUPPLEMENTAL LOG DATA

: (詳細はマニュアルを参照)

RDSの場合は、通常のコマンドで変更出来ないため注意

• 例)RDS OracleでSupplemental loggingを有効にする• exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD’);

• exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','PRIMARY KEY’);

:(詳細はマニュアルを参照)

Page 24: AWS Database Migration Service ご紹介

24

動作の確認

• タスク作成時にEnable loggingをONに(推奨)

• CloudWatch LogsでDMSの稼動状況を確認可能に

• エラー時はRDB側のログ確認も重要

Page 25: AWS Database Migration Service ご紹介

25

モニタリング(CloudWatch)

レプリケーションインスタンスの稼働状況はCloudWatchでモニタリング可能

Page 26: AWS Database Migration Service ご紹介

26

セキュリティ

セキュリティグループ・IAM・ディスク暗号化

DMS

RDS

RDB on EC2オンプレミス

RDB データセンター

Availability Zone

Fire

wall

security group

FWではDMSのパブリックIPアドレスから、オンプレミスRDBのポート

へのインバウンドのみ許可

セキュリティグループでDMSのプライベートIPアドレスからRDBのポート

へのインバウンドのみ許可

• 操作できるユーザはIAMで制御• EBS暗号化がデフォルトON• セキュリティグループの設定も可能

SSLの利用

Page 27: AWS Database Migration Service ご紹介

27

その他:構成の注意点

• VPC内に閉じているケースや、VPNや専用線でVPCに接続しているケースではパブリックIPは不要

• DMSのパブリックIPは後からON/OFF変更できない点に注意

• DMSからインターネット経由でデータベースに接続する場合はSSL利用を検討

• 長時間継続してDMSインスタンスを利用する場合はマルチAZを検討

• インスタンスの停止という概念が無い

Page 28: AWS Database Migration Service ご紹介

28

その他:落ち葉拾い

エラーが出てもデータ移動は成功している場合も

• CloudWatch LogsやRDBのログでエラーメッセージを確認してください(制約で表がDROP出来なかった等)

• スキーマを変更した場合はEndpointのスキーマリフレッシュを実行してください

フルロードでは参照整合性(RI)に注意

• RIの順序を意識してフルロードしないため、ターゲットにRIがあるとロードに失敗する可能性があります

• CDCであればRIがあっても問題なく追記されます

Page 29: AWS Database Migration Service ご紹介

29

まとめ

• DMS=データベース移行のサービス

• 多様なRDBをサポートし、異機種移行をサポート

• オンプレ - AWS間、AWS内、両方をサポート

• すぐに使い始められ、コスト効果が高い

• 移行を補助するSchema Conversion Toolを提供

Page 30: AWS Database Migration Service ご紹介

30

補足:Redshiftのサポートについて

Redshiftへのデータ投入• S3バケットにデータが一時的に保存され、RedshiftにCOPYコマンドで投入されます

一時データ置き場であるS3バケットについて• S3の利用費用はお客様負担です

• S3へのアクセス用Role:dms-access-for-endpointがDMSインスタンスに追加され、権限でS3にアクセスされます

• バケットは”dms-”から始まる名前で作成されます

• 一時置きのデータはRedshiftにCOPY完了後に削除されます

• 作成したバケットはEndpointが削除と同時に削除されます

Page 31: AWS Database Migration Service ご紹介

31

補足:Redshiftサポートのためのロール

dms-access-for-endpointロールは右の権限を持ちます

Page 32: AWS Database Migration Service ご紹介

32

補足情報:AWS Database Migration Service

• ホームページ

• https://aws.amazon.com/jp/dms/

• マニュアル

• https://aws.amazon.com/documentation/dms/

• FAQ

• http://aws.amazon.com/jp/dms/faqs/

• フォーラム

• https://forums.aws.amazon.com/forum.jspa?forumID=216

• re:Invent 2015での解説セッション(30分の動画)

• https://www.youtube.com/watch?v=JuUE5HZb2gs

Page 33: AWS Database Migration Service ご紹介

33

補足情報:AWS Schema Conversion Tool

• ホームページ

• http://aws.amazon.com/jp/dms/sct/

• マニュアル

• http://docs.aws.amazon.com/SchemaConversionTool/latest/u

serguide/Welcome.html

• フォーラム(ダウンロードもこちら)

• https://forums.aws.amazon.com/forum.jspa?forumID=208

Page 34: AWS Database Migration Service ご紹介

34

補足情報:DMS操作に必要なIAM権限

※詳細はマニュアルを参照

{"Version": "2012-10-17","Statement": [

{"Effect": "Allow","Action": "dms:*","Resource": "*"

},{

"Effect": "Allow","Action": "kms:*","Resource": "*"

},{

"Effect": "Allow","Action": ["iam:GetRole","iam:CreateRole","iam:AttachRolePolicy"],"Resource": "*"

},

{"Effect": "Allow","Action": ["ec2:DescribeVpcs","ec2:DescribeInternetGateways","ec2:DescribeAvailabilityZones","ec2:DescribeSubnets"

],"Resource": "*"

},{

"Effect": "Allow","Action": ["cloudwatch:Get*","cloudwatch:List*"],"Resource": "*"}

]}