SlideShare a Scribd company logo
1 © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アマゾン ウェブ サービス ジャパン 下佐粉 昭
2016年2月16日
(2016年8月2日更新)
AWS Database Migration Service
ご紹介&デモ
2
AWS Database Migration Service
3
AWS Database Migration Service(DMS)
• RDB間のデータ移行を支援する
サービス
• 異機種間のデータ移行も対応
• 利用が容易 DMS
オンプレミス
RDB
RDS
RDB on EC2
オンプレミス
RDB
RDS
RDB on EC2
※オンプレ to オンプレは未サポート
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)
5
設定と利用の流れ
ソース・ターゲットのDBの準備
DMSレプリケーション
インスタンスの作成
エンドポイントの作成
タスクの作成&実行 データ転送範囲と方法の定義
接続するDBへの接続定義
(ソース&ターゲット)
ソースDB DMS ターゲットDB
VPC内にインスタンスが作成されます
6
レプリケーションの方法
• Migrate existing data(フルロード)
• DMSがソースDBから対象表のデータを読み取る
• ターゲットDBにデータをロードする
• Replicate ongoing changes(CDC)
• DMSがソースDBのトランザクションログから更新差分を抽出
• 継続的にターゲット表にアプライする
• ソースDBの負荷が低いレプリケーションを実現
• 表全体をフルロードした後に、継続的にCDCも可能
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
インスタンスを作成される事を推奨します
8
Demo
9
ユースケース①AWS内でのマイグレーション
ソースDB DMS ターゲットDB
ソースDB DMS ターゲットDB
VPC Peering
VPC内のマイグレーション
VPC間のマイグレーション
10
ユースケース②オンプレミスからのマイグレーション
直接(TCP/IPで)接続
インターネットVPNもしくはDirect Connect経由
ソースDB DMS ターゲットDB
オンプレミスDC
Internet
Gateway
ソースDB DMS ターゲットDB
オンプレミスDC
VPN
Gateway
Customer
Gateway
VPN
DMSからオンプレミスのRDBに接
続できる必要がある点に注意
11
サポートするデータベース(2016年7月14日更新)
ソース ターゲット SSL接続
Oracle on-pre/EC2 10g, 11g, 12c Ent/SE/SE1/SE2 10g, 11g, 12c Ent/SE/SE1/SE2
n/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以降
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
13
DMS利用のポイント
14
インスタンスの選択
T2とC4ファミリーから選択可能
• T2:テスト・評価・小規模
• C4:一般的なマイグレーション
上位インスタンスの方がCPU・
メモリが増えるだけでなく、ネッ
トワーク帯域が増える
T2はCPUがバースト制
15
移行対象
表定義
インデックス定義
データ
制約(一部)
DMSが移行するもの
移行しないもの
ビュー
プロシージャ
トリガー
シノニム
制約(参照制約やユニーク制約)
等
16
AWS Schema Conversion Tool(SCT)
異なるRDB間での各種オブジェクトの移行(変換)を補助す
るツール
• Windows, Mac, Linux にダウンロードして利用
• 稼動OSは64bit版のみサポート
• ODBCで接続。SSLサポートあり
• ソースコード内のSQL分析に対応
移行対象:
• 表、インデックス、トリガー、プロシージャ、制約、ビュー
SCTが自動変換した型が最適とは限らないので、業務に合わ
せた微調整は必要
17
【参考】Schema Conversion Toolスクリーンショット
調査対象のDBを指定
オブジェクトを調査し、
変換可能な量を表示
18
【参考】Schema Conversion Toolスクリーンショット(続き)
変換前(Oracle PL/SQL)
変換後 (Aurora Function)
19
【補足】Schema Conversion Toolがサポートする
RDBの組み合わせ
https://docs.aws.amazon.com/ja_jp/SchemaConversionTool/latest/userguide/Welcome.html
20
タスクとテーブルマッピング
• 特定のスキーマや表を移行対象に、もしくは対象外にす
ることをJSONフォーマットで指定可能
{
"Type": "Include",
"SourceSchema": "company",
"SourceTable": "%"
},
{
"Type": "Exclude",
"SourceSchema": "company",
"SourceTable": "emp%"
},
{
"Type": "Explicit",
"SourceSchema": "company",
"SourceTable": "local"
},
Includeでスキーマ配下の
表を含める
Excludeでスキーマ配下
の表を対象外に。ワイル
ドカード(%)で名前指
定も可能
特定の1表だけ指定した
い場合はExplicit
21
データ移動の仕組み①
Migrate existing data(フルロード)
• ソース表を一旦インスタンスのEBSにコピーして、一括ロード
• EBSは暗号化されています
• ソース表が大きい場合は分割して実行
• RDB固有のファンクションを呼び出している
• 例)OracleであればDirect Path Loadの利用
22
データ移動の仕組み②
Replicate ongoing changes(Change Data Capture:CDC)
• トランザクションのログ(REDOログ、BINログ等)を読み取っ
て、更新差分を転送する
• 低負荷な継続的レプリケーションを実現
• ログ読み取りの方法はRDBそれぞれで異なる。読み取れるよう
に事前に設定が必要
• 長期的にレプリケーションし続ける場合は、DMSインスタンス
をマルチAZ構成にする事を推奨
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’);
:(詳細はマニュアルを参照)
24
動作の確認
• タスク作成時にEnable loggingをONに(推奨)
• CloudWatch LogsでDMSの稼動状況を確認可能に
• エラー時はRDB側のログ確認も重要
25
モニタリング(CloudWatch)
レプリケーションインスタンスの稼働状況
はCloudWatchでモニタリング可能
26
セキュリティ
セキュリティグループ・IAM・ディスク暗号化
DMS
RDS
RDB on EC2オンプレミス
RDB データセンター
Availability Zone
Firewall
security group
FWではDMSのパブリックIPアドレ
スから、オンプレミスRDBのポート
へのインバウンドのみ許可
セキュリティグループでDMSのプラ
イベートIPアドレスからRDBのポート
へのインバウンドのみ許可
• 操作できるユーザはIAMで制御
• EBS暗号化がデフォルトON
• セキュリティグループの設定
も可能
SSLの利用
27
その他:構成の注意点
• VPC内に閉じているケースや、VPNや専用線でVPCに接続
しているケースではパブリックIPは不要
• DMSのパブリックIPは後からON/OFF変更できない点に注意
• DMSからインターネット経由でデータベースに接続する場
合はSSL利用を検討
• 長時間継続してDMSインスタンスを利用する場合はマルチ
AZを検討
• インスタンスの停止という概念が無い
28
その他:落ち葉拾い
エラーが出てもデータ移動は成功している場合も
• CloudWatch LogsやRDBのログでエラーメッセージを確
認してください(制約で表がDROP出来なかった等)
• スキーマを変更した場合はEndpointのスキーマリフレッ
シュを実行してください
フルロードでは参照整合性(RI)に注意
• RIの順序を意識してフルロードしないため、ターゲット
にRIがあるとロードに失敗する可能性があります
• CDCであればRIがあっても問題なく追記されます
29
まとめ
• DMS=データベース移行のサービス
• 多様なRDBをサポートし、異機種移行をサポート
• オンプレ - AWS間、AWS内、両方をサポート
• すぐに使い始められ、コスト効果が高い
• 移行を補助するSchema Conversion Toolを提供
30
補足:Redshiftのサポートについて
Redshiftへのデータ投入
• S3バケットにデータが一時的に保存され、RedshiftにCOPYコマンド
で投入されます
一時データ置き場であるS3バケットについて
• S3の利用費用はお客様負担です
• S3へのアクセス用Role:dms-access-for-endpointがDMSインスタン
スに追加され、権限でS3にアクセスされます
• バケットは”dms-”から始まる名前で作成されます
• 一時置きのデータはRedshiftにCOPY完了後に削除されます
• 作成したバケットはEndpointが削除と同時に削除されます
31
補足:Redshiftサポートのためのロール
dms-access-for-endpoint
ロールは右の権限を持ち
ます
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
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
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": "*"
}
]
}

More Related Content

AWS Database Migration Service ご紹介