Gunma.web #24 MySQL HA

Preview:

Citation preview

MySQL HAについてGunma.web #24

Who• 村岡友介@jbking

• フリーランスのプログラマ

• どこか在住

• 群馬に住んでい「た」

• クラウド基盤を作ったり使ったりストリーム処理したり

• Python使い

• エンジニア歴10年超えてた

MySQL HA今日話すこと

まえふり

皆さんが作っているアプリケーションが「使っている」そのデータベースサービスはどうやって動くのかを紹介します

ようはインフラの仕組みです

茨の道です

アプリケーション

ミドルウェア

システム(ネットワーク)

HA?

HA• High Availability 稼働率

• システムを停めない

• 障害のときは正常系に切り換えたり

• 運用の人がやる作業を自動化してサポートするのがメイントピック

• 100%動きつづけるシステム…は存在しない…

MySQL HA?

MySQL HA• MySQLを使える状態にし続ける

• 負荷分散

• M/S構成の自動切り換え

• プロセス管理が主目的でハード管理は別スコープ

• ディスクフル

• ネットワーク障害

昔むかし、こんな案件がありました…

要件• MySQLを使いたい

• ネイティブのJSON型を使いたい (5.7から)

• HAな仕組みにしたい

• 先方の顧客にMySQLと言ったので他のものは使いたくない

• 意訳:InnoDB

• オンプレ

MySQL HAの選択肢• AWS RDS

• MHA

• PaceMaker

• MySQL Fabric

• MySQL Cluster

• Percona XtraDB Cluster

• MariaDB Galera Cluster

AWS RDS• Amazon Web Servicesのデータベースサービス

• MySQLの他に色々使える

• PostgreSQL、Oracle Aurora(MySQL ベースのAmazon魔改造)

• 障害時に自動回復

• 自然災害のときに別地域のインスタンスに切り換えとか

• オンプレでは使えない

MHA• 日本人のエンジニアが作者

• 歴史の長い実績のあるHAの仕組み

• MySQLのM/S構成を自動で切り換える

• メンテナンスモード?

• 最近のバージョンで使うには不安が残った

PaceMaker• 他の汎用HAの仕組みの上で動かす

• 歴史の長い実績のあるHAの仕組み

• MySQLのM/S構成を自動で切り換える

• 検証では動いたんだけれどもメンバーに渡すのに不安が残った(やりたいことに対して概念が複雑)

MySQL Fabric• 安心のMySQL(Oracle)プロダクト

• GA

• MySQLのM/S構成を自動で切り換える

• 独自xmlrpcプロトコルで問い合わせ

• 独自ドライバ(MySQL Connector)

• 管理用に別のデータベースが必要

MySQL Cluster

• 安心のMySQL(Oracle)プロダクト

• クラスタ組める(マルチマスタ)

• MySQL5.6ベース

• NDBエンジン

Percona XtraDB Cluster

• 安心のPercona

• クラスタ組める(マルチマスタ?)

• 世の中では使われているっぽい

• オリジナルのMySQLとは違う…

MariaDB Galera Cluster

• 安心のMariaDB

• クラスタ組める(マルチマスタ)

• 世の中では使われている(地雷踏まれてる)

• オリジナルのMySQLとは違う…

MySQL Fabricにした

これで安心

と思った?

動きませんでした

何が駄目だったか

• MySQL Connectorがメンテされていなかった

• 使っているフレームワーク(Django)で不具合

• MySQL Fabricが落ちるとデータベースに繋げられなくなる

何が駄目だったか

MySQL Router

MySQL Router

• MySQL Proxy

• 素のMySQLドライバが使える

• MySQL Fabricプラグイン

• 構成情報をキャッシュしてくれる

こうなった

現状の制限• MySQL Fabric 管理用のデータベースが冗長化できていない

• これはサービスに関係ないからMariaDB Galeraとかでもいいかも

• 切り換わったことの通知がない

展望• Group Replication

• 安心のMySQL (ry

• 5.7ベースのMySQL Cluster

• 顧客のオリジナルMySQLへのこだわりを無くす

• おれたちの戦いはこれからだ!

おしまい

Recommended