Weitere ähnliche Inhalte
Ähnlich wie 20160705 ふたつのAuroraクラスタを同期した話 (19)
20160705 ふたつのAuroraクラスタを同期した話
- 2. © 2016 Zaim Inc. All rights reserved.
エンジニア
iOS Web インフラ
株式会社 Zaim 西本航 (@watura)
自己紹介
2
- 3. © 2016 Zaim Inc. All rights reserved.
クチコミで普及した国内最大級のオンライン家計簿
500万ダウンロード突破!!
家計簿サービス 「Zaim」
3
- 4. © 2016 Zaim Inc. All rights reserved.
AWS RDS MySQL → Aurora
4
TokyoRegionに来て,比較的早い段階で移行
•500万ユーザに向けて
•http://www.slideshare.net/watura1/zaim-500
•500万ユーザに向けて ∼Aurora編∼
•http://www.slideshare.net/watura1/zaim-500aurora
↑の要約
•サービス停止メンテの必要ができた
•じゃあ対象DBをAuroraに乗り換えてみよう!
•やってみたよ!
この頃,Auroraは暗号化に対応していなかったんです
- 5. © 2016 Zaim Inc. All rights reserved.
2015年12月 暗号化に対応
5
•暗号化はしておきたい
•後から暗号化はできない
•replicaは暗号化みたいなこともできない
→ 1から暗号化されたデータベースを作りなおす
- 6. © 2016 Zaim Inc. All rights reserved.
いつもの手順
6
•リードレプリカを作る
•リードレプリカのレプリケーションを止める
•リードレプリカを元に新しいクラスタを作る
•旧クラスタをマスターにしてレプリケーション
•delayが0になるまで待つ
•切り替え作業
- 7. © 2016 Zaim Inc. All rights reserved.
ダメでした
7
•CALL mysql.rds_stop_replication; 使えない
•mysqldump ̶master-data=2 使えない
→Binary Log の positionがわからない
- 8. © 2016 Zaim Inc. All rights reserved.
力技で解決
8
•dumpする直前に show master status
•それからdump
•dumpしたデータを暗号化されたインスタンスへ
•最初に表示した binary log position を使って
•call mysql.rds_set_external_master
•call mysql.rds_start_replication
•重複が発生するので
•call mysql.rds_skip_repl_error
- 9. © 2016 Zaim Inc. All rights reserved.
まとめ
9
•暗号化されていないクラスターをマスター
•暗号化されたクラスターをリードレプリカ
•Binary Logの位置を書き出すのに苦労した
•レプリケーションできたらあとはいつもの手順
•無事に暗号化されました
•もっと頭のいい方法があったのではないか??
•rds_skip_repl_error をひたすら連打とか...
- 10. © 2016 Zaim Inc. All rights reserved.
info@zaim.net
ご静聴ありがとうございました
10