高トラフィック向けに WordPress Web サイトをスケールアップする 11 の効果的な方法
公開: 2020-02-08遅いウェブサイトやタイムアウトしたサーバーは、ビジネスやブランドの評判にとって理想的ではありません. このようなダウンタイムは、収益性や信頼性に悪影響を及ぼす可能性があります。 Web サイトは、事後対応ではなく事前対応型になるように、新しいトラフィックの到来を予測して準備できなければなりません。 これは単純に、何が一時的なトラフィックの急増を引き起こすか分からないためです. たとえば、ブログを運営している場合、投稿がバイラルになる可能性があります。 ほとんどのインターネット ユーザーはせっかちなため、ほんの数秒のダウンタイムが数千ドルの損失につながる可能性があります。 そうは言っても、WordPress は大量のトラフィックを十分に管理できますが、多くの不測の事態、構成、セットアップは意図的なものでなければなりません. 見てみましょうか。

- WordPress はトラフィックを処理しません。 ホスト(ホスティング会社)がやる!
ウェブサイト エンジンとして、WordPress 自体は潜在的な高トラフィックの処理を主に担当しているわけではありません。 トラフィック処理機能は、ホスティング プラットフォームに大きく依存します。 残念なことに、WordPress Web サイトをホストする仮想マシンは、単一インスタンスの問題が Web サイトのサービスの損失を引き起こす可能性があるため、単一障害点になる可能性があります。 実際のところ、トラフィックのしきい値を制限しているホスティング サーバーもあれば、トラフィックが特定のしきい値を超えて増加した場合にアカウントのアップグレードを要求するホスティング サーバーもあります。 では、ホスティング プロバイダーのチェックリストに記載すべき基本事項は次のとおりです。
- まず、プロバイダーが最新の WordPress バージョンに問題なく対応していることを確認してください。
- 次に、上限を超えることができるかどうかを確認します (サイトの転送速度の制限と帯域幅、より多くのトラフィックを取得し始めたとき)。
- 共有 Web ホスティングは、トラフィックの少ないプロジェクトを開始する場合に最適ですが、使い始めたら、仮想プライベート サーバー (VPS) に移行する必要があります。 プロバイダーは、VPS の規定を持っている必要があります。
- 顧客がニーズの変化に応じて簡単にアップグレードできるように、階層型プランで垂直スケーリングを許可する必要があります。 パフォーマンスを向上させるためのリソースのスケーリングは、主に垂直方向のスケーリングによって実現できます。 要するに、WordPress Web サイトを実行する仮想マシンのサイズを大きくすることです。
- ウェブサイトをさまざまなレイヤーに分割するため、水平方向のスケーリングも利用できるかどうかを確認してください. たとえば、フロントエンド サーバー、データベース サーバー、プロキシ レイヤー、イメージ レイヤーを分離して、リソースのスケーリングを容易にします。

簡単なヒント:高パフォーマンスの WordPress サーバーに cPanel/WHM (WebHost Manager) をデプロイすると、トラフィックの多い Web サイトの速度が低下する可能性があるため、できれば避けてください。
- Web サイトでElasticsearchを活用する
特に MySQL と MariaDB は検索機能で有名ではありません。 それらはその強さを念頭に置いて構築されたものでもなく、WordPress チームが検索ロジックを改善できない理由の 1 つです。 Java で記述された ElasticSearch は、検索と分析を目的とした分散型の高速な RESTful 検索エンジン ソフトウェアです。 それでも、Elasticsearch を活用して WordPress データベースのクエリを高速化できます。 具体的には、サイトのデータベースのコンテンツのインデックスを構築することにより、ElasticSearch を使用して、同じ検索を実行しながら MySQL クエリよりもはるかに高速にこのインデックスを検索できます。 ElasticPress プラグインをインストールして、MySQL ではなく Elasticsearch でクエリ結果を生成することで、Elasticsearch を統合することもできます。 これにより、パフォーマンスが向上し、大量のトラフィックをより適切に処理できるようになります。
- グラフィックを減らし、メディアをより最適化
トラフィックが急増したときの Web サイトの障害を防ぐために、Web サイトのデザインに使用するグラフィックの数を減らすことができます。 メディアを最適化するという不測の事態は、理想的には、サイトの軽量化と読み込みの高速化に役立つと考えられています. 最高のページ速度のパフォーマンスを得ることは、トラフィックが多い時期の優れたセーフティ ネットになる可能性があります。 3つの基本的な習慣が思い浮かびます。
- 画像と遅延読み込みに圧縮プラグインを使用できます。これは、訪問者が Web ページのそれらの部分に到達した場合にのみ画像を提供するためです。
- 可能であれば、サイトのメディアを必要不可欠な画像のみに制限するようにしてください。
- さらに、YouTube や Vimeo などのサービスから動画をサイトに埋め込めます。 次に、完全な動画をサイトにアップロードします。
続きを読む:WordPress Webサイトの速度を向上させるためのヒント
- 少ないプラグイン
これまでのテーマは「less is more」のようです。 しかし、心配はいりません。まだ素晴らしいヒントがいくつかあります。 理想的には、WordPress プラグインは、インストールされた WordPress テーマによって「呼び出される」ファイルです。 プラグインは、機能を簡単に拡張したり、Web システムに新しい機能を追加したりできます。 しかし、適切にコーディングされていないプラグインは、必要のない場合でも大量のデータをロードすることがよくあります。
技術的には、テーマやプラグインのないネイキッド インスタンスは、負荷がかかった状態でかなりうまく機能する可能性があります。 しかし、裸のテーマが欲しいのは誰ですか? さらに、ほとんどのプラグインは不必要に複雑で肥大化する可能性があります。 これにより、ページの読み込み速度が向上し、サイトの速度が低下します. そのため、プラグインでサイトを過負荷にしないようにして、テーマがデータベースに対して過剰なクエリを実行して、サーバーのアクティビティが増加し、サーバー障害が発生する可能性を回避してください。 キーポイント:
- 使用していないプラグインを削除する
- 不要なプラグインをオフにします。
- 必須のプラグインを使用します。 不必要なものや実験的なものは避けてください。
- プラグインを定期的に監査して、サイズや品質などを評価します。
続きを読む : WordPress プラグインは安全に使用できますか?
- コンテンツ配信ネットワークの活用
地理的に異なる場所で Web システムをホストすることは、思ったほど簡単ではありません。 訪問者が地理的にどのくらい離れているかによって、Web システムの読み込み速度が異なる場合があります。 そんな時、CDNはとても役に立ちます。 CDN は、世界のさまざまな場所にあるさまざまなサーバーに Web サイト リソースのキャッシュ バージョンを保存します。 これにより、サーバーのパフォーマンスを最大化し、トラフィックの超過が発生しないようにすることができます。 CDN を使用すると、世界中の訪問者のウェブサイトの読み込み速度を下げることができます。
続きを読む: WordPress ウェブサイトを Cloud Platform に移行する
CDN は、画像、JavaScript、CSS ファイルなどの静的コンテンツをキャッシュすることで、サーバーの機能を強化します。 したがって、訪問者が Web サイトにアクセスすると、最も近いサーバーからサービスが提供されるため、Web サイトの読み込みが速くなります。 CDN は、ウェブサイトのファイルが分散され、世界中のいくつかの異なるデータの場所に保存されるため、高トラフィックでのサーバーの負荷を回避するのに役立ちます. CDN の利点を要約すると、次のようになります。
- サイトの速度が向上し、読み込みが速くなります。
- ホスティング プロバイダーと CDN プラットフォームの間で負荷が共有されるため、より多くのトラフィックを処理できます。
- CDN は、Web サイトの帯域幅を節約するのに役立ちます。
- CDN は、複数のサーバー間で複数のリクエストが共有されるため、Web サイトをサービス妨害 (DDOS) 攻撃から保護するのに役立ちます。
最も人気のある「無料」の CDN の代替手段は、WP サイトで利用できる Cloudfare です。 Cloudflare Free CDN が優れている理由は次のとおりです。
- 帯域幅料金なし:ほとんどの CDN サービスとは異なり、Cloudflare はトラフィックに対して料金を請求しません。 ほとんどの CDN は、キャッシュされたコンテンツを CDN から消去するために料金を請求できます。
- グローバルなカバレッジ:世界中に 100 以上のデータ センターを持つ Cloudfare は、複数の交換ポイントで運用されているため、常に顧客の近くにいます。
- セキュリティ:彼らはセキュリティ組織と見なされており、彼らの「CDN」は本質的に分散型リバース プロキシです。 したがって、セキュリティの専門家をメニューに追加してください。

- ステートレス Web 層の使用を検討する
基本的に、ステートレス アプリケーションは、以前の対話の知識を必要とせず、基本的にセッション情報を保存しません。 振り返ってみると、ステートレス アプリケーションは水平方向にスケーリングできます。これは、利用可能なコンピューティング リソース (基本的には Web サーバー インスタンス) のいずれかによってすべての要求を処理できるためです。 したがって、その容量が不要になった場合は、個々のリソースを安全に終了できます。 たとえば、実行中のタスクが排出された後、または目的を果たした後などです。 ステートレス Web 層では、リソースはピアの存在を認識する必要はありません。必要なのは、ワークロードをリソースに分散する方法だけです。 ステートレス アーキテクチャを適用して、予想される潜在的な高トラフィックを処理できます。

- データベースのキャッシングと最適化
データベース キャッシングは、データベースの呼び出しを減らし、Web システムの読み込み時間を短縮するために重要です。 ほとんどのクエリがキャッシュから提供されると、データベースにヒットする必要があるクエリの数が減ります。 これにより、データベースのパフォーマンスが向上します。 データベースの効率を向上させるもう 1 つの方法は、クエリの自動読み込みに上限を設け、頻繁にアクセスされるデータの一部をメモリに格納して、低レイテンシ アクセスを実現することです。 データベースのパフォーマンスを向上させるには、クエリ キャッシュと適切なインデックス作成を使用することが重要ですが、読み取り負荷の高いアプリケーション ワークロードの待ち時間を短縮し、スループットを向上させることができます。
データベースは、しばらく使用すると、不要になったより多くの情報を保持します。 これにより、システムのパフォーマンスと効率が低下します。 リビジョンは、データベースに不要な情報を作成する原因の 1 つです。 リビジョンは、ページ、投稿、カスタム投稿タイプのリビジョンを自動的に保存できる WordPress の機能です。 デフォルトでは、60 秒ごとに作業が自動保存されます。 「wp-config.php」ファイルで「WP_POST_REVISIONS」を定義することにより、これらの自動保存間隔を管理できます。 リビジョンは、30 秒ごと、2 分ごと、または要件に応じて保存できます。 リビジョンを完全にオフにすることもできます。 また、リビジョンをオフにしてもサイトのパフォーマンスは向上しないことを知っておく必要があります。
このような不要なデータをすべて取り除くには、データベースを最適化する必要があります。 WordPress は主に MariaDB または MySQL データベースを採用しています。 したがって、MySQL/MariaDB 設定を最適化するか、より多くのメモリと処理能力を提供することで、過負荷のサーバーを助けることができます。 また、WordPress には、データベースをクリーンアップできるさまざまなプラグインが用意されています。 プラグインは、未使用のタグ、リビジョン、ゴミ箱に入れられた投稿などを削除するのに役立ち、データベースを最適化します.
- 適切なキャッシュ プラグインの使用
ダウンタイムが発生した場合、キャッシュ プラグインは Web サイトの HTML ファイルを生成できます。これは、トラフィックが増加したときに役立ちます。 キャッシュプラグインを選択するときは、次のような側面に注意してください。
- 可用性の更新
- コンテンツ配信ネットワークと SSL の統合
- ページキャッシング機能
- データベース キャッシングの強み
私の個人的な推奨は W3TC キャッシュ プラグインですが、キャッシュ プラグインは CDN 統合を提供する必要があります。
- サイトのセキュリティを確保する
セキュリティは WordPress サイトのスケーリングに影響を与えます。これは、トラフィックが多いため、注意すべき潜在的な脅威が増えることを意味します。 したがって、プロフェッショナルなセキュリティ プラグインは、以下を提供するだけで、マルウェア、SQL インジェクション、スパム、DDoS 攻撃などから Web サイトを保護できます。
- アクティブなセキュリティ監視
- ブルート フォース攻撃保護
- マルウェアのスキャン
- セキュリティの監視と管理 (特に DDoS の場合)、
- ブラックリスト監視
- セキュリティ強化とハッキング後のアクション
- ファイアウォール
さらに、次のような個人的な不測の事態に備えることができます。
- 2 要素認証で wp-admin パスワードを強化する
- サイトへのログイン試行を制限する
- ネットワークにウイルス対策を適用する FTP の代わりに SFTP を使用する
- wp-config.php と .htaccess ファイルを隠す
- 管理するネットワークを使用しない場合は、VPN バーチャル プライベート ネットワークを使用します。
- VPS Virtual Private Server を使用して、サーバー環境をより細かく制御します。
- バイトコードキャッシングを活用する
PHP スクリプトは、実行されるたびに解析およびコンパイルされます。 したがって、理想的には、PHP バイトコード キャッシュを使用することで、PHP コンパイルの出力が RAM に保存され、同じスクリプトを何度もコンパイルする必要がなくなります。 その結果、PHP スクリプトの実行に関連するオーバーヘッドが削減され、パフォーマンスが向上し、CPU 要件が低くなります。 OPcache は、バイトコードのキャッシュに役立ちます。
- 負荷分散技術を適用する
負荷分散は、着信ネットワーク トラフィックをバックエンド サーバーのグループ、サーバー プール、またはサーバー ファーム全体に効果的に分散します。 トラフィックの多い Web サイトは何千ものユーザーにサービスを提供するため、同時リクエストは避けられないため、費用対効果の高いスケーリングを行うには、負荷分散をお勧めします。 理想的には、ロード バランサーを使用すると、1 つのサーバーがダウンした場合に、残りのオンライン サーバーにトラフィックがリダイレクトされます。 ロード バランサーは、次の役割を果たします。
- ネットワーク負荷またはクライアント要求を複数のサーバーに効率的に分散します。
- 要求をオンライン サーバーにのみ送信することで、高い信頼性と可用性を保証します。
- 需要に応じてサーバーを追加または削除する柔軟性を提供します。

負荷分散を示すために、 wordpress.com (wordpress.org ではない) の例を使用できます。これは、複数のデータ センター内の数千のサーバーで実行されている実質的に 1 つの WordPress マルチサイト インストールです。 特に、サイト ビルダーとしての WordPress.com は、HyperDB を通じて複数のサイトをホストしています。 中央データベースにリンクされた、分離されたデータベース インスタンス全体に数百万のテーブルの負荷を分散して分散します。 これが、wordpress.com サイトがエンドユーザーの要求を複数の Web サーバー ノードに分散し、基本的に負荷分散を行うことで、大量のトラフィックをシームレスに処理できる理由です。
自己ホストの WordPress サイトは 10 万人の同時訪問者を処理できますか?
今日の問題ですよね? 理論的にはそうですが、この結果を達成するには多くの努力が必要です。 サイト監査を実行する必要があり、最も確実に含まれるのは次のとおりです。
- 負荷分散
- MySQL レプリケーション
- 静的コンテンツのオフロード
- サーバー アーキテクチャの弾力性。
- 評判の良い CDN プロバイダー
- Disqus などの効率的なコメント管理システム
- キャッシング効率を最大化
- 柔軟なクラウド展開を活用する
- WordPress Stats や Google Analytics などの分析および追跡ツールを頻繁に活用する
- NGINX などの高性能 HTTP サーバーを利用します。
控えめに言っても、ハードウェアと使用しているプラグインの種類に大きく依存します。 メディアとアップロード用に別のクラウド ストレージを使用することを検討し、ユーザーのアップロードをローカル ファイル システムではなくストレージに転送するプラグインを用意することができます。 または、AWS インスタンスを使用している場合は、リージョン内の複数のアベイラビリティ ゾーンにまたがるサイトを設計して、アーキテクチャ全体の信頼性を高めることを検討してください。 さらに、ソリッド ステート ドライブは対応する HDD よりも信頼性、安全性、および速度が高いため、SSD ドライブを使用し、HDD は使用しないでください。
結論
結論として、最適化されたメディア、スクリプト、およびキャッシングは、サーバーが遅い、混雑している、共有されている、または不適切に設定されている場合、実際には役に立ちません. そのため、よりパフォーマンス重視の NGINX サーバーを使用することをお勧めします。 さらに、CDN キャッシュを使用するようにしてください。可能であれば、帯域幅などのサーバーのリソース使用量が減少するため、Cloudflare を使用してパフォーマンスをさらに向上させる必要があります。 注目すべき言及には、WP のバージョンとテーマを定期的に更新することが含まれます。 追加情報やご質問がございましたら、お気軽にお問い合わせください。