MySWL×SCSK

MySQL ClusterをはじめとするHAソリューションなど、
SCSKが最先端の技術力でソリューションを提供します

見積依頼 資料ダウンロードはこちら

TOPICS

[Amazon Aurora]InnoDB ClusterとAuroraのHA構成の比較:アプリケーションからの接続

前回のブログポストでは、InnoDB ClusterとAurora MySQLの概要について書きました。

今回はアプリケーションからの接続という観点について話したいと思います。

InnoDB Cluster

InnoDB Clusterでは、Group ReplicaitonによってMySQLのグループレプリケーションメンバーの自動的な障害ノード検知や自動フェールオーバーが行われます。 InnoDB Clusterでは、MySQL Routerがクライアントからの接続エンドポイントとして機能します。

MySQL Routerのデプロイは以下のコマンドにより、接続先のMySQL Serverからメタデータを取得し自動的に設定を構成します。 この時MySQL Routerはgroup_replication_single_primary_modeのシステム変数を確認することで、対象のGroup Replicationがシングルプライマリモードがマルチプライマリモードかを判断しています。

shell> mysqlrouter --bootstrap localhost:3310 --directory /opt/myrouter --user mysql

MySQL Routerはデフォルトで、Read/Writeの接続ポートを6446,Read Onlyのポートを6447で受け付けます。Group Replicationのノード障害が発生した場合MySQL Routerが正しいルーティング先に設定するため、アプリケーションはMySQL Routerに接続するだけで、接続先を意識する必要がありません。

アプリケーションからMySQL InnoDB Clusterへの接続

03_innodbcluster_full.png

Aurora MySQL

Aurora Clusterにはクラスタエンドポイント、読み込みエンドポイント、インスタンスエンドポイントが提供されています。

クラスタエンドポイントは常にWriterインスタンスを指します。読み込みエンドポイントは、ReaderインスタンスのインスタンスエンドポイントがCNAMEで登録されています。インスタンスエンドポイントは、個々のAuroraインスタンスに接続するためのエンドポイントです。

アプリケーションからAmazon Aurora MySQLへの接続

04_aurora_endpoint.png

Writerノードの障害が発生し、フェールオーバーが起きると自動的にクラスタエンドポイントと読み込みエンドポイントは正しい設定に再構成されます。また、Aurora MySQLのアーキテクチャ仕様のためと思われますが、キャッシュの整合性を取るためにフェールオーバー発生時には各ReaderのAuroraプロセスがリスタートされます。

またAurora MySQLでは、MariaDB Connector Jのドライバ使用で高速フェールオーバーが実現可能です。ドライバにクラスタエンドポイントを登録することで[^1]、MariaDB Connecotor JはAuroraのメタデータ(informationschema.replicahoststatus)を利用し、innodbread_onlyシステム変数でWriterノードの識別を行っています。 検証した結果で確認出来ていますが、AWSの提供するエンドポイントの切り替わりより早く、フェールオーバー発生時にWriterノードの判別が可能です。

[^1]: MariaDB Connector J 1.5.1以前のバージョンの場合は、全てのインスタンスエンドポイントを登録して利用します。

最後に

最後に、それぞれの特徴について表としてまとめました。

MySQL InnoDB ClusterとAurora MySQLの機能比較
MySQL InnoDB Cluster Aurora MySQL
対応ストレージエンジン InnoDB InnoDB
MySQLバージョン 5.7.17~ 5.6.10互換
オープンソース ◯ ( GPLv2 ) ×
データ同期 Group Replication Auroraストレージ
Quorum 過半数 書き込みは4つ、読み込みは3つ
マルチマスター △ ( preview )
自動フェールオーバー
自動リカバリ ◯ ( GTID差分リカバリ ) ◯ ( Auroraストレージによる自動修復 )
自動バックアップ ×
シャーディング △ ( 対応予定 ) ×
Read/Write振り分け MySQL Router クラスタエンドポイント
読み込みエンドポイント
管理 MySQL Shell AdminAPI GUI、AWS CLI

InnoDB Clusterはシャーディングについて今後対応予定です。また、Aurora MySQLはこのブログを書いている最中に、マルチマスター対応がpreview版として発表されました。

両者とも機能のアップデートが続いておりますので、引き続き情報を追っていきたいと思います。

最後まで読んで頂きありがとうございました。

SCSKだから選ばれる

10年以上にわたるMySQLの取り組み

10年以上にわたるMySQLの取り組み

MySQLオフィシャルトレーニングを多数担当。日本オラクル社のパートナー認定制度「MySQL Specialization」国内第1号取得。オリジナル全文検索ソリューション開発

SCSKの強み

SCSKの強み

オフィシャルトレーニング資格を有する技術者が提供する高い技術力。大規模通信系システム、大規模基幹系システムなども経験。国内企業数百社に対する導入実績。MySQLに関連する全てのサービスをワンストップで提供

お問い合わせ

MySQLやMySQL関連ソリューションに関するお問い合わせ、資料請求、お見積、ご相談などございましたら、こちらよりご連絡下さいませ。

お問い合わせ資料ダウンロード見積依頼

OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。