Microsoft Build 2017 のキーノートで発表のあった MySQL / PostgreSQL 関連の発表をざっくりと
Microsoft が MySQL/PostgreSQL のマネージドサービスを始めます
内部的にはずっと前から取り組みがされていて、多くの新規 Azure ユーザから望まれていた一方なかなか出てこなかった MySQL/PostgreSQL のマネージドサービスがいよいよ出てきました。 azure.microsoft.com azure.microsoft.com 何年も待ったわ~ほんとに。。。
これまでの MySQL/PostgreSQL マネージドサービスの課題
各種クラウドにあるサービスには大きく2つの課題があったと思います
“インスタンス” というサイジング
どのサービスも基本的に “仮想マシン” 単位で要求性能とキャパシティを決めて、そこにセットアップの自動化とバックアップ、そして別インスタンスへのフェイルオーバーを提供するものでした。 仮想マシンでのプロビジョニングはこれまでの運用感覚からいうと分かりやすい一方、仮想マシンへの手入れができないのでその点は諦める必要があるところがありました。
“ダウンタイム” のトレードオフ
障害発生時のフェイルオーバーが発生した場合、他のサービスではDNSによるフェイルオーバーだったりして、クライアント側が接続について考慮する必要がありました。 スケールアップのための操作には、シャットダウンが必要であり、これもサービスを一度メンテナンスモードにするなどのダウンタイムの考慮が必要でした。 また、MHAを使っている人がやるようなダウンタイムなしの運用を求めると、仮想マシンを使わざるを得なくなります。
Azure Database for MySQL/PostgreSQL の特徴
“コンピュートユニット” と “ストレージユニット” というサイジング
Azure Database for MySQL/PostgreSQL は、インスタンスという概念が存在しません。 “どの程度のCPUとメモリを利用するか” という、所望のワークロードに合わせたプランを選択することになります。 実際に Azure Portal からサービスを受けようとすると このように、処理量と要求ストレージをスライダーで設定する形になります。 Preview 中はこの変更に制限があるようですが、GA までにはこの設定変更が任意のタイミングに(運用中であっても変更可能!)できるようになるはずです。
docs.microsoft.com ここにざっくりとした解説がありますが、もっと詳しいリソースガバナンスについてはいずれ MySQL Casual などで話をしたいと思います。
Azure SQL Databaseと同様のダウンタイム
こうなると当然気になってくるのが “ユニット変更したときの挙動はどうなるの?” という点だと思います。 Azure Database for MySQL/PostgreSQL の挙動を知るには、Azure SQL Database の仕組みを知ることが近道です。 Azure SQL Database がどういう挙動をするかは docs.microsoft.com このドキュメントにありますが “average under 4 seconds, and in more than 99% of cases is less than 30 seconds.” が示す通り、基本的にこのダウンタイムでスケールアップ/スケールダウン、フェイルオーバーが行われます。 この特徴は MySQL/PostgreSQL のサービスにも引き継がれており、 docs.microsoft.com こちらにも全く同様の記述があります。
この仕組みについてもいずれ詳しく MySQL Casual などで話をしたいと思います。
Azure SQL Database for MySQL/PostgreSQL がより良くワークするユースケース
Movable TypeやWordpressなどのCMSやEC-Cubeなどのソフトウェアパッケージとの組み合わせ
普段のワークロードはそれほど高くないが、柔軟かつダウンタイムを短く運営したいという受託の多いWeb開発企業にとって、サービスをほぼ止めずに切り替えができるデータベースサービスは有利に働くと思います。
たくさんのDB/スキーマを管理しなければならないSaaS企業
SaaSの構築パターンとして、アプリは共通だがDB/スキーマを分ける運用をしている会社さんは多いのではないかと思います。 そういったサービスでありがちなのが、特定顧客のマスターだけ負荷が上がり始めるなど、ワークロードの偏りです。 そういう時に、ダウンタイムがより短くスケールアップできる選択肢があると、サービス運営にかかる負担を下げられるのではないでしょうか。
おわりに
Previewが始まったばかりなので、まだまだこれからですが、ついにMicrosoftがSQL Server以外のRDBMSを正式にサポートするということは大きな変化だと思います。 ご関心のある方はぜひ触ってみて、フィードバックを送ってください。
(General Feedback): New (2470 ideas) – Customer Feedback for Microsoft Azure
では。
※追記
キーノートの後のセッションで、ローンチ時点から日本リージョン(Japan East/Japan West両方!)で展開されることが発表されました。これで皆さん安心して(?)お試しいただけますね!