あなたのWordPressウェブサイトはスケーラブルですか?

公開: 2017-05-16

あなたのWordPressウェブサイトはスケーラブルですか? 野生の大規模なWordPressインストールの例はたくさんあります。 たとえば、WordPress.comは、毎月数千万のページビューを取得する巨大なマルチサイトインストールです。 また、いつでも何千人ものユーザーにサービスを提供します。

他の例としては、Time、TechCrunch、CNNなどがあります。 それについては間違いありません。 適切な環境を作成する限り、あらゆる量のトラフィックを処理するのに十分強力なWordPressを使用してスケーラブルなWebサイトを確実に構築できます。 インストールを拡張するように構成することは複雑になる可能性がありますが、サイト所有者にとっては価値のある投資です。 この投稿では、スケーラビリティを確保するために焦点を当てることができるいくつかの領域について説明し、スケ​​ーラブルな環境をセットアップする方法に関するヒントを提供します。

スケーラブルとはどういう意味ですか?

WordPress Webサイトをスケーラブルにする理由は何ですか? スケーラブルなWordPressWebサイトには、スケールアップまたはスケールアウトすることで容量を増やす機能があります。

  • スケールアップ–ハードウェアの能力を高めます(より多くのRAM、より強力なCPU)。
  • スケールアウト–ノードを追加して容量を増やします(サイトの同一のコピーを複数のマシンに分散させます)。

そうすることで、成長に対応する柔軟性が得られます。 基本的に、あなたは問題なくあなたのサイトを拡張できることを望んでいます。 WordPressを使用すると、ソフトウェアについて心配する必要はありません。 WordPressコアは、マークアップ(HTMLおよびCSS)をデータ(MySQLデータベース)から分離するなど、階層化されたソフトウェアアーキテクチャの規則を実装します。 以下では、最大のスケーラビリティを確保できるいくつかの方法について説明します。

開発環境

あなたのWordPressウェブサイトはスケーラブルですか?

Sentavio / shutterstock.comによる画像

WordPressサイトのスケーリングで最も難しい部分の1つは、開発環境のセットアップです。 優れた開発環境は、問題なく本番環境を反映します。 小規模なサイトの場合は、ライブでの開発を回避できますが、規模は大きくなりません。

開発者がお互いのつま先を踏まないようにするために、ある種のバージョン管理が必要になります。 バージョン管理ソフトウェアは、ファイルへの変更を時間の経過とともに記録して、後で呼び出すことができるようにします。 さらに、スケーラブルなWordPressWebサイトを開発するためのはるかに効率的でプロフェッショナルな方法です。

オープンソースコミュニティの努力のおかげで、多くのエレガントなソリューションが利用可能です。 Gitは、複数の開発者が別々のリポジトリでリモートで作業できるようにする分散バージョン管理ソフトウェアです。 信頼性が高く、高速で、信じられないほど大規模なプロジェクトを処理できます。 結局のところ、GitはLinux開発のためにLinusTorvaldsによって作成されました。

VVV(Varying Vagrant Vagrants)を使用してキラー開発環境を構築できます。 この無料のオープンソースソフトウェアは、WordPressで分散開発環境を作成するのに理想的です。 これに関する詳細なチュートリアルについては、WordPress開発環境をセットアップするための究極のガイドをご覧ください。 WordPress.orgには、VVVのインストールに関する役立つチュートリアルもあります。

水平方向のスケーラビリティ

スケールアウト、つまり水平スケーリングは、スケーラブルな環境を作成するための最も重要な概念の1つです。 これにより、さまざまなマシン(サーバー)でWebサイトを実行できます。 インフラストラクチャを「エラスティックアーキテクチャ」と呼ぶ人もいます。これは、必要なリソースの量に基づいて、リソースの量を増減できるためです。

これは、クラスタリング、負荷分散、仮想化などのクラウドコンピューティング手法を通じて行われます。 コンピュータサイエンスでは、クラスタリングは類似したオブジェクトをグループに編成するプロセスです。 したがって、単一のクラスターには、Webサイトのファイル、データベース、およびソフトウェアが含まれます。 クラスタリングは、ハードウェアとソフトウェアの障害による問題を排除することにより、Webサイトの高可用性を保証します。 それはどのように機能しますか?

サイトのトラフィックが急増した場合、ロードバランサーは、スケールアウトすることでスラックを取得するために、より多くのリソースを適切に割り当てる方法を決定します。これは動的に発生し、訪問者は気付くことはありません。 アイデアは、あなたがあなたのウェブサイトの同一のコピーを複数のマシンに分散させており、それらはすべてお互いを知っているということです。 したがって、トラフィックが増加したり、スタックのコンポーネントに障害が発生したりした場合、クラスター内のコンピューターは常にスタンバイ状態になります。

アマゾンウェブサービス(AWS)やRackSpaceなどのクラウドホスティングサービスは、水平方向のスケーラビリティを可能にする2つの人気のあるクラウドホスティングプロバイダーです。 エラスティックアーキテクチャを備えた典型的なサーバーインフラストラクチャの例については、AWSを使用した高可用性WordPressWebサイトのデプロイに関するこのチュートリアルを確認してください。

キャッシング

キャッシュは、メモリ用の一時的なストレージスペースです。 キャッシュは、コンテンツをより速く配信し、同時実行の問題を回避するのに役立ちます。 すべてのCMSには何らかのキャッシュが必要ですが、WordPressも例外ではありません。 悪いニュースは、キャッシングが途方もなく複雑になる可能性があることです。 良いニュースは、オープンソースコミュニティがこの問題に関して多くの異なる解決策を考え出したことです。 WPスーパーキャッシュやバットキャッシュなど、役立つツールはたくさんあります。

リバースプロキシキャッシング(ページキャッシング)

リバースプロキシキャッシュは、動的なWebページをロードするための効率的な方法です。 リバースプロキシは、WordPressとブラウザの間の仲介役として機能するサービスです。 これにより、メインサーバーの負荷を軽減し、知覚されるページの読み込み時間を短縮できます。

問題は、PHPサーバーがリソースを大量に消費することです。 それらは多数の複雑なタスクを実行し、サーバーをダウンさせる可能性があります。 リバースプロキシを実装することで、サーバーの負荷を軽減できます。

たとえば、Webサイトのホームページに訪問者がいるとします。 その日の最初の訪問です。 この時点では、ホームページのキャッシュバージョンはまだありません。

  1. ユーザーがアドレスバーにURLを入力し、サーバーにページを要求します。
  2. リクエストは、ページのキャッシュバージョンがまだないプロキシを経由してWordPressに渡されます。
  3. WordPressはホームページを生成し、リバースプロキシに応答を返します。
  4. 次に、プロキシは応答をブラウザに送信し、そのページのキャッシュされたコピーを保存します。
  5. キャッシュが存在する限り、そのページを要求するユーザーは、キャッシュされたバージョンのページを受け取ります。

オブジェクトキャッシング

オブジェクトキャッシュの背後にある概念は、個々のオブジェクトで機能することを除いて、ページキャッシュに似ています。 多くのユーザーがサイトにログインしている場合、多くの同時実行の問題が発生する可能性があります。 オブジェクトキャッシュは、アプリケーションオブジェクト(ビデオ、画像、ドキュメントなど)をデータストアに保存します。 アプリケーションオブジェクトをキャッシュすることで、データベースへの依存度が低くなり、多くのメモリが解放されます。

キャッシュには多くのオプションがあります。 Cloudflare、Akamai、EdgeCast、KeyCDNなどのコンテンツ配信ネットワークは、大規模なリバースプロキシとして機能できます。 ワニスとWPスーパーキャッシュは、WordPressでキャッシュを実装するための2つの一般的なオプションです。

クエリのパフォーマンス

あなたのWordPressウェブサイトはスケーラブルですか?

OlegErinによる画像/shutterstock.com

多くの場合、データベースが最悪のボトルネックの原因となる可能性があります。 クエリが遅いと、サーバー上のPHPアプリケーションが拘束され、弾力性のあるアーキテクチャを使用している場合でも、すべてのアクティビティが停止する可能性があります。 前に述べたように、PHPサーバーはサーバーの速度を大幅に低下させる可能性があります。 キャッシュがうまくいかない場合は、遅いクエリを特定することでクエリのパフォーマンスを向上させる方法を見つけることができます。

クエリが遅いのは、SQLデータベース、サイトを実行しているネットワーク、またはサーバーの問題が原因です。 これが発生する理由はさまざまです。 ワンサイズのフィクスがすべてあるわけではありません。 クエリのパフォーマンスを向上させるための最初のステップは、遅いクエリを特定することです。

問題を特定したら、アクションを実行できます。 答えは、より多くの帯域幅を購入するのと同じくらい簡単な場合もあれば、コードを微調整する必要がある場合もあり、これは注意が必要です。

クエリを監視するツールを探している場合は、WordPressクエリモニタープラグインを確認してください。

検索の改善

大量の投稿、たとえば100万件の投稿がある場合は、データベースの設定方法に注意する必要があります。 ほとんどの大規模なサイトには、最適化された検索インデックスがあります。 これはWordPressに追加されたカスタム検索エンジンです。

サイトに多数の投稿がある場合、WordPressのコンテンツ検索クエリはうまく機能しません。 それはまた、速度の点で望ましいものを残します。 この問題の一般的な修正は、専用の検索インデックスを作成することです。 これを行うと、これらのクエリがデータベースに含まれなくなり、ユーザーのブラウジングエクスペリエンスが向上するだけでなく、データベースのパフォーマンスが向上します。

大規模なWordPressサイトで人気のある検索エンジンには、ElasticSearchとApacheSolrがあります。

まとめ

適切なスケールから始めることも重要です。 簡単に始めて、後で最適化します。 ドナルド・クヌースの言葉を引用すると、「時期尚早の最適化はすべての悪の根源です」。 成長に対応しますが、小さな基盤上に巨大なeコマースサイトを詰め込もうとしたり、その逆を試みたりしないでください。 イベントページのような単純なものの場合は、スケーラブルなサイトを構築する必要がない場合があります。

通常、エラスティックアーキテクチャはeコマースWebサイトの標準です。 このようなもののいくつかは信じられないほど複雑に見えるかもしれませんが、実際にすべてを理解する必要はありません。 基本を理解していれば、大規模サイト向けの堅牢な環境を構築できます。 あなたがする必要があるのは、適切なクラウドサービスを見つけて、適切なCDNに接続することだけです。

コメントセクションであなたの経験を自由に共有してください。 WordPress Webサイトをスケーラブルにするためにどのような手順を実行しましたか?

ターボデザイン/shutterstock.comによる記事のサムネイル画像