‹ ハウツー に戻る

Amazon Lightsail ディストリビューションのキャッシュ動作を変更する。

最終更新日: 2020 年 7 月 23 日

キャッシュ動作は Amazon Lightsail ディストリビューションによってキャッシュされているもの、されていないもののオリジンを設定可能にします。例えば、オリジンから個々のディレクトリ、ファイル、またはファイルタイプをキャッシュするように指定できます。オリジンに転送される HTML メソッドとヘッダーを指定することもできます。このガイドでは、ディストリビューションのキャッシュ動作を変更する方法について説明します。ディストリビューションの詳細については、Amazon Lightsail のコンテンツ配信ネットワークディストリビューションを参照してください。

目次

キャッシュプリセット

A キャッシュプリセットは、オリジンでホストするコンテンツの種類に応じて、ディストリビューションの設定を自動的に設定します。例えば、静的コンテンツに最適を選択すると、プリセットは、静的ウェブサイトで最適に動作する設定にディストリビューションを自動的に設定します。ウェブサイトが WordPress インスタンスでホストされている場合は、 WordPress に最適プリセットを使用して、WordPress ウェブサイトで最適に動作するようにディストリビューションが自動的に設定されます。

ディストリビューションでは、以下のいずれかのキャッシュプリセットを選択できます。

  • 静的コンテンツに最適 - このプリセットは、ディストリビューションをすべてをキャッシュするように設定されます。このプリセットは、オリジンで静的コンテンツ (静的 HTML ページなど) をホストする場合や、ウェブサイトにアクセスするユーザーごとに変更されないコンテンツをホストする場合に最適です。このプリセットを選択すると、ディストリビューション上のすべてのコンテンツがキャッシュされます。

  • 動的コンテンツに最適 - このプリセットは、ディストリビューションをディストリビューションを作成するページのセクションにあるディレクトリとファイルの上書きキャッシュで指定されていないもの以外をキャッシュしないように設定されます。詳細については、ディレクトリとファイルの上書きを後ほど参照してください。このプリセットは、オリジンで動的なコンテンツや、ウェブサイトやウェブアプリケーションにアクセスするユーザーごとに変化するコンテンツをホストする場合に最適です。

  • WordPress に最適 - このプリセットは、ディストリビューションをwp-includes/wp-content/ WordPress インスタンスのディレクトリーにあるファイル以外をキャッシュしないように設定されます。このプリセットは、オリジンのインスタンスが WordPress Certified by Bitnami and Automatic ブループリントの場合に最適です(マルチサイトブループリントを除く)。このプリセットの詳細については、 WordPress の最適キャッシュプリセット

    注意

    カスタム設定プリセットは選択できません。プリセットはプリセットを選択後、自動で選択されますが、ディストリビューションの設定を手動で変更します。

Lightsail コンソールのみでキャッシュのプリセットを指定できます。これは、 Lightsail API、AWS CLI、および SDK を使用して指定することはできません。

WordPress の最適キャッシュプリセット

選択したインスタンスが、 WordPress Certified by Bitnami and Automattic 設計図をディストリビューションのオリジンとして使用している場合、Lightsail はディストリビューションのキャッシュプリセットに [WordPress に最適] を適用するかを確認するプロンプトが表示されます。プリセットを適用すると、ディストリビューションは WordPress のウェブサイトに最適した動作に自動的に設定されます。他に適用しなければいけないディストリビューション設定はありません。WordPress に最適は、wp-includes/内のファイルおよびwp-content/ WordPress ウェブサイトのディレクトリ以外をキャッシュしないようにプリセットされます。また、毎日キャッシュをクリアするようにディストリビューションを設定し(キャッシュ寿命は 1 日)、すべての HTTP メソッドを許可し、Host ヘッダーのみを転送し、Cookieを転送せず、すべてのクエリ文字列を転送します。

重要

WordPress ウェブサイトをディストリビューションで使用できるようにするには、インスタンスの WordPress 設定ファイルを編集する必要があります。詳細については、Amazon Lightsail ディストリビューションが WordPress インスタンスと動作するように設定するを参照してください。

デフォルトの動作

デフォルトの動作は、ディストリビューションがコンテンツキャッシュをどのように処理するかを指定します。ディストリビューションのデフォルトの動作は、選択したキャッシュプリセットによって自動的に決定されます。別のデフォルト動作を選択した場合、キャッシュプリセットは自動的にカスタム設定にされます。

ディストリビューションは、以下のデフォルトの動作のいずれかから選択できます。

  • すべてをキャッシュする - この動作は、ウェブサイト全てを静的コンテンツとしてキャッシュ、対応するようにディストリビューションを設定します。このオプションは、閲覧者によって変更されないコンテンツをオリジンがホストしている場合、または ウェブサイトが cookie、ヘッダー、またはクエリ文字列を使用してコンテンツをパーソナライズしない場合に最適です。

  • 何もキャッシュしない - この動作は、指定したオリジンファイルとフォルダーパスのみをキャッシュするようにディストリビューションを設定します。このオプションは、ウェブサイトやウェブアプリケーションが cookie、ヘッダー、クエリ文字列を使用して、個々のユーザー向けにコンテンツをパーソナライズする場合に最適です。このオプションを選択すると、キャッシュするには、ディレクトリとファイルパスの上書きを指定する必要があります。

ディレクトリとファイルの上書き

ディレクトリとファイルの上書きを使用して、選択したデフォルトの動作を上書きしたり、例外を追加することが可能です。例えば、すべてをキャッシュするを選択した場合、上書きを使用して、ディストリビューションがキャッシュしないディレクトリ、ファイル、またはファイルの種類を指定します。代わりに、何もキャッシュしないを選択した場合、上書きを使用して、ディストリビューションがキャッシュするディレクトリ、ファイル、またはファイルの種類を指定します。

ディレクトリとファイルの上書きセクションで、キャッシュするディレクトリまたはファイルへのパスを指定するか、キャッシュしないかを指定できます。アスタリスク記号を使用して、ワイルドカードディレクトリ (path/to/assets/*)、ファイルタイプ (*.html,*jpg,*js)を指定する。ディレクトリとファイルのパスでは、大文字と小文字が区別されます。

ディレクトリとファイルの上書きを指定する方法の例をいくつか紹介します。

  • 以下を指定して、Lightsail インスタンスで動作している Apache ウェブサーバーのドキュメントルート内のすべてのファイルをキャッシュします。

    var/www/html/
  • 以下を指定して、 Apache ウェブサーバーのドキュメントルートにあるインデックスページのみをキャッシュします。

    var/www/html/index.html
  • 以下を指定して、 Apache ウェブサーバーのドキュメントルートにある. html ファイルのみをキャッシュします。

    var/www/html/*.html
  • 以下を指定して、 Apache ウェブサーバーのドキュメントルートにある images サブディレクトリの .jpg、.png、および.gif ファイルのみをキャッシュします。

    var/www/html/images/*.jpg
    var/www/html/images/*.png
    var/www/html/images/*.gif

    以下を指定して、 Apache ウェブサーバーのドキュメントルートにある images サブディレクトリのすべてのファイルをキャッシュするします。

    var/www/html/images/

キャッシュの詳細設定

詳細設定を使用して、ディストリビューション上のコンテンツのキャッシュのライフスパン、許可されている HTTP メソッド、 HTTP ヘッダー転送、 cookie 転送、およびクエリ文字列転送を指定できます。指定したアドバンスト設定は、ディストリビューションがキャッシュするディレクトリとファイルにのみ適用されます。これには、‭キャッシュとして指定したディレクトリとファイルの上書きも含まれます。

次のアドバンスト設定を編集できます。

‬キャッシュ寿命 (TTL)

コンテンツが更新されたかどうかを確認するためにディストリビューションからオリジンに別のリクエストを送るまで、コンテンツをディストリビューションのキャッシュに保持する期間を制御します。デフォルト値は 1 日です。この期間を短くすると、動的なコンテンツを供給できます。この期間を長くすると、ユーザー側のパフォーマンスは向上します。ファイルがエッジロケーションから直接返される可能性が高くなるためです。期間を長くすると、ディストリビューションがコンテンツを引き出す頻度が低くなるため、オリジンの負荷も軽減されます。

注意

指定するキャッシュのライフスパン値は、オリジンが Cache-Control max-ageCache-Control s-maxageExpires などの HTTP ヘッダーをコンテンツに追加しないときにのみ適用されます。

許可される HTTP メソッド

ディストリビューションが処理してオリジンに転送する HTTP メソッドをコントロールします。HTTP メソッドは、オリジンで実行されるべきパフォーマンスを示します。例えば、GET メソッドはオリジンからデータを取得し、PUT メソッドは、囲まれたエンティティをオリジンに保存することを要求します。

以下のディストリビューションの HTTP メソッドのオプションのいずれかを選択できます。

  • 許可された GET、 HEAD、 OPTIONS、 PUT,、PATCH、 POST と DELETE メソッド

  • GET、HEAD、OPTIONS メソッドを許可する

  • GET と HEAD メソッドを許可する

ディストリビューションは、常に GET および HEAD の応答をキャッシュします。OPTIONS リクエストを許可するように選択した場合、ディストリビューションは OPTIONS の応答もキャッシュします。ディストリビューションは他の HTTP メソッドの応答をキャッシュしません。

重要

サポートされているすべての HTTP メソッドを許可するようにディストリビューションを設定した場合、オリジンインスタンスがすべてのメソッドを処理できるように設定する必要があります。例えば POST を使用したいので、上記のメソッドを受け入れて転送するようにディストリビューションを構成する場合は、削除すべきでないリソースをビューワーが削除できないようにするために、DELETE リクエストを適切に処理するようオリジンサーバーを構成する必要があります。詳細については、ウェブサイトまたはウェブアプリケーションのドキュメントを検索してください。

HTTP ヘッダーの転送

ディストリビューションが、指定されたヘッダーの値に基づいてコンテンツをキャッシュするか否か、そしてどのヘッダーに基づくのかをコントロールします。HTTP ヘッダーは、クライアントブラウザ、要求されたページ、オリジンなどの情報を保持します。例えば、Accept-Language ヘッダーは、クライアントの言語を送信します。(例: 英語なら en-US) これにより、オリジンはクライアントの言語でコンテンツに対応できます(利用可能な場合)。

ディストリビューションでは、以下の HTTP ヘッダーオプションのいずれかを選択できます。

  • ヘッダーを転送しない

  • 指定するヘッダーのみを転送する

ヘッダーを転送しないを選択すると、ディストリビューションはヘッダー値に基づいたコンテンツのキャッシュを行いません。選択したオプションにかかわらず、ディストリビューションは特定のヘッダーをオリジンに転送し、転送したヘッダーに基づいて特定のアクションを実行します。

Cookie の転送

ディストリビューションがオリジンに Cookie を転送するかどうか、および転送する場合はどれを転送するかをコントロールします。Cookie には、オリジンの ウェブページでの訪問者の行動に関する情報や、訪問者が提供した名前や関心事などの情報など、オリジンに送信される小さなデータが含まれます。

ディストリビューションでは、以下の Cookie 転送オプションのいずれかを選択できます。

  • cookie を転送しない

  • すべての Cookie を転送する

  • 指定した Cookie を転送する

すべての cookie を転送するを選択した場合、ディストリビューションは、アプリケーションで使用されている Cookie の数に関係なく、すべての Cookie を転送します。指定した Cookie を転送するを選択した場合、ディストリビューションに転送して欲しい cookies 名を表示されるテキストボックスに入力します。以下のワイルドカード文字を使用して Cookie 名を指定することができます。

  • * は、Cookie 名に含まれる 0 個以上の文字に一致します。

  • ? は、Cookie 名に含まれる 1 文字に一致します。

例えば、オブジェクトに対するビューワーリクエストに userid_member-numberCookie 名が含まれているとします。各ユーザーに割り当てられた一意の値 member-number (userid_123,userid_124,userid_125 など)。ディストリビューションが、各メンバーについて個別バージョンのコンテンツでキャッシュするものとします。これは Cookie をオリジンに転送することで実行できますが、ビューワーのリクエストには、 ディストリビューションにキャッシュして欲しくない cookies が含まれます。これに代わる方法として、Cookie 名に以下の値を指定できます。その場合、ディストリビューションは userid_ から始まるすべての Cookie をオリジン userid_* ‬に転送します。

クエリ文字列の転送

ディストリビューションがオリジンにクエリ文字列を転送するかどうか、および転送する場合にどれを転送するかをコントロールします。クエリ文字列は、指定されたパラメータに値を割り当てる URL の一部です。例えば、https://example.com/over/there?name=ferret URL は name=ferret クエリ文字列を含みます。サーバーがそのようなページのリクエストを受信すると、name=ferretクエリ文字列を変更せずに、プログラムを実行してプログラムすることがあります。疑問符はセパレータとして使用され、クエリ文字列の一部ではありません。

ディストリビューションでクエリ文字列を転送しないようにするか、指定したクエリ文字列のみを転送するかを選択できます。オリジンがクエリ文字列パラメータの値に関係なくコンテンツの同じバージョンを返す場合、クエリ文字列を転送しないように選択します。これにより、 ディストリビューションがキャッシュからリクエストを処理できる可能性が高くなり、パフォーマンスが向上し、オリジンの負荷が軽減されます。オリジンサーバーが 1 つ以上のクエリ文字列パラメータに基づいて、異なるバージョンのコンテンツを返す場合、指定したクエリ文字列のみを転送するように選択します。

ディストリビューションのキャッシュ動作を変更する

ディストリビューションのデフォルトのキャッシュ動作を変更するには、以下の手順を実行します。

  1. Lightsail コンソールにサインインします。

  2. Lightsail のホームページで、[ネットワーキング] タブを選択します。

  3. デフォルトのキャッシュ動作を変更するディストリビューションの名前を選択します。

  4. ディストリビューション管理ページのキャッシュタブを開きます。

  5. キャッシュを設定するセクションで、ディストリビューションのキャッシュプリセットを選択します。詳細については、キャッシュプリセットを参照してください。

  6. デフォルトのキャッシュ動作を変更するを選択して、ディストリビューションのデフォルト動作を変更します。次に、ディストリビューションのデフォルト動作を選択します。詳細については、デフォルト動作を参照してください。

  7. パスの追加を選択して、ディストリビューションのキャッシュ動作にディレクトリとファイルの上書きを追加します。詳細については、ディレクトリとファイルの上書きを参照してください。

  8. 編集したいディストリビューションの詳細設定の横に表示される鉛筆アイコンを選択します。詳細については、キャッシュ動作詳細設定を参照してください。

ディストリビューションの設定を保存したら、すべてのエッジロケーションに伝達し始めます。エッジロケーションで設定が更新されるまでは、 以前の設定に基づいて、そののロケーションからコンテンツを引き続き供給します。エッジロケーションで設定がが更新されると、 新しい設定に基づいて、そのロケーションからコンテンツを直ちに供給し始めます。

変更は、すべてのエッジロケーションにすぐに伝達されるわけではありません。伝達が完了すると、ディストリビューションのステータスが進行中からデプロイ済みに変わります。ディストリビューションがが変更を伝達している間、特定のエッジロケーションでコンテンツが以前の設定または新しい設定のどちらに基づいて供給されるかを判別することはできません。

追加情報

ここでは、Lightsail でディストリビューション管理するのに役立つ記事をいくつか紹介します。