LoginSignup
7
4

More than 3 years have passed since last update.

RDSでMySQLからAuroraに移行しようとしてハマった

Posted at

RDSでMySQL5.6のエンジンが非対応になるとのことで、この際Auroraに変えるか、と思ったら、ちょっとハマったので備忘録として残します。

MySQLからAurora MySQLへの移行方法は、以下の公式ブログにベストプラクティスが記載されています。

簡単に手順を説明すると

  1. MySQLインスタンスからAuroraリードレプリカを作成
  2. インスタンスが立ち上がったら、ステータスを確認して、レプリケーションできてる事を確認
  3. (書いてないけど)WebアプリケーションのDBの向き先をAuroraに変更
  4. MySQL側のインスタンスを停止

親切に画面のスクリーンショットまで載っており、途中までは問題も起きずに進められたのですが、 レプリケーションのMasterとなっているMySQL側のインスタンスを停止ができなくて詰まりました。
アクションから停止を選択し、進めていくと、

"Cannot stop or start a Read-Replica instance"

というメッセージが出て、停止できない。

「いや、これリードレプリカじゃなくてMasterなんだが? Masterを停止したらリードレプリカが昇格するんちゃうんか? 話がちゃうで」

という疑問もありましたが、とにかく、レプリケーションの解除を行う必要がありそうです。

色々情報を彷徨ったのですが、ようやく見つけた方法がレプリカ側を昇格させるという方法。

RDSインスタンスの一覧から、リードレプリカとなっているのAurora クラスタ を選択し、アクションから 昇格 を選択する。

昇格自体は10秒程度で完了したと思います。恐らくダウンタイムも発生していないと思われます。多分...

昇格が完了後、無事MySQLインスタンスは停止できましたとさ。

めでたしめでたし。

追記

ほかの方法を記載している記事を発見しました。

上記の記事では、MySQLクライアントからコマンドをコールする事でレプリケーションを解除しています。
私は昇格によって解除したので、現在でもコマンドでの解除が有効かどうかは検証していません。

下記は上記記事からの引用です。

mysql> call mysql.rds_reset_external_master;
+----------------------+
| message              |
+----------------------+
| Slave has been reset |
+----------------------+
1 row in set (0.01 sec)
Query OK, 0 rows affected (0.01 sec)
7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4