このエントリは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と比べると不足している機能もありますが、今後の機能追加と早い時期に正式サービスとなることを期待したいと思います。