Azure Web サイトで実行中の WordPress に Memcached を使用する
このポストは、1 月 25 日に投稿された WordPress with Memcached on Azure websites の翻訳です。
編集メモ : 今回は、Windows Azure Web サイト チームでプログラム マネージャーを務める Sunitha Muthukrishna と Windows Azure Web サイト開発エクスペリエンス パートナーの投稿をご紹介します。
Azure Web サイト サービスで実行している WordPress の Web サイトのパフォーマンスを向上させたいとお考えなら、キャッシュを使用して Web サイトを高速化させる方法があります。Web サイトのトラフィック量が多い場合は、分散メモリ キャッシュのメカニズムを採用してセットアップすると最適な結果が得られます。
Memcached は汎用分散メモリ キャッシュ システムで、動的なデータベース駆動型 Web サイトでデータやオブジェクトを RAM にキャッシュして外部データ ソース (データベースや API など) の読み込み回数を減らし、高速化させる目的でよく活用されています。Memcached システムではクライアント/サーバー型アーキテクチャを使用します。ユーザーが運営している Web サイトなどのクライアントは、クライアント側のライブラリ (この場合は Memcached ライブラリである PECL) を使用して、11211 番のポートを通じてサービスを提供するサーバーに接続します。各クライアントはすべてのサーバーを認識していて、サーバーは相互の通信を行いません。
クライアントが特定のキーに対応する値を設定したり読み込んだりする場合、まずクライアントのライブラリが該当するキーのハッシュを計算し、使用するサーバーを決定してから、そのサーバーとの接続を確立します。接続先のサーバーは、該当するキーの 2 つ目のハッシュを計算して、保存先の決定や、対応する値の読み取りを行います。
Memcached のクライアントは、Memcached サーバーを一時キャッシュとして扱う必要があります。Memcached に保存されているデータが、必要なときに必ず残っているとは限りません。MemcacheDB、Couchbase Server、Varnish などのデータベース サーバーでは、Memcached プロトコルとの互換性を保ちつつ永続的なストレージを提供しています。
このチュートリアルでは、次の手順について説明します。
- Memcached サーバーを Azure Ubuntu VM でセットアップする方法
- ユーザーが所有する WordPress サイトで Memcached を構成する方法
Azure VM での Memcached のセットアップ
Azure 管理ポータルにログインし、Ubuntu VM を作成します。この手順の詳細については、「仮想マシン ギャラリーから Linux VM を作成する方法 (英語)」のページを参照してください。まだ Azure のアカウントを所有していない場合は、30 日間の無料評価版をお試しください (\17,000 相当分の Windows Azure のリソースをご利用いただけます)。
Ubuntu VM にアクセスするには、PuTTY (英語) などの SSH クライアントをインストールします。この手順の詳細については、「Linux VM で SSH を使用する方法 (英語)」のページを参照してください。PuTTY クライアントを開いて VM 名 (例: memcachesrv.cloudapp.net) を入力し、 [Open] をクリックします。
該当する仮想マシンの管理者ユーザー (この例では azureuser) としてログインした後、次のコマンドを実行します。すると、ルート ユーザー権限を使用可能な状態で Linux のシェルが起動されます。さらに、既存のリポジトリからパッケージ リストがダウンロードされ、パッケージと VM の依存関係が最新のバージョンに更新されます (図 2 参照)。
sudo -s
apt-get update
既定では、11211 番ポートはブロックされています。このポートを開くには、Azure 管理ポータルにログインして VM のダッシュボードにアクセスする必要があります。 [ENDPOINTS] をクリックし、11211 番のポートを新しいエンドポイントとして追加します。
Memcached のインストール
Memcached のインストール手順を説明します。まず、apt-get を使用して Memcached をインストールします。
sudo apt-get install memcached
ユーザーのサーバーにコンパイラがない場合、build-essential をダウンロードすると Memcached をインストールできます。
sudo apt-get install build-essential
次のコマンドを使用して、Memcached の構成ファイル (memcached.conf) を編集します。
sudo nano /etc/memcached.conf
35 行目の行頭に # を追加し、この行をコメント アウトします。
-1 127.0.0.1
WordPress での Memcached の構成
- FTP でサイトにアクセスします。
- bin フォルダーを作成します。
- Memcached の拡張機能である PECL をこちらからダウンロードします。この拡張機能は PHP5.4 (32 ビット) 向けのものですので、ご注意ください。異なる構成で Web サイトを運用している場合は、こちらのページ (英語) から適切な DLL を選択します。
- 管理ポータルにログインして、WordPress の Web サイトの構成を更新します。 [Configure] の [app settings] セクションで、次のように設定します。
- こちらのリンク (英語) から Memcached Object Cache プラグインをダウンロードします。
- object-cache.php を wp-content フォルダーにコピーします。
- wp-config.php ファイルで Memcached サーバーの詳細を指定します。
「/* that’s all, stop editing! Happy blogging.」という部分のすぐ上に、次のようなコードを追加します。
*/
$memcached_servers = array(
'default' => array('memcachesrv.cloudapp.net:11211' )
);
- こちらのリンク (英語) から Batcache プラグインをダウンロードします。
- advanced-cache.php を wp-content ディレクトリにアップロードします。
- wp-config.php ファイルの冒頭に次の行を追加します。
define('WP_CACHE',true);
キャッシュの動作確認
キャッシュが動作しているかどうかを確認するには、ホーム ページを 3 回以上読み込み直してから HTML のソースを表示します。最初に読み込んだときには、終了タグの </head> のすぐ上に次のようなコメントが表示されます。
WordPress のページを数回更新してコメントが変わったら、ページがキャッシュから読み込まれたということです。
Memcache によるサーバー統計情報の確認
Memcached サーバーを定期的に追跡しサーバーの状態を把握することを、強く推奨します。これには複数の方法があります。
1.netcat ユーティリティ (英語) を使用する方法。これは、"apt-get update" コマンドを実行済みであれば Ubuntu VM で既に使用可能な状態になっています。11211 番ポートをリッスンしている Memcached サーバーで "stats" コマンドを使用して netcat を実行すると、使用中の Memcached サーバーの状態が得られます。
echo "stats" | nc memcachesrv.cloudapp.net 11211
2. watch コマンド (英語) を使用する方法。2 秒ごとに状態を確認し、リストとして出力します。
watch "echo stats |nc memcachesrv.cloudapp.net 11211"
3. PHP の Memcached 拡張機能である Memcache::getStats () API (英語) を呼び出して、プログラム的に実行する方法。
参考情報