概要
Microsoft Build 2017のキーノートでMySQLのフルマネージドサービスの発表がありました。
2017/5/13現在preview版ですが、一通り触ってみた所感と利用時の注意事項などについて書いていきたいと思います。
メリット
🍣 フルマネージドでサイジングが簡単
Azureでは今までMySQLのマネージドサービスは提供されてきませんでした。
そのため、インスタンスを立ててMySQLをインストールして利用するしかありません。
もちろんクラスターやレプリケーション、シャーディングといった冗長化や負荷分散には自前でその台数分のインスタンスを作成し、
それらを自分でプロビジョニング・管理する必要があります。
発表されたAzure Database for MySQLでは、コンピューティングユニットと、ストレージの容量がダウンタイムを(ほぼ)挟むことなく操作できます。
これにより、サイジングを簡単に行うことができます。
🍺 自動バックアップ
現在利用可能なBasicプランでは過去7日間のバックアップを自動で保管します。
ただし、復元の際には、新規でリソースを作成する必要があります。
デメリット
💀 フルマネージドなので細かいチューニングは不可能
フルマネージドサービスに共通して言えることですが、細かいチューニングはできません。
チューニングできる項目(後述)は限られるので、注意する必要があります。
😈 ポータルからのレプリケーションはできない
現在、ポータルからのレプリケーション設定はできないようです(間違っていたらごめんなさい)。
Azure SQL Databaseではactive geoレプリケーションでプライマリ/セカンダリとレプリケーションが可能ですが、MySQLにはまだ存在しないようです。
自分でレプリケーションを組む他なさそうです。
Azure Database for MySQLでできること
使用可能なMySQLバージョン
開始時にMySQL 5.6 または 5.7の選択が可能です。
設定可能な項目
現在、以下の項目をポータルにて管理/設定できます。
パラメーター名 | 初期値 |
---|---|
binlog_group_commit_sync_delay | 1000 |
binlog_group_commit_sync_no_delay_count | 0 |
character_set_server | LATIN1 |
div_precision_increment | 4 |
group_concat_max_len | 1024 |
innodb_adaptive_hash_index | ON |
innodb_lock_wait_timeout | 50 |
interactive_timeout | 1800 |
log_bin_trust_function_creators | OFF |
log_queries_not_using_indexes | OFF |
log_slow_admin_statements | OFF |
log_throttle_queries_not_using_indexes | 0 |
long_query_time | 10 |
max_allowed_packet | 536870912 |
min_examined_row_limit | 0 |
server_id | 1000 |
slave_net_timeout | 60 |
slow_query_log | OFF |
sql_mode | 0 項目が選択されました |
time_zone | SYSTEM |
wait_timeout | 120 |
おわりに
検証が不十分な箇所が散見し申し訳ないです。
所感として、正直まだproductionに投入できるほどのものではありません(preview版だし、basicしかないので当然だが)。
しかし今までインスタンスの管理コストがあったものが丸投げできるのは大きな魅力です。
またAzure SQL DatebaseではAWS RGSに比べても遜色のない様々な機能が提供されているので、GAまでにはよりAzureならではのフルマネージドdatabaseになっていくのではないかと思います。
これからどんどん機能が追加されていく(といいな)ので、どんどん検証していきたいと思います。