Aurora DBクラスタのバージョンロールバック手順 – Techfirm Cloud Architect Blog

初めに

Auroraクラスタのエンジンバージョンアップした後に

  • 元のバージョンに戻したくなった
  • アプリケーションが参照している接続エンドポイントを変更せずに、ロールバックが必要になった

といったケースはよくある事象かと思います。
Auroraクラスターはバージョンダウンできませんが、バージョンの古いDBスナップショットがあれば、スナップショットからクラスターを復元しバックアップ地点までロールバックできます。
また、クラスターのエンドポイント名がクラスター名依存のため、復元したDBのクラスター名を、元のDBクラスターから新しいDBクラスターに譲ることで、アプリケーションが参照しているエンドポイント名を維持できます。
本記事では、実際の手順について解説します。

前提

ダウングレードしたいエンジンバージョン(アップグレード前)のDBスナップショットがあること。

注意点

  • スナップショットから復元してるためデータがロールバックされてしまいます。
  • ダウンタイムが発生します。

環境

作業前の確認

アップグレード済みのクラスター(8.0.mysql_aurora.3.09.0、MySQL 8.0.40)
アップグレード済みのクラスター

Auroraクラスターエンドポイントを使ってDB接続。DBのMySQLバージョンが8.0.40であることを確認します。

[root@●●● bin]#  mysql -h test-db-main-cluster.cluster-●●●.ap-northeast-1.rds.amazonaws.com -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 588
Server version: 8.0.40 24b0343c

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

アップグレード前のスナップショットが存在することを確認します(8.0.mysql_aurora.3.05.2)
旧スナップショット

手順

アップグレード前のスナップショットでクラスターを復元する

コンソールのスナップショット一覧から、アップグレード前のスナップショットを選択し、詳細画面からDBクラスターを復元します。
DBクラスターの復元操作

DBインスタンス名を「test-db-sub」とします。
DBクラスター名は復元後自動でDBインスタンス名+「-cluster」になります。(この場合test-db-sub-cluster)
DBインスタンス名の指定

DBクラスター、DBインスタンスが復元されたことを確認します。
復元されたDB

アップグレード済みのDBクラスターとDBインスタンスの名称を復元したDBクラスターとDBインスタンスに譲る

  • 元々のDBインスタンス名を空けるため、DBインスタンス名を退避する

コンソールからDBインスタンスを選択し、DBインスタンスの設定変更画面からDBインスタンス名、DBクラスター名を変更します。

DBインスタンス名:test-db-main → test-db-main-moved  
DBクラスター名:test-db-main-cluster → test-db-main-cluster-moved  

エンドポイント名がクラスター名依存のため、ここで元々使われてるエンドポイントに繋がらなくなります。 
DBインスタンス名退避

  • 復元したインスタンスの識別子を元のDBインスタンス名、DBクラスター名に変更する

DB名を退避した時と同じ手順でDBインスタンス名、DBクラスター名を変更します。

DBインスタンス名:test-db-sub → test-db-main  
DBクラスター名:test-db-sub-cluster → test-db-main-cluster

ここで繋がらなくなったエンドポイントが復活します。
DBインスタンス名、DBクラスター名を元の名称に変更

名称変更後の状態

接続確認

Auroraクラスターエンドポイントを使ってDB接続します。MySQLバージョンが8.0.32にロールバックされたことを確認します。

[root@●●● bin]#  mysql -h test-db-main-cluster.cluster-●●●.ap-northeast-1.rds.amazonaws.com -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 872
Server version: 8.0.32 Source distribution

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

最後に

当記事で紹介された方法でAuroraエンジンバージョンをロールバックできますが、アップグレードする時のトラブル対策としてBlue/Greenデプロイを検討するのも一考です。
制約事項を確認し、こちらを使用することも考慮してください。

Blue/Greenデプロイの制約事項




Source link

関連記事

コメント

この記事へのコメントはありません。