Azure Database for MySQLを解説 【シリーズ Azureサービスいちから紹介】

このエントリはQiita Advent Calendar 2017 Microsoft Azureサービスいちから紹介 の9日目です。

ナレッジコミュニケーションの大柳です(@oyngtmhr)

9日目はAzure Database for MySQLです。データベースは、メインフレーム系からExadataまでいろいろやってきたので好きな分野のひとつです。

概要

Azure Database for MySQLは、クラウドで提供されるマネージド型のMySQLデータベースです。
データベースへのパッチ適用、バックアップ、監視、セキュリティ、フェールオーバー等のもろもろをAzureがよしなにやってくれます。OSSで多くのシステムで使われているMySQL。既存のMySQL環境からクラウドに移行することで、管理の手間を減らすことができます。
2017年12月7日時点では、パブリックプレビューのステータスです。

・データベース

InnoDBエンジンを使用したMySQL Community Editionが利用できます。MySQL 5.6.35とMySQL 5.7.18が利用可能です。

・リソース・性能

価格レベルと呼ばれる3つのレベルがあり、さらに各価格レベルの中で、コンピューティングユニットと呼ばれる処理性能を選択できます。

価格レベルは、Basic、Standard、そしてPremiumの3つのレベルがありますが、プレビューではPremiumは2017年12月8日時点では利用できません。

Basic:IOPS保証なしの小規模なワークロード向けです。開発環境や小規模なアプリケーションやWebサイトに向いています。
Standard:高スループットのIOPSが保証されます。中規模以上のWebアプリケーションや分析アプリケーションに向いています。
Premium:大量のトランザクションと低レイテンシが必要なワークロードに最適です。同時実行ユーザーが多く、低レスポンスが要求される、いわゆるミッション・クリティカルなアプリケーションに向いています。プレビュー段階では利用できません。


https://docs.microsoft.com/ja-jp/azure/mysql/concepts-service-tiers から引用

コンピューティングユニットは、CPU処理性能の測定値で、CPUとメモリリソースの組み合わせです。
100個のコンピューティングユニットが1つのコアに相当します。またメモリ量はコンピューティングユニット数に比例して増えます。
同じコンピューティングユニット数でも、Basicに比べてStandardは2倍のメモリが提供されます。メモリに余裕があるため、クエリを高速に、多数の同時実行数で処理することができます。

・高可用性

ハードウェア障害などでデータベースノードに障害が発生した場合には、Azure内部でフェールオーバーされます。切り替えに伴い、数十秒データベースが中断しますが、ユーザのアプリケーション側での接続先の切り替え等は必要はありません。

・バックアップ

自動バックアップが5分おきに取得されます。バックアップの保持期限はBasicが7日、Standardが35日です。バックアップを使って新しいサーバを作ることで、過去のある時点のデータベース状態に復元することができます。

・セキュリティ

SQL Databaseと同じように許可IPのホワイトリストをAzure Portalから、「サーバー ファイアウォールの設定」から定義できます。

その他

・Standard同士など、同じ価格レベル内でのコンピューティングユニット数の変更は可能(数十秒程度の処理中断あり)。BasicからStandardのように異なる価格レベルへの変更はできない。

・サーバーログは、Azure PortalとAzure CLIを使用して、一覧表示およびダウンロードできます。ログは、最大7日間保存されます。ログの合計サイズが7.5GBを超える場合は、古いファイルから削除されます。ログのローテーションは、24時間ごとか7.5GBごとのどちらか早い方のタイミングで行われます。

・マイナーバージョンアップは自動管理される。パブリック プレビュー段階では、メジャー バージョンのアップグレードはサポートされない。MySQL 5.6から MySQL 5.7へのアップグレードはできない。

料金

・現在はプレビュー料金となっているため、今後価格が変更される可能性があります。

・Basicはコンピューティングユニット50と100が選べます。ストレージは50GBを標準で含み、以降はGB単位で課金されます。

・Standardはコンピューティングユニット100/200/400/800が選べます。ストレージは125GBを標準で含み、以降はGB単位で課金されます。ストレージが増えるとGBごとにIOPSも3ずつ増えていきます。

・Premiumは未公開。

まとめ

Azure SQL Databaseなどと同じくMySQLもAzure上でマネージドサービスとして利用できます。MySQLは手軽で使いやすく、特にOSSのプロダクトと組み合わせて使うことが多いため、管理不要で使えるのは魅力的です。プレビュー版ということもあり、SQL Databaseと比べると不足している機能もありますが、今後の機能追加と早い時期に正式サービスとなることを期待したいと思います。

この記事を書いた人

azure-recipe-user