[アップデート]「Aurora MySQL 5.7」でAurora Global Databaseがサポートされるようになりました

はじめに

こんにちは。大阪オフィスの林です。

2019年11月26日(火)に「Aurora MySQL 5.7」でAurora Global Databaseがサポートされるようになりました。公式ページはこちら

本記事では作成済みのAurora MySQL5.7に実際にグローバルリージョンを追加してGlobal Database化していきたいと思います!

Global Databeseとは?

Aurora グローバルデータベースは、1 つのプライマリ AWS リージョン (データをマスターとして管理) と 1 つのセカンダリ AWS リージョン (読み取り専用) で構成されます。Aurora は、通常の 1 秒未満のレイテンシーでセカンダリ AWS リージョンにデータをレプリケートします。書き込みオペレーションは、プライマリ AWS リージョン内のプライマリ DB インスタンスに直接発行します。

公式ページはこちら

複数の AWS リージョンにまたがる低レイテンシーのアーキテクチャで、Global Databeseを利用することで災害時にセカンダリクラスターから高速なフェイルオーバーを可能にすることができます!

利用バージョンの前提条件

本日時点(2019/11/27)でAmazon Aurora MySQLでGlobal Databeseが利用できるのは以下3つのバージョンのみです。

  • global_10a (MySQL5.6互換)
  • 1.22.0 (MySQL5.6互換)
  • 2.07.0 (MySQL5.7互換)

検証してみた

今回は作成済みのAmazon Aurora MySQL2.07.0 (MySQL5.7互換)をGlobal Database化していきます。

RDSを選択します。

データベースを選択し、今回対象とするデータベースが「Amazon Aurora MySQL2.07.0」であることを確認します。

 

対象のデータベースツリーの「親」を選択し、画面右上の「アクション」から「リージョンの追加」を選択します。

 

!?!?!?!?

なるほど。Global Databeseが利用できるインスタンスタイプがあるので注意です。公式ページに記載のインスタンスタイプの前提条件は以下の通りです。

Aurora グローバルデータベースに db.t2 または db.t3 インスタンスクラスを使用することはできません。使用できるインスタンスクラスは、db.r4 または db.r5 です。

※AuroraMySQLでは「db.r3」インスタンスタイプも選択できるのですが、上記記載では使用できるかとうかわかりません。試しに「db.r3」インスタンスで「リージョンの追加」をしたところ次に進むことはできましたのでご参考まで。

 

今回は使用できるインスタンスタイプに記載のある「db.r4」に変更し検証を進めていきます。

 

対象のデータベースツリーの「親」を選択し、画面右上の「アクション」から「リージョンの追加」を選択します。

 

「リージョンの追加」画面が表示されます。※読み込みに少し時間がかかるようで数十秒待機します。

 

「グローバルデータベース設定」や追加する「リージョン」を設定します。

 

それ以降の設定は、AuroraMySQL作成時と同じような項目があるので環境に応じて設定、選択し画面下部の「リージョンの追加」を選択します。

 

ダッシュボードに戻ると先ほど指定した「グローバルデータベース設定」でクラスターが組まれていることが分かります。※利用可能になるまで十数分かかりました。

 

サポートしてないAurora MySQLバージョンでリージョンの追加をしてみた

サポートしていないAurora MySQLバージョン(5.7.mysql_aurora.2.03.4)で同じようにリージョン追加してみます。

 

画面右上の「アクション」から「リージョンの追加」を選択します。

 

ちゃんと「できない!」と叱ってくれます。

Global Databeseを利用したい場合は必要に応じてエンジンのバージョンアップ等をご検討いただければと思います。

まとめ

数クリックでAuroraMySQLをGlobal Databese化することが出来ました!Global Databeseでは災害復旧の状況で通常1 分未満でセカンダリクラスターを昇格させて書き込みに対応できるとも言われています。低レイテンシーなアーキテクチャに加え可用性の向上に一役買う良いアップデートではないでしょうか!

以上、大阪オフィスの林がお送りしました!