KUSANAGIはWordPressのアクセラレータとして人気が高いOSSです。AzureのMarketplaceからもデプロイが出来るようになっており、手軽に高速なWordPress環境を構築出来ます。
一方で、Marketplaceのイメージは、単一の仮想マシンにWordPress + nginx / apache + MariaDBを構成するため、ウェブサーバとDBの負荷に応じて独立してスケールさせることが出来ません。
そこで、MariaDBではなく、Azure Database for MySQL Flexible Serverを利用するようにしてみましょう。
KUSANAGIのデプロイ
特に難しいことは無いと思われます。Azureポータルから[Create a resource]をポイントします。
検索フィールドに”KUSANAGI”と入力すると、候補が表示されます。
今回は検証目的なので、OSS版のKUSANAGIを選択します。
本番サーバとして用いるのであれば、KUSANAGIの主な開発元であるPrime Strategyがサポートを提供するエディションを選択しましょう。執筆時点で、KUSANAGIの機能に応じた以下のエディションが提供されています。
- KUSANAGI 9 for Microsoft Azure Business Edition
- KUSANAGI 9 for Microsoft Azure Premium Edition
- KUSANAGI Security Edition for Microsoft Azure
あとはいつものようにVMを作成します。
デプロイが完了したら、VMのIPアドレスからDNS名を設定します。
Azure Database for MySQL Flexible Serverのデプロイ
KUSANAGIを作成したリソースグループに、MySQLを追加します。Marketplaceから[Databases]→[Azure Database for MySQL Flexible Server]を選択します。
“Flexible Server”の[Quick Create]を選択します。WordpressをAzure AppServiceで動かすオプションについては、別のブログ記事で書いています。
MySQLのデプロイが完了したら、MySQLの”Networking”から[Allow public access from any…]を有効にします。本番サーバの場合は、VNET統合などを検討してください。
KUSANAGIの設定
KUSANAGIのVMにsshでログインし、RPMパッケージを更新します。
dnf -y update
次にKUSANAGIを初期化します。
kusanagi init --passwd PASSWORD --dbrootpass DB_PASSWORD --nophrase
さらにWordPressをプロビジョニングします。
kusanagi provision --wp --wplang ja --dbuser DB_USER --dbpass DB_PASS --dbname kusanagi-wp --fqdn your_host.japaneast.cloudapp.azure.com --email EMAIL --title 'first blog' --adminuser admin --adminpass ADMIN_PASS --adminemail ADMIN_EMAIL kusanagi1
各引数の意味については、以下のコマンドで確認できます。
kusanagi provision --help
fqdn
引数には、KUSANAGIのVMに設定したDNS名を設定します。また位置引数として、”kusanagi1″を指定していますが、これはKUSANAGIのプロファイル名となります。
MariaDBからMySQLに変更する
WordPressのプロビジョニングが完了すると、”/home/kusanagi/profile_name/wp-config.php
“が生成されます。パーミッションを変更し、エディタで開きます。
chmod 755 /home/kusanagi/kusanagi1/wp-config.php
プロビジョニング時に指定した、DBアカウントやパスワードが設定されていることを確認し、以下の2点を更新・追加します。
- DB_HOSTを”localhost”から、Azure Database for MySQL Flexible ServerのFQDNに変更
- define(‘MYSQL_CLIENT_FLAGS’, MYSQLI_CLIENT_SSL); を追加
Azure Database for MySQL Flexible Serverは、SSL/TLS接続が必須となるため、定数の追加が必要です。編集が完了したら、パーミッションを元に戻します。
chmod 440 /home/kusanagi/kusanagi1/wp-config.php
WordPressにアクセスする
KUSANAGIのVMのFQDNにウェブブラウザでアクセスすると、WordPressの初期設定ダイアログが表示されます。アカウント: kusanagi、パスワード: kusanagi provision実行時に指定したパスワードで認証されるので、最初のブログを作成してみましょう。後は、いつも通りのWordPressと同様に利用できるはずです。