この記事では、小規模から中規模の WordPress インストールのためのソリューションについて説明します。 このソリューションは、複雑な構成や管理の必要なしに、Azure プラットフォームのスケーラビリティ、信頼性、セキュリティを提供します。 大規模なインストール、またはストレージを集中的に使用するインストールのソリューションについては、「 Azure での WordPress ホスティング オプション」を参照してください。
アーキテクチャ
このアーキテクチャの Visio ファイルをダウンロードします。
注意
特定の WordPress ホスティング方法に固有ではないヒントと推奨事項を実装することで、このソリューションを拡張できます。 WordPress インストールをデプロイするための一般的なヒントについては、「WordPress on Azure」を参照してください。
データフロー
このシナリオでは、Azure App Service 上で実行される WordPress のスケーラブルなインストールについて説明します。
- ユーザーは、Azure Web Application Firewall が有効になっている Azure Front Door を介してフロントエンド Web サイトにアクセスします。
- Azure Front Door は、WordPress が実行されている App Service Web アプリ全体に要求を分散します。 Azure Front Door は、WordPress Web アプリからキャッシュされていないデータを取得します。
- WordPress アプリケーションでは、サービス エンドポイントを使用して、Azure Database for MySQL のフレキシブル サーバー インスタンスにアクセスします。 WordPress アプリケーションは、データベースから動的な情報を取得します。
- Azure Database for MySQL に対するローカル冗長高可用性は、同じ可用性ゾーン内のスタンバイ サーバー経由で有効化されています。
- すべての静的コンテンツは、Azure Blob Storage でホストされます。
Components
- App Service 上の WordPress のテンプレートは、App Service 上で WordPress をホストするためのマネージド ソリューションです。 App Service に加えて、このソリューションでは、このセクションで説明されている他の Azure サービスも使用します。
- App Service には、Web アプリの構築、デプロイ、およびスケーリングを行うためのフレームワークが用意されています。
- Azure Front Door は、最新のクラウド コンテンツ配信ネットワークです。 サーバーの分散ネットワークとして、Azure Front Door はユーザーに Web コンテンツを効率的に配信します。 コンテンツ配信ネットワークは、キャッシュされたコンテンツをエンド ユーザーに近いポイントオブプレゼンスの場所のエッジ サーバーに格納して、待ち時間を最小限に抑えます。
- Azure Content Delivery Network は、戦略的に配置された場所に BLOB を格納することで、ユーザーに Web コンテンツを効率的に配信します。 このソリューションでは、Azure Front Door の代わりに Content Delivery Network を使用できます。
- Azure Virtual Network は、デプロイされたリソースが、他のデプロイされたリソース、インターネット、オンプレミス ネットワークと安全に通信するための方法を提供します。 仮想ネットワークは、分離とセグメント化を提供します。 また、トラフィックをフィルター処理してルーティングし、さまざまな場所の間に接続を確立できるようにします。 このソリューションでは、2 つのネットワークは仮想ネットワーク ピアリングを介して接続されます。
- Azure DDoS Protection では、拡張 DDoS 軽減機能が提供されます。 これらの機能をアプリケーション設計のベスト プラクティスと組み合わせると、DDoS 攻撃からの防御に役立ちます。 境界仮想ネットワークで DDoS Protection を有効にする必要があります。
- ネットワーク セキュリティ グループでは、セキュリティ規則の一覧を使用して、ソースまたはターゲット IP アドレス、ポート、プロトコルを基に、インバウンド/アウトバウンド ネットワーク トラフィックを許可または拒否します。 このシナリオのサブネットでは、ネットワーク セキュリティ グループの規則によって、アプリケーション コンポーネント間のトラフィック フローが制限されます。
- Azure Key Vault は、パスワード、証明書、キーを格納し、それらへのアクセスを制御します。
- Azure Database for MySQL - フレキシブル サーバーは、オープンソースの MySQL データベース エンジンに基づいたリレーショナル データベース サービスです。 フレキシブル サーバー デプロイ オプションは、データベース管理機能と構成設定のきめ細かな制御と柔軟性を提供するために設計された、フル マネージド サービスです。 このシナリオでは、Azure Database for MySQL は WordPress データを格納します。
- Blob Storage では、スケーラブルで最適化されたオブジェクト ストレージが提供されます。 Blob Storage は、クラウドネイティブのワークロード、アーカイブ、データ レイク、ハイ パフォーマンス コンピューティング、機械学習に適しています。
代替
- Azure Cache for Redis を使用して、WordPress パフォーマンス最適化プラグインの key-value キャッシュをホストできます。キャッシュは、App Service Web アプリ間で共有できます。
- Azure Front Door の代わりに、Content Delivery Network を使用して Web コンテンツをユーザーに配信できます。
シナリオの詳細
このシナリオ例は、WordPress の小規模から中規模のインストールに適しています。
考えられるユース ケース
- トラフィックの急増を引き起こすメディア イベント
- コンテンツ管理システムとして WordPress を使用しているブログ
- WordPress を使用するビジネスまたは eコマースの Web サイト
- 他のコンテンツ管理システムを使用して構築された Web サイト
考慮事項
以降の考慮事項には、ワークロードの品質向上に使用できる一連の基本原則である Azure "Well-Architected Framework" の要素が組み込まれています。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。
[信頼性]
信頼性により、顧客に確約したことをアプリケーションで確実に満たせるようにします。 詳細については、「信頼性の重要な要素の概要」を参照してください。
このソリューションをデプロイするときは、次の推奨事項を考慮してください。
- App Service には、組み込みの負荷分散と正常性チェックが用意されています。 これらの機能は、App Service Web アプリに障害が起きたときに可用性を維持するのに役立ちます。
- コンテンツ配信ネットワークを使用してすべての応答をキャッシュすると、可用性の面で少し恩恵が得られます。 具体的には、配信元が応答しない場合でも、コンテンツにアクセスが可能です。 ただし、キャッシュでは完全な可用性ソリューションは得られません。
- Blob Storage をペア リージョンにレプリケートして、複数のリージョン間でのデータ冗長性を確保できます。 詳細については、「Azure Storage の冗長性」を参照してください。
- Azure Database for MySQL の可用性を向上するには、同一ゾーン高可用性を有効にします。 この機能では、プライマリ サーバーと同じ可用性ゾーンにスタンバイ サーバーが作成されます。 同一ゾーン高可用性を有効にするには、General Purpose または Business Critical のコンピューティング レベルを使用する必要があります。 詳細については、ニーズに適した高可用性オプションに関するページを参照してください。
セキュリティ
セキュリティは、重要なデータやシステムの意図的な攻撃や悪用に対する保証を提供します。 詳細については、「セキュリティの重要な要素の概要」を参照してください。
このソリューションをデプロイするときは、次の推奨事項を考慮してください。
- Azure Front Door 上の Azure Web Application Firewall を使用して、フロントエンド アプリケーション層に流れ込む仮想ネットワーク トラフィックを保護します。 詳細については、「Azure Front Door 上の Azure Web Application Firewall」を参照してください。
- データベース層からのアウトバウンド インターネット トラフィックは許可しないでください。
- プライベート ストレージへのパブリック アクセスは許可しないでください。
WordPress のセキュリティの詳細については、「WordPress のセキュリティとパフォーマンスに関する一般的なヒント」および「Azure セキュリティに関するドキュメント」を参照してください。
コストの最適化
コストの最適化とは、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳しくは、コスト最適化の柱の概要に関する記事をご覧ください。
このソリューションをデプロイする場合は、コストに関する次の考慮事項を確認してください。
- 想定トラフィック (GB/月)。 トラフィック量は、コストに最も大きな影響を及ぼす要因です。 受信するトラフィックの量によって、必要な App Service インスタンスの数と送信データ転送の価格が決まります。 トラフィック量は、コンテンツ配信ネットワークによって提供されるデータの量にも直接関連します。この場合、送信データ転送コストが安くなります。
- ホストされているデータの量。 Blob Storage でホストするデータの量を考慮することが重要です。 ストレージの価格は、使用容量に基づいています。
- 書き込み率。 どれだけの新しいデータを Web サイトに書き込み、Azure Storage でホストするかを検討します。 新しいデータが必要かどうかを判断します。 マルチリージョン デプロイの場合、Web サイトに書き込む新しいデータの量は、リージョン間でミラーリングされるデータの量に関連します。
- 静的コンテンツと動的コンテンツ。 データベース ストレージのパフォーマンスと容量を監視して、より安価な SKU がサイトをサポートできるかどうかを判断します。 データベースには動的コンテンツが格納され、コンテンツ配信ネットワークは静的コンテンツをキャッシュします。
- App Service 最適化。 App Service コストを最適化するための一般的なヒントについては、「Azure App Service とコストの最適化」を参照してください。
パフォーマンス効率
パフォーマンス効率とは、ユーザーによって行われた要求に合わせて効率的な方法でワークロードをスケーリングできることです。 詳細については、「パフォーマンス効率の柱の概要」を参照してください。
このシナリオでは、App Service で WordPress フロントエンドをホストします。 自動スケーリング機能を有効にして、App Service インスタンスの数を自動的にスケーリングする必要があります。 自動スケーリング トリガーを設定して、顧客の需要に対応できます。 また、定義されたスケジュールに基づいてトリガーを設定することもできます。 詳細については、「 Azure での自動スケーリングの概要」および「Azure Well-Architected Framework」記事の「パフォーマンス効率の原則」を参照してください。
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
プリンシパル作成者:
- Vaclav Jirovsky | クラウド ソリューション アーキテクト
その他の共同作成者:
- Adrian Calinescu | シニア クラウド ソリューション アーキテクト
公開されていない LinkedIn プロフィールを見るには、LinkedIn にサインインしてください。
次の手順
製品ドキュメント:
- Azure Front Door とは
- Azure Web アプリケーション ファイアウォールとは
- Azure Blob Storage とは
- Azure Database for MySQL - フレキシブル サーバー
- Azure Virtual Network とは
- Azure Key Vault について
- クイック スタート: WordPress サイトを作成する
- Azure DDoS Protection とは何か?
Microsoft トレーニング モジュール: