AWS新人エンジニアにおくる:RDSを5.5系から5.6系にアップグレードする方法(前半)の後編になります。
前回のところまででリードレプリカを作成しました。いよいよリードレプリカをマスター昇格します。手順としてはリードレプリカをマスタに昇格して、アプリケーションの接続先RDSを切り替えるようになります。
その前に幾つか注意点があります。
注意点1
アプリケーションをメンテナンスモードにします。アプリケーション側から書込処理ができないように、あらかじめメンテナンス時間を設けてデータベースへのアクセスをブロック(もしくは読み込みのみ許可「Parameter Groupの切り替えが発生するので、現実的ではないかもしれません・・・」)しておきます。事前にユーザーに通知が必要ですね。
When you promote your MySQL 5.6 read replica to a standalone, Single-AZ DB instance, it will no longer be a replication slave to your MySQL 5.5 DB instance. It is recommended that you promote your MySQL 5.6 read replica during a maintenance window when your source MySQL 5.5 DB instance is in read-only mode and all write transactions are suspended. When the promotion is completed, you can direct your write transactions to the upgraded MySQL 5.6 DB instance to ensure that no write transactions are lost.
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeInstance.html
注意点2
ALTER TABLEなどを行う場合は、リードレプリカの段階であらかじめ処理をしておきます。新たにINDEXをはるなど、運用中に行うとパフォーマンスに影響が出る処理はあらかじめ行っておきます。
Prior to promoting your MySQL 5.6 read replica, it is recommended that you perform all necessary DDL operations, such as creating indexes, on the MySQL 5.6 read replica. This will avoid any effects on the performance of the MySQL 5.6 read replica after it has been promoted.
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeInstance.html
手順4:アプリケーションをメンテナンスモードにする
データベースへの書込を一時的にブロックするため、アプリケーションをメンテナンスモードなりにして、データベースへの接続を行わないようにします。
手順5:リードレプリカをマスターに昇格
Management Consoleからリードレプリカの「Promote Read Replica」を選択します。
バックアップの設定を行い、「Continue」をしてマスターに昇格を行います。バックアップの設定は今まで実運用していたRDSと同じルールにするといいかと思います。
5分ほどでマスタになるかと思います。
手順6:アプリケーションのデータベース接続先を変更し、メンテナンスモードを戻す
アプリケーションの設定ファイルに記述されているデータベースの接続先ホストを変更し、メンテナンスモードを切り替えます。
アプリケーションの設定は変えたくない、という場合は、RDSのIdentifierを変えて対応をします。古い方のIdentifierを別の名前に変更、新しい方のIdentifierを元々の名前に変更で10分位で作業が完了するかと思います。
手順7:Multi-AZの設定を行う
リードレプリカはシングルAZなので、必要に応じてMulti AZにしておきます。
Management Consoleから「Modify」を選択して、Multi-AZを「Yes」に変更してApply Immediatelyで反映します。RDSのリブート等は発生しないので、切り替えたら即時対応しておくのがよいかと思います。
以上が手順になります。
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeInstance.html