今回は本webサイトのパフォーマンスをあげるために試行錯誤をしてみました。
現状の確認
今まで何も考えず Windows ベースの App Service Plan を使っていました
しかし Linux の方が安く、WordPress においては Windows よりも圧倒的な実績がありそうなのでパフォーマンスの向上も期待して変更してみます
改めて現在の環境を見てます
サーバーの応答時間が平均して約2秒かかっています

CPU の使用率は高くないものの、メモリの使用率が非常に高いです
これは MySQL in App という App Service プラン上で MySQL 環境を使っているところに起因している気がします
そのため別のSQL DBを用意することにします

またストレージは全く使っていませんそこで、メモリを上げつつ、ストレージを落としてみることにしました
選んでみたのは Linux ベースの B2 プランです以下が比較表です
移行前の環境 | 移行先の環境 | |
---|---|---|
OS | Windows | Linux |
Plan | S1 | B2 |
コア数 | 1 | 2 |
RAM | 1.75GB | 3.50GB |
ストレージ | 50GB | 10GB |
DB | MySQL in App | Azure DB for MySQL Basic, 1core, 5GB |
価格 | ¥9,647.68/月 | ¥7,343.84/月 |
パフォーマンスの向上が期待できそうで、なおかつコストも安く済みそうです!
移行先のプランが決まったので、さっそくリソースを作成してみます
手順
大きく以下の手順です
- 既存サイトのバックアップ
- App Service Plan & App Service の作成
- WordPress のインストール
- Azure Database for MySQL の作成
- WordPress の初期設定
- カスタムドメイン・SSLの設定
- データの移行
- 検証
1.既存サイトのバックアップ
まずはバックアップを取っておきます
既存の WordPress (Windows) からデータをエクスポートし、新規で作成した WordPess (Linux) へインポートする準備をします
WordPress のエクスポートは簡単で、管理者画面から操作ができました
2.App Service Plan & App Service の作成
次に新規作成した App Service Plan (Linux) へ 新規に WordPress 環境を作成します
以前に MarketPlace から 簡単に作成しましたが、今回は少し手順を踏んで仕組みを理解してみますこちらの記事を参考にしました
Easily Deploy WordPress on Azure App Service (A Concise Guide for Azure Architects) – TutLinks
SQLのネットワーク設定のために **「プロパティ」> 「送信 IP アドレス」**をメモしておきます
3.WordPress のインストール
WordPressは AppService に SSH 接続をして実行します
移動 → をクリックすると 以下のような画面が表示されるので WordPress のインストールを実行します
cd /home/site/wwwroot
wget -c http://WordPress.org/latest.tar.gz
tar -xzvf latest.tar.gz
mv WordPress/* /home/site/wwwroot/
rm -rf WordPress
rm -rf latest.tar.gz</code></pre>
4.Azure Database for MySQL の作成
Azure Database for MySQL のシングルサーバーを作成します
作成が完了すると「サーバー名」と「サーバー管理者ログイン」を確認しておきます
MySQL にローカル環境から接続できるようにセキュリティの設定を変更しておきます
またメモした App Service の送信IPアドレスも入力しておきます
例)ファイアウォール規則名:rule01、開始IP:1.1.1.1、終了IP:1.1.1.1
MySQL に接続します。こちらを参考にしました
クイック スタート:接続 - MySQL Workbench - Azure Database for MySQL | Microsoft Learn
接続が完了したら WordPress 用の スキーマを作成します
SCHEMAS の中で右クリックをし、Create Schema… を選択します
名前を入力して、**Apply **を選択します
新しいウィンドウが表示されますが そのまま **Apply **を選択します
5.WordPress の設定
App Service の画面から 参照 をクリックして別タブで表示します
WordPress の初期設定を行います
このときデータベース項目は作成した内容を入力していきます
以下のページが表示されると無事に設定が完了です
6.カスタムドメイン・SSLの設定
WordPress を SSL に対応させるために Really Simple SSL をインストール&有効化します
次に Azure 側でカスタムドメインの設定を行います
詳しい手順はこちらを参考にしてください
既存のカスタム DNS 名をマップする - Azure App Service | Microsoft Learn
カスタムドメインの追加を選択し、検証を行います
検証ができたら「カスタムドメインの追加」を選択します
次に TLS/SSL の設定で、バインディングの追加をします
最後に WordPress の設定画面で カスタムドメインを使ったURLを設定します
7.データの移行
最後に初めにエクスポートしたデータのインポートやテーマのインストールを実行します
データのインポートの詳細はこちらを参考にしました
WordPressのサイトを別のサーバーに移行する方法【初心者向け】 | TechAcademyマガジン
8.検証
最後に新しい WordPress 環境が正しく動作できているか確認をします
まず DNS 期待通り反映されているか確認します
手順 7 の直後は 以前の環境のままだったのでしばらく待ってみました
適当に時間をおいたあと再度確認してみると、うまく反映されていました
各種メトリックでパフォーマンスが改善したか確認してみます
(青:以前の環境。オレンジ:新しい環境)
まずは応答時間です
平均値だけを見ると改善していますが、オレンジは外れ値が多すぎて参考にならないですね
WordPress の設定変更をたくさん行っていた時間帯なので、通常のサイト運営になるともう少し落ち着くと期待しておきます
次にCPU使用率です
こちらも平均値を見ると下がっています
そこまでの外れ値がないのでこれは改善したといって問題なさそうです
最後にメモリ使用率です
こちらも特に外れ値がなく改善したことがわかります
まとめ
今回は プランの変更を行ってパフォーマンスの改善を試みました
結果としては以下です
パフォーマンスを改善しつつ、コストも節約できたので一石二鳥でした
結果 | 評価 | |
---|---|---|
応答時間 | -0.31 秒 | ?(様子見が必要) |
CPU 使用率 | -3% | ○ |
メモリ使用率 | -23% | ○ |
コスト | ¥-2,303.84 | ○ |