WordPress ウェブサイトをクラウド プラットフォームに移行する
公開: 2020-06-05基本的に PHP と MySQL に基づいている、世界的に有名な WordPress CMS は、個人のブログからトラフィックの多い Web サイトまで、20 年以上にわたりあらゆるものを支えてきました。 ただし、2003 年の開始と最初のリリースから、その作成者は最新の伸縮自在でスケーラブルなクラウドベースのインフラストラクチャを念頭に置いて構築していませんでした。 これまでのテクノロジーの進化を誰が予測できたでしょうか。
幸いなことに、WordPress コミュニティの拡大と、より成熟した WordPress バージョンのその後のリリースにより、その機能は大幅に拡張されました. 最終的に、クラウド サーバーとインフラストラクチャを適切に活用する WordPress インフラストラクチャを構築できるシナリオができました。
このブログでは、WordPress とクラウド サーバーの関係と、それらを組み合わせて使用する必要がある場合について説明します。 コンテキストの目的で、このトピックに関連する概念を詳細に説明します。 それでは、さっそく詳しく見ていきましょう。
クラウドとは
簡単に要約すると、平たく言えば、クラウドはインターネット経由で IT サービスとリソースをプロビジョニングするユビキタスな手段であり、オンデマンドまたは従量課金制でアクセスできます。 したがって、基本的に、クラウド サーバーはインターネット上で便利な「ストレージ ユニット」として機能するため、「クラウド」という用語が使われています。 これは、クラウドに関して私がこれまでに提供した中で最も単純な答えかもしれませんが、とにかく先に進みましょう!
そうは言っても、クラウド サービスのプロバイダーは多数ありますが、最も注目すべきプロバイダーは Amazon Web Services (最大の市場シェアを持つ) であり、Microsoft Azure と Google Cloud がそれに続きます。 これら 3 つは「ハイパースケーラー」と呼ばれることもありますが、AlibabaCloud、DigitalOcean、IBM Cloud、Linode などの他のパブリック クラウド プロバイダーも存在します。 公平を期すために、一部のパブリック クラウド プロバイダーは標準のホスティング サービス (WordPress 共有ホスティングなど) も提供していますが、提供していないプロバイダーもあります。 しかし、これについては後で詳しく説明します。
クラウドの優れた点は、中小企業の活躍の場を大幅に平準化できることです。 これは、以前は大規模なプレイヤーしか利用できなかった最先端のオンライン リソースにアクセスできるようにすることによるものです。 ハードウェアの購入、高価なデータセンターの設置、フルタイムのメンテナンス IT 部門の雇用など、巨額の設備投資は必要ありません。
ほとんどの場合、ほとんどのクラウド プロバイダーは、自動スケーリングやデータベース管理サービスなどのマネージド サービスを備えた従量制モデルも提供しています。したがって、これは、そうするつもりがない、またはできない多くの企業にとって非常に魅力的です。本格的な IT インフラストラクチャに投資する余裕があります。 基本的に、コア ビジネスに集中できるようにし、技術的な問題はクラウド ベンダーに任せることができます。
クラウドは無数の利点へのアクセスを提供します。 ただし、注目すべき利点は次のとおりです。
- 世界中のどこでも利用できるユビキタスなサービス指向のアーキテクチャを提供します。
- 便利で柔軟なコンピューティングを提供します
- さまざまなレベルのオンデマンド サービスを利用できます
- 総所有コストを削減
- 情報技術のオーバーヘッドを削減

クラウドサービスの種類
一般に、パブリック クラウド プロバイダーは、Infrastructure as a Service (IaaS)、Platform as a Service (PaaS)、Software as a Service (SaaS) の 3 つの分野でサービスを提供しています。 文脈を理解するために、これらすべてのサービス タイプの違いと、それぞれが何を伴うのかをまとめましょう。
- IaaS: Infrastructure as a Service は、仮想コンピューティング、オペレーティング システム、キュー、ストレージ、VLAN、ロード バランサーなどのさまざまなクラウド インフラストラクチャをユーザーに提供します。 このタイプの垂直方向のクラウドでは、アプリケーションを展開して運用するための詳細な技術知識が必要です。 たとえば、各コンポーネントには、スケールアップまたはスケールダウンを開始したり、負荷分散を実行したりするための技術管理が必要です。
- PaaS:一方、Platform as a Service モデルは、より多くのマネージド サービスを提供します。 これは基本的に、ソフトウェアの更新とパッチ適用の責任が主にクラウド ベンダーにあることを意味します。 さらに、PaaS では、スケーリング、バックアップ、データ レプリケーションなど、クラウド自体によって調整されるインフラストラクチャ固有の操作が透過的に行われます。
- SaaS:これらすべての業種の中でおそらく最もよく知られているのは、クラウドで管理される完全に機能するソフトウェアを提供するサービスとしてのソフトウェア モデルです。 SaaS モデルは、IaaS コンポーネントと PaaS アプリケーションの両方を包むことも、2 つの垂直方向のいずれかを別々に使用することもできます。

最終的には、上で強調したすべてのモデルにもかかわらず、IaaS または PaaS のいずれかに該当する可能性のある混合サービスを採用するベンダーが増えるにつれて、クラウド プラットフォーム間の境界は急速に薄くなりつつあります。 一例として、アマゾン ウェブ サービスは IaaS 製品 (EC2、SQS、および S3) から始まり、その後、途中で PaaS コンポーネント (リレーショナル データベースと非リレーショナル データベース) を追加しました。 それに比べて、Microsoft Azure は PaaS コンポーネント (Azure Web サイトと SQL データベース) と IaaS (仮想マシンとストレージ) の両方を拡張します。

クラウドへの移行に適した時期はいつですか?
それにもかかわらず、間違いなく、ほとんどのソフトウェア アプリケーションは何らかの方法で「ハイパースケーラー」でホストできます。 しかし、疑問は常にありました。それは正当であるか、冗長であるか、場合によってはやり過ぎであるか、リソースの十分な活用につながるかということです。
そうは言っても、特定のアプリケーションが特定のクラウド機能を切実に必要としているため、特定のアプリケーションがクラウドに最適であることは注目に値します。 たとえば、エンコーダー、CDN、リレーショナル データベースの組み合わせ、またはリソースの自動スケーリング機能が必要になる場合があります。 いずれにせよ、他のアプリケーションが目的のためにクラウドに転送され、すべてのリソースを十分に活用できない場合があります。 どちらにしても、これは犯罪ではありません。
クラウドへの移行に最適な WordPress アプリケーションの種類はどれですか?
クラウドは、どのような容量のオフサイト コンピューティング アプリケーションでも処理できることを確立したためです。ただし、すべてのアプリケーションがクラウドに適しているわけではないことを強調したように、私たちの警告は依然として有効です。 では、クラウドに適した WordPress アプリケーションの種類はどれでしょうか?

1. 定期的で厳しい処理が必要なアプリケーション
一般的に言えば、このようなアプリケーションは通常、さまざまなデータ形式のバッチ分析機能など、非常に計算集約的な操作を実行します。 このようなバッチ分析機能は、ある形式から別の形式へのファイル変換、セマンティック テキスト分析、データ分類、レポート作成、テキスト インデックス作成、データ クラスタリング、さらには機械学習用のニューラル ネットワーク トレーニングなど、さまざまな形式を取ることができます。
そのため、これらの操作は発生する時間を予測できる傾向があるため、最終的にはハイパースケール クラウド プロバイダーが提供するかなりのコンピューティング パワーを要求することになります。 これは、パブリック クラウド プロバイダーが、このような大きなニーズに対応するための最先端のハードウェアを常に備えているためです。 したがって、本質的に、そのようなアプリケーションを使用する小規模企業にとって、クラウドは、重くて不必要なハードウェアへの投資を回避するのに役立ちます (これは、場合によっては反動的な投資になる可能性があります)。
さらに、組織は、クラウドを使用してバッチ処理機能をさらに高速化することを選択できます。たとえば、3 時間または 4 時間ではなく、1時間未満で終了するなど、より迅速に終了できます。 これは、管理者がコンピューティング ユニットを追加するだけでよいため、クラウド環境では非常に扱いやすいものです。 一方、WordPress の標準ホスティングでは、ハードウェアの制限により、このような有効化は非常に困難です。
2. 高可用性 (HA) とスケーラビリティを必要とするアプリケーション。
基本的に、考慮すべき2つのカテゴリがあります。 最初のカテゴリは、エンド ユーザーに HA (高可用性) サービスを提供することを望むアプリケーションです。 次に、使用量の増加が予想されるアプリケーションや、より大きなユーザー ベースにサービスを拡張する計画があるアプリケーションがあります。
高可用性セットアップとは、アプリケーションに単一障害点 (SPOF) がないことを意味します。 これは通常、アプリケーションの各エンドポイント、コンポーネント、またはサービスに冗長性を追加することによって実現されます。 さらに、このセットアップでは、自動フェイルオーバー プロセス、負荷分散、監視など、高可用性を実現するために、より多くのハードウェアとメカニズムが必要であることが当然想定されています。

2 番目のカテゴリは、ユーザー ベースの拡大を目的とした (および柔軟なスケーラビリティを備えた) アプリケーションに関するものです。 たとえば、製品/サービスの提供を拡大することを計画している場合があります。 または、後で新しい市場に拡大する予定です。 したがって、これを機能させるには、クラウドの大幅なアップグレードと、その上に適切な管理レイヤーが必要です。
3. 使用量のピークが予測できないアプリケーション
このようなアプリケーションは、通常、オンライン ショップ、製品サイト、人気のあるブログなどを介してユーザーと頻繁に対話します。そのため、このような Web サービスは通常、予測可能で安定したユーザー ベースを持っていますが、場合によっては、非常に多数のユーザーを無作為に引き付けてしまう可能性があります。 . たとえば、人気のある Web ページで参照されたり、それらに関連するビデオがバイラルになったりすると、スパイクが発生する可能性があります。 または、クーポンやプロモーション コードのおかげで、マーケティング キャンペーンが当初の予想よりも成功した後かもしれません。
したがって、本質的に、クラウドへの移行は、潜在的なインバウンド トラフィックの量や、それが発生する正確な時間枠を予測できない場合に理想的です。 このような Web サイトの所有者は、トラフィックの急増を正確に予測する傾向がありますが、トラフィックがどの程度になるか、どのように配信されるかはわかりません。
続きを読む: 高トラフィック向けに WordPress Web サイトをスケールアップする 11 の効果的な方法
そのため、このようなシナリオでは、対応的または緊急のハードウェアの取得は、断片化された使用により、多くのハードウェアが季節的に未使用のままになる可能性があるため、コストに見合う価値がありません. このようなシナリオでは、クラウドの実装以外は無謀です。
4. さまざまなテスト環境が必要なアプリケーション
多くの人にはあまり知られていませんが、ユーザーはクラウドを活用してテスト環境を実行できます。 このようなテスト環境は、セキュリティ テストや負荷テストなど、特定の一連のテストを実行する必要がある場合に、永続的または一時的なものにすることができます。
したがって、基本的に、このようなテスト環境を実現するにはハイエンドのハードウェアが必要であり、セキュリティ テストと負荷テストを実行するためのハードウェアの取得にかかるコストは非常に大きくなる可能性があります。 これは主に、これらのテストを年に数回実行する必要があり、目標を達成するために本格的な生産セットアップが必要であるためです。 これが、そのようなテスト用に新しいハードウェアを購入することが、コストの観点から非効率的または冗長なアクションになる可能性がある理由です. そこでクラウドが選択肢になります。
要点をまとめると、クラウドの採用に影響を与える主な要因は、ユーザー ベース、使用パターン、フォールト トレランスの要求、およびテスト要件です。 もちろん、クラウドのアプリケーション候補を正当化する要因は他にもありますが、通常、これらの 4 つの要因が際立っています。
WordPress でクラウド プラットフォームを使用する
ほとんどの WordPress アプリケーションは標準ホスティングを利用していますが、AWS クラウドや Google クラウドなどのプラットフォームで Web サイトを実行することを選択する WordPress ユーザーが増加しています。
これは、より多くの Web サイト所有者が、適切にスケーリングする Web サイトを構築する方法について懸念していることを示しています。 たとえば、変動する数の訪問者にサービスを提供でき、フォールト トレラントを維持しながら、すばやく簡単にコンテンツを更新できる柔軟性を備えている必要があります。 この最後の点は、何かが壊れた場合でも Web サイトがその機能を適切に実行できるという安心感を所有者に与えるため、重要です。
したがって、コンテキストを追加するために、典型的な WordPress ホスティングはマネージド サービスであり、基本的にサービスとしてのソフトウェア (SaaS) です。 パブリック クラウドへの移行は、Platform as a Service (PaaS) のインストールに影響します。 基本的に、PaaS を使用した WordPress インストールは、インフラストラクチャのメンテナンス、バックアップ、レプリケーション、および可用性をクラウド ベンダーにオフロードします。
クラウドサーバーの管理は難しい場合があります
サーバー環境の構成またはプロビジョニングは、知識や専門家でない限り、簡単には推測できません。 これには、クラウド インスタンスの保護を保証するセキュリティ プロトコルのレイヤーを導入しながら、クラウド インスタンスを管理する方法を知る必要があります。
ある観点から見ると、デフォルトの AWS サーバーには操作するためのグラフィカル ユーザー インターフェイスが付属していないため、このようなインストールには Linux コマンドの能力が必要になる場合があります。 そのため、CLI を使用する機能は必須であり、サーバー側の知識が限られている人にとっては困難な場合があります。
ただし、一部のクラウド プロバイダーは、サーバー管理の手間を軽減して WordPress Web サイトに集中できるようにするためのリソースを提供しています。 これらの同じツールは、サーバーのセキュリティを監視して、サイトをサイバー攻撃から保護します. このようなソリューションは、SSL の統合、ステージング サイトの作成、Web サイトのクローン作成、および cron ジョブの管理を数回クリックするだけで実行できる機能をユーザーに提供できます。
WordPress クラウド移行の計画
WordPress アプリケーションをクラウドに移行することを選択したら、適用可能なアーキテクチャの青写真を決定し、信頼できるクラウド ベンダーを選択し、アプリケーション アーキテクチャを改良し、セットアップをテストしてからリリースすることが重要です。
アーキテクチャの青写真を決定すると、WordPress アプリケーションの独立したスケーラブルな部分を主に特定できます。 次に、クラウド ベンダーを選択する際は、データベースの機能などの要因を考慮しながら、最適なものを選択してください。 たとえば、SQL Server データベースは Azure SQL データベースまたは AWS RDS に適していますが、MySQL データベースは AWS RDS にも適しています。
また、クラウド ベンダーは、アプリケーションの最終的なアーキテクチャに影響を与える可能性があります。 さらに、セットアップをテストするときは、常に実際のサイズのデータを考慮するため、本番データの完全なクローンを作成することを目指してください。これには、主にデータベース データとユーザー生成コンテンツが含まれます。
料金
各クラウド ベンダーの初期総コストも慎重に計算する必要があります。 ほとんどのクラウド ベンダーにはオンラインの価格計算ツールがあるので、それらを利用できます。 また、コンピューティング時間、帯域幅、ストレージ、および特定のオブジェクト ストレージにアクセスするための GET リクエスト数やロード バランサー時間などの指標にも注意してください。
クラウド サーバーに WordPress をインストールするためのベスト プラクティス
1. コンテンツ配信ネットワーク (CDN) を確実に活用する
ほとんどの WordPress アプリケーションは、静的コンテンツと動的コンテンツを組み合わせて配信することに注意してください。 静的コンテンツは、画像、JavaScript ファイル、またはスタイル シートです。 一方、動的コンテンツは、WordPress の PHP コードを利用してサーバー側で生成されるものです。 たとえば、データベースから生成された要素、または各視聴者にパーソナライズされた要素です。
ネットワーク遅延はエンドユーザー エクスペリエンスにとって重要であるため、CDN を利用することが不可欠です。CDN は、世界中のユーザーにコンテンツを一貫して配信できるようにすることで、ネットワーク遅延に対処するのに役立ちます。
したがって、ユーザーは通常、世界中に地理的に分散しているため、CDN は本質的に、世界中で低レイテンシーと高速データ転送速度でコンテンツの配信を加速するのに役立ちます。
続きを読む: WordPress ウェブサイトの速度を改善するためのヒント
2. データベースのキャッシング
データベース キャッシングは、待ち時間を大幅に短縮し、WordPress などのアプリケーションのスループットを向上させることができます。 これは、I/O 集中型のデータベース クエリの結果など、頻繁にアクセスされるデータの断片をメモリに格納して低レイテンシ アクセスを実現することで実現します。 したがって、これは、クエリの大部分がキャッシュから提供される場合、データベースにヒットする必要があるクエリの数が減ることを意味します。 したがって、データベースの実行に関連するコストが削減されます。
3. ステートレス Web 層
基本的に、ステートレス アプリケーションは以前のやり取りを認識せず、セッション情報を保存しません。 WordPress の場合、これは、どの Web サーバーがリクエストを処理したかに関係なく、すべてのエンドユーザーが同じ応答を受け取ることを意味します。
そのため、自動スケーリング構成で複数の Web サーバーを活用するには、Web 層がステートレスである必要があります。 さらに、ステートレス アプリケーションは、利用可能なコンピューティング リソース (「Web サーバー インスタンス」と呼ばれるもの) のいずれかによってすべての要求を処理できるため、水平方向にスケーリングできます。
ただし、デフォルトでは、WordPress はユーザーのアップロードをローカル ファイル システムに保存するため、ステートレスではありません。 したがって、Web サーバーの負荷を軽減し、Web 層をステートレスにするために、WordPress インストールとすべてのユーザー構成、プラグイン、テーマ、およびユーザー生成のアップロードを共有データ クラウド プラットフォームに移動することが重要です。
続きを読む: WordPress プラグインは安全に使用できますか?
これを実現するために、サードパーティのストレージを使用して PHP セッションを保存できます。 これは、単純なキー値ストアまたはデータベース自体のいずれかです。 すべての主要なクラウド ベンダーは、Azure Tables や AWS DynamoDB などのキーと値のストアを提供しており、セッション データと対話するすべてのアプリケーション コンポーネントから高い可用性と到達可能性を備えている必要があります。
最終的な考え。
結論として、クラウド コンピューティングは、拡張されたスケール メリット、データ セキュリティ、相互運用性、容易なアクセス性、およびエネルギー効率を提供する比類のない能力を備えた、より一般的なデータ管理形式になっています。 コンピューティング、ストレージ、およびネットワーク リソースをグローバルに管理、割り当て、消費する方法が本質的に変化しています。
そのため、トラフィックの急増が予想される場合、高可用性が必要な場合、予想外のスケーラビリティ要件がある場合、動的な処理が必要な場合、および独自のテスト環境が必要な場合は、WordPress とクラウド サーバーを組み合わせてパフォーマンスを向上させることができます。