46億のmysqldump愛好家な皆様こんばんわ
ちょっとMySQLデータベースの移行経験ある俺です。ワタシチョットイコウデキル
ついに俺でもわかるシリーズタグの記事が30本目を迎えました。
俺以外の俺達も俺でもわかるシリーズタグをつけて記事書いてくれたこともあり、感謝の24365なエブリデイです。
記念にMySQL 5.5の環境からAuroraへダウンタイムを抑えて移行する方法を書き残します。
今回の例ではオンプレミス環境からAWSをターゲットとしていますが、AWS to AWSも可能です。
詳しく知りたい方は弊社の俺宛に連絡下さい。
ひょっこりノコノコ伺いに行くと思います。
過去Auroraへの移行を実現した手段
今回の構成
こんなかんじです。
データセンターとVPC間はインターネット接続なのでstunnelでトンネルはってます。
VPN Connection/Direct Connectでセキュア, 高速回線引いておいても良いです。
レプリケーションパターンでふつうに移行するとこんな流れになります
MySQL 5.5の環境をふつーにAuroraへ持っていく場合
事前準備
事前準備においてしんどいのは
MySQL 5.5 on EC2へのデータリストア, MySQL 5.6へのバージョンアップとAuroraへのリストアです。
移行対象のDBクラスタが多いほど辛みが増します。
事前複製作業
1.MySQL 5.5環境をターゲット環境に作る
2.ソース環境のMySQL 5.5からmysqldumpを使ってDBをバックアップする
3.バックアップしたDBデータをターゲットのMySQL 5.5環境へリストアする
4.ターゲット環境にAuroraを準備してバックアップしたDBデータをリストアする
5.ターゲット環境のMySQL 5.5をMySQL5.6へバージョンアップする
事前レプリケーション作業
6.ターゲット環境のAuroraとMySQL 5.6とレプリケーションする。
7.ターゲット環境のMySQL 5.5環境をMySQL 5.6にバージョンアップする
8.ターゲット環境のMySQL 5.6環境からソース環境のMySQL5.5にレプリはる
9.レプリケーションエラーなく同期できることをチェックする
切替当日
10.レプリケーションエラーの有無をチェックする
11.アプリをメンテに入れる
12.レプリケーションを止める
13.アプリエンドポイントを切り替える
14.裏口からアプリ動作チェック、データ整合性チェックする
15.アプリのメンテを解除する
16.ソース環境とターゲット環境のMySQLレプリケーションを停止して、環境を破棄する。
17.最高
MySQL 5.5からAuroraへの移行にDMSを使う
ちょっと楽するためにData Migration Service(DMS)を使います。
DMSを使った流れは以下の通りになります。
事前準備
DMSを使うことでAuroraへのデータリストアをすっ飛ばすことができますいえいいえい
事前複製作業
1.MySQL 5.5をターゲット環境に作る
2.ソース環境のMySQL 5.5からmysqldumpを使って移行対象のDBデータ(mysqldump dbname)とDDL(mysqldump --no-data)をバックアップする
3.バックアップしたDBデータをターゲットのMySQL 5.5環境へリストアする
4.ターゲット環境にAuroraを準備してbinlogを有効にする
5.バックアップしたDBのDDLをAuroraにリストアする
事前レプリケーション作業
6.ターゲット環境にDMSインスタンスを準備して以下の条件でDMSレプリケーションを実行します
ソース: ターゲット環境のMySQL 5.5
ターゲット: Aurora
レプリケーション方法: フルロード,フルロード後はCDC
※補足: DMSのソースDBをオンプレミス環境のMySQL5.5にすることも可能ですが、レプリケーション異常発生時の切り分けを、DMS依存のものなのか、オンプレミス<->VPCネットワーク障害なのか切り分けしやすくするため、EC2にMySQL5.5環境を作っています。
7.ターゲット環境のMySQL 5.5環境からソース環境のMySQL5.5にレプリはる
8.MySQLレプリケーション/DMSレプリケーション両方エラーなく同期が継続していることをチェックする
切替当日
9.レプリケーションエラーの有無をチェックする
10.アプリをメンテに入れる
11.DMSレプリケーションを止める
12.アプリエンドポイントを切り替える
13.裏口からアプリ動作チェック、データ整合性チェックする
14.アプリのメンテを解除する
15.ソース環境とターゲット環境のMySQLレプリケーションを停止して、環境を破棄する。
16.最ッッッ高ッッ!
DMS利用時の注意点
DMSにはいくつか制約があります。どんな制約があるかはここには書きません(DMSの機能も定期的に更新されていくので)
必ず移行計画時点でドキュメントをチェック
し、移行対象の環境で制約があてはまらないことを確認してください。
当てはまる場合は回避できるように対応をしてください。
良い移行ライフを!
完