WordPress で Azure Database for MySQL を使う

Web Service,WordPressAzure,MySQL

先日開催された Microsoft によるカンファレンス Build 2017 で Azure Database for MySQL がプレビュー版としてリリースされています。


Azure Database for MySQL – Fully-Managed Service | Microsoft Azure

これまでは、Azure で MySQL のサービスがなかったんですよね(サードパーティーによるサービスはありました)。プレビュー版ですが、さっそく当サイトの WordPress のデータベースを Database for MySQL に切り替えて使ってみています(この記事の投稿時点)。

以前は Azure で MySQL を運用するには、仮想マシンに MySQL をインストールして使わざるを得ず、わざわざ仮想マシンやその上の OS まで扱う手間がありました。Azure Database for MySQL では、MySQL だけ扱えばよく、簡単にスケールもできます。

Web App で WordPress の新規作成

Azure Portal から新規に WordPress を Web App 上に作る場合、Database for MySQL を選べるようになっています。

Azure Database for MySQL の選択

Database for MySQL の料金は、1ヶ月数千円からです。

価格レベル

データベースへの接続文字列は Web App のアプリケーション設定で指定しています。接続文字列は次のような値が設定されています。

Database=mysqldatabase41877;Data Source=webapp-mysqldbserver-541c46dd-41877.mysql.database.azure.com;User Id=mysqldbuser@webapp-mysqldbserver-541c46dd-41877;Password=********

接続文字列

WordPress の wp-config.php でのデータベース設定は、この値を使って指定されています。


<?php
$connectstr_dbhost = '';
$connectstr_dbname = '';
$connectstr_dbusername = '';
$connectstr_dbpassword = '';
foreach ($_SERVER as $key => $value) {
if (strpos($key, "MYSQLCONNSTR_") !== 0) {
continue;
}
$connectstr_dbhost = preg_replace("/^.*Data Source=(.+?);.*$/", "\\1", $value);
$connectstr_dbname = preg_replace("/^.*Database=(.+?);.*$/", "\\1", $value);
$connectstr_dbusername = preg_replace("/^.*User Id=(.+?);.*$/", "\\1", $value);
$connectstr_dbpassword = preg_replace("/^.*Password=(.+?)$/", "\\1", $value);
}
/** MySQL hostname */
define('DB_HOST', $connectstr_dbhost);
/** The name of the database for WordPress */
define('DB_NAME', $connectstr_dbname);
/** MySQL database username */
define('DB_USER', $connectstr_dbusername);
/** MySQL database password */
define('DB_PASSWORD', $connectstr_dbpassword);

view raw

wp-config.php

hosted with ❤ by GitHub

Database for MySQL

MySQL の情報や設定も見てみます。

サーバーに接続するためのサーバー名・ユーザー名は「概要」に表示されています。リソース使用率や作成したデータベース名などもわかります。

概要

WordPress と使うときの接続セキュリティの設定です。SSL は無効、IP アドレスはすべて許可しています。

接続セキュリティ

Azure Database for MySQL だけ新規に作ると、SSL 有効・ファイヤーウォール有効のため、既存の WordPress から接続するときは注意です。

Web Service,WordPressAzure,MySQL

Posted by jz5