CloudFront ディストリビューションの作成 - WordPress での のベストプラクティス AWS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CloudFront ディストリビューションの作成

ディストリビューションに従って CloudFront ウェブディストリビューションを作成すると、自動的に作成されたデフォルトのオリジンと動作が動的コンテンツに使用されます。静的リクエストと動的リクエストの両方の処理方法をさらにカスタマイズするために、4 つの追加の動作を作成します。次の表は、5 つの動作の設定プロパティをまとめたものです。

表 1: CloudFront 動作の設定プロパティの概要

プロパティ 静的 動的 (管理者) 動的 (フロントエンド)
パス (動作)

wp-content/*

wp-includes/*

wp-admin/*

wp-login.php

デフォルト (*
プロトコル HTTP および HTTPS リダイレクト先 HTTPS HTTP および HTTPS
HTTP メソッド GET, HEAD ALL ALL
HTTP ヘッダー NONE ALL

ホスト

CloudFront-Forwarded-Proto

CloudFront-Is-Mobile-Viewer

CloudFront-Is-Tablet-Viewer

CloudFront-Is-Desktop-Viewer

cookie NONE ALL

comment_*

wordpress_*

wp-settings-*

クエリ文字列 YES (無効化) YES YES

デフォルトの動作では、 は次の設定AWSを推奨します。

  • オリジンプロトコルポリシーを Match Viewer に許可すると、ビューワーが を使用して CloudFrontに接続するとHTTPS、 HTTPSも を使用してオリジン CloudFront に接続し、暗号化を実現 end-to-endできます。そのためには、信頼できるSSL証明書をロードバランサーにインストールする必要があることに注意してください。詳細については、「 CloudFront とカスタムオリジン間の通信の要件HTTPS」を参照してください。

  • ウェブサイトの動的部分には GETと の両方のPOSTリクエスト (コメントPOST送信フォームをサポートするなど) が必要なため、すべてのHTTPメソッドを許可します。

  • 、、 などwp-settings-*、 WordPress 出力を変更する Cookie >wordpress_*のみを転送しますcomment_*。リストに含まれていない他の Cookie に依存するプラグインをインストールした場合は、そのリストを拡張する必要があります。

  • 、 WordPress、、、 など、 の出力に影響するHTTPヘッダーのみを転送しますHostCloudFront-Forwarded-ProtoCloudFront-is-Desktop-ViewerCloudFront-is-Mobile-ViewerCloudFront-is-Tablet-Viewer

    • Host では、複数の WordPress ウェブサイトを同じオリジンでホストできます。

    • CloudFront-Forwarded-Proto では、 HTTPまたは 経由でアクセスされるかどうかに応じて、さまざまなバージョンのページをキャッシュできますHTTPS。

    • CloudFront-is-Desktop-ViewerCloudFront-is-Tablet-Viewer を使用するとCloudFront-is-Mobile-Viewer、エンドユーザーのデバイスタイプに基づいてテーマの出力をカスタマイズできます。

  • すべてのクエリ文字列を値に基づいてキャッシュに転送します。これら WordPress に依存するため、キャッシュされたオブジェクトを無効にするためにも使用できます。

カスタムドメイン名 ( ではない*.cloudfront.net) でウェブサイトを提供する場合は、ディストリビューション設定のURIs代替ドメイン名に適切な を入力します。この場合、カスタムドメイン名のSSL証明書も必要です。AWS Certificate Manager を介してSSL証明書をリクエストし、 CloudFront ディストリビューションに対して設定することができます。

次に、動的コンテンツ用にさらに 2 つのキャッシュ動作を作成します。1 つはログインページ用 (パスパターン: wp-login.php)、もう 1 つは管理者ダッシュボード用 (パスパターン: ) ですwp-admin/*。これらの 2 つの動作は、次のようにまったく同じ設定になります。

  • ビューワープロトコルポリシーのみを適用しますHTTPS。

  • すべてのHTTPメソッドを許可します。

  • すべてのHTTPヘッダーに基づいてキャッシュします。

  • すべての Cookie を転送します。

  • すべてのクエリ文字列に基づいて転送およびキャッシュします。

この設定の背後にある理由は、ウェブサイトのこのセクションが高度にパーソナライズされており、通常、少数のユーザーしかいないため、キャッシュ効率が主な関心事ではないためです。すべての Cookie とヘッダーをオリジンに渡すことで、インストールされたプラグインとの互換性を最大限に高めるために、設定をシンプルに保つことが焦点です。

デフォルトでは、 はすべてウェブサーバーにローカルに WordPress 保存されます。ウェブサーバーは、単一サーバーデプロイ ではブロックストレージ (Amazon EBS)、エラスティックデプロイ ではファイルストレージ (Amazon EFS) です。 シンプルなデプロイストレージとデータ転送コストを削減するだけでなく、静的アセットを Amazon S3 に移行すると、スケーラビリティ、データの可用性、セキュリティ、パフォーマンスも向上します。静的コンテンツを Amazon S3 に移動しやすくするプラグインがいくつかあります。その 1 つは W3 Total Cache で、付録 B: プラグインのインストールと設定 でも説明されています。