MySQL in App

まだPreviewですが、Azure App Service Web Apps内で利用できるローカルのMySQLインスタンスが構成できるようになりました。(Preview)

新規でWeb Appsを作成する際、「Web Apps + MySQL」を選択し、プロバイダーからMySQL in App (Preview)を選択することで有効化できます。

imageimage

既存のWeb Appsで有効化する場合はWeb Appsのブレード内にある「MySQL In App」から機能をOnにするだけです。
image

有効化された場合、ログの設定など見ることができます。

image

なお有効化するとphpMyAdminのプラグインも入るので *.scm.azurewebsites.net/phpMyAdmin でアクセスできます。(ブレード上部の「管理」のリンク)

※SCM配下なのでMSアカウントなど権限のあるユーザーで認証してアクセスすればphpMyAdminそのもののログインはパスしてアクセスできます

image

なお既定のユーザーは azure 、パスワードは password なようです。このMySQLのインスタンスにはローカルからしか接続できないのでそのあたり注意が必要ですね。またリスンしてるポートもバラバラ(既定値ではないし、インスタンスがリサイクルされると変わる)ので注意してください。Kudu上のコンソールなどでMySQL.exeを使ってアクセスすることもできます。

"D:\Program Files (x86)\mysql\5.7.9.0\bin\mysql.exe" -e "show databases" --user=azure --password=password --port=49175 --bind-address=127.0.0.1

image

空のデータベースとしてazuredb が作られてたりします。まぁ後はご自由に(基本的にこのazuredbだけが使える感じでしょうか?)。ポート番号はphpMyAdmin上で確認するのが楽です。またアプリから接続する場合はサーバー環境変数に「MYSQLCONNSTR_localdb」という名前で接続文字列が入ってるのでそこから取得する感じになります。(MySQLのポート番号は WEBSITE_MYSQL_PORT に入ってます)

image

元Blogに接続文字列からもろもろ取得する方法が書かれているので参考にどうぞ。またベストプラクティスとしては決めうちせず、サーバー環境変数から取得するようにしましょう、ということです。ポート番号が毎度かわったりするので。これは現状mysqldをワーカープロセス内で動かしてるためです。

image

ということでベストプラクティスとして挙げられているのは、Web AppsがBasic以上の場合はAlwaysOnを有効にしてアイドル時にMySQLのインスタンスが落ちないようにする、Free、Shardプランの場合はWEBSITE_FASTCGI_MAXINSTANCES アプリ設定を3に設定するなどでしょうか。

制限事項

プレビューということで以下の制限事項があります。

  • 現状、Web Appsのインスタンスが1つの場合のみサポートしてます。オートスケールも非サポートです。
  • Web AppsのLocal Cache機能は非サポートです。
  • MySQL in Appにリモートからアクセスできません。同じWeb Apps上のアプリやKuduのコンソール上もしくはphpMyAdminからのみアクセスできます。

パフォーマンスについて

リモートから接続できないのであくまで参考まで。

WordPress経由での例ですね。キャッシュなども併用してがんばってください。

その他

まとめ

まだPreviewということで制限もありますが、単純なMySQL+Webアプリの場合に活躍できそうですね。ただ現状の制限だと1インスタンスで賄える範囲が対象となると思います。
マネージドなClearDBの代わりに自前で仮想マシンを立てる必要もないのでその手の用途では重宝しそうです。

MySQL in App」への2件のフィードバック

  1. ピンバック: WordPress + MySQL In Appをざっくり試してみました。 | nrjlog

  2. ピンバック: Azure Update (2016.09.01) | ブチザッキ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中