AWS Database Migration Service ご紹介

0
-1

Published on

2016年2月16日「事例とデモで知るAWSへのデータベース移行」での AWS Database Migration Serviceご紹介の資料です。

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
0
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

AWS Database Migration Service ご紹介

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

×