ファイルの無効化 - Amazon CloudFront

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

ファイルの無効化

有効期限が切れる前に CloudFront エッジキャッシュからファイルを削除する必要がある場合は、次のいずれかを実行できます。

  • エッジキャッシュからファイルを無効にします。ビューワーが次にファイルをリクエストしたときに、CloudFront はオリジンに戻ってファイルの最新バージョンをフェッチします。

  • ファイルのバージョニングを使用して、異なる名前を持つ異なるバージョンのファイルを供給します。詳しくは、「バージョン付きのファイル名を使用した既存ファイルの更新」を参照してください。

ファイルを無効にするには、個々のファイルのパスまたは * ワイルドカードで終わるパスのいずれかを指定します。これは次の例に示すように、1 つまたは複数のファイルに適用できます。

  • /images/image1.jpg

  • /images/image*

  • /images/*

注記

ファイルの無効化に AWS Command Line Interface (AWS CLI) を使用し、* ワイルドカードが含まれるパスを指定する場合は、パスを引用符 (") で囲む必要があります。

例: aws cloudfront create-invalidation --distribution-id distribution_ID --paths "/*"

月ごとに、一定の数の無効化パスを無料で送信できます。月ごとに割り当てられた数より多くの無効化パスを送信する場合、送信する無効化パスごとに料金が発生します。無効化に関する料金の詳細については、「ファイルの無効化に対する支払い」を参照してください。

ファイルを無効化するか、バージョン付きファイル名を使用するかの選択

ディストリビューションから供給されるファイルのバージョンを制御するには、ファイルを無効にするか、バージョン付きファイル名をファイルに設定します。ファイルを頻繁に更新する必要がある場合は、以下の理由で、ファイルのバージョニングを第一に使用することをお勧めします。

  • バージョニングを使用すると、ローカルにキャッシュされている、または企業のキャッシュプロキシの背後にキャッシュされているバージョンをユーザーが保持している場合でも、リクエストがどのファイルを返すかを制御できます。ファイルを無効にした場合、キャッシュ内でオブジェクトが有効期限切れになるまで、ユーザーに旧バージョンが引き続き表示されることがあります。

  • CloudFront アクセスログにはファイルの名前が含まれているため、バージョニングを使用すると、ファイルの変更結果の分析が容易になります。

  • バージョニングは、さまざまなバージョンのファイルをさまざまなユーザーに供給する方法を提供します。

  • バージョニングによって、ファイルのリビジョン間のロールフォワードとロールバックが簡素化されます。

  • バージョニングのほうが、コストが安くなります。ファイルの新しいバージョン CloudFront をエッジロケーションに転送するには に料金を支払う必要がありますが、ファイルの無効化には料金を支払う必要はありません。

ファイルのバージョニングの詳細については、バージョン付きのファイル名を使用した既存ファイルの更新 を参照してください。

無効にするファイルの決定

ディレクトリ内のすべてのファイルや、名前が同じ文字で始まるすべてのファイルなど、複数のファイルを無効にする場合は、無効化パスの末尾に * ワイルドカードを含めることができます。* ワイルドカードの使用の詳細については、「Invalidation paths」を参照してください。

選択されたファイルを無効にする必要があり、ユーザーがオリジンのすべてのファイルに必ずしもアクセスしない場合は、ビューワーが CloudFront からどのファイルを要求したかを確認し、そのファイルのみを無効にできます。ビューワーがリクエストしたファイルを確認するには、 CloudFront アクセスログ記録を有効にします。アクセスログの詳細については、「標準ログ (アクセスログ) の設定および使用」を参照してください。

無効にするファイルの指定

無効にするファイルの指定時には、以下の事項に注意してください。

大文字と小文字の区別

無効化パスでは大文字と小文字が区別されます。そのため、/images/image.jpg/images/Image.jpg は 2 つの異なるファイルを指定したことになります。

Lambda 関数を使用した URI の変更

ディス CloudFront トリビューションがビューワーリクエストイベントで Lambda 関数をトリガーし、関数がリクエストされたファイルの URI を変更する場合は、両方の URIs を無効にして CloudFront エッジキャッシュからファイルを削除することをお勧めします。

  • ビューワーリクエストの URI

  • 関数による変更後の URI

例えば、Lambda 関数が以下のファイルの URI を変更して、

https://d111111abcdef8.cloudfront.net/index.html

言語ディレクトリを含む URI にしたとします。

https://d111111abcdef8.cloudfront.net/en/index.html

ファイルを無効にするには、次のパスを指定する必要があります。

  • /index.html

  • /en/index.html

詳しくは、「Invalidation paths」を参照してください。

デフォルトのルートオブジェクト

デフォルトルートオブジェクト (ファイル) を無効にする場合、他のファイルのパスを指定する場合と同じ方法でパスを指定します。詳細については、「デフォルトのルートオブジェクトの仕組み」を参照してください。

Cookie の転送

Cookie CloudFront をオリジンに転送するように を設定した場合、 CloudFront エッジキャッシュにはファイルの複数のバージョンが含まれている可能性があります。ファイルを無効にすると、 CloudFront は、関係付けられた Cookie に関係なく、そのファイルのキャッシュされたあらゆるバージョンを無効にします。一部のバージョンを選択して無効にすることも、関連付けられた Cookie に基づいてその他のバージョンを選択して無効にすることもできません。詳しくは、「Cookie に基づくコンテンツのキャッシュ」を参照してください。

ヘッダーの転送

ヘッダーのリストをオリジンに転送し CloudFront 、ヘッダーの値に基づいてキャッシュするように を設定した場合、 CloudFront エッジキャッシュにはファイルの複数のバージョンが含まれている可能性があります。ファイルを無効にすると、 はヘッダー値に関係なく、ファイルのキャッシュされたすべてのバージョンを CloudFront 無効にします。ヘッダー値に基づいて一部のバージョンのみ選択して無効にすることはできません (すべてのヘッダー CloudFront をオリジンに転送するように を設定した場合、 CloudFront はファイルをキャッシュしません)。詳細については、「リクエストヘッダーに基づくコンテンツのキャッシュ」を参照してください。

クエリ文字列の転送

クエリ文字列 CloudFront をオリジンに転送するように を設定した場合は、次の例に示すように、ファイルを無効にするときにクエリ文字列を含める必要があります。

  • /images/image.jpg?parameter1=a

  • /images/image.jpg?parameter1=b

クライアントリクエストに、同じファイルに対する 5 つの異なるクエリ文字列が含まれる場合、クエリ文字列ごとに 1 回ずつ、5 回を無効にするか、次の例に示すように個別の無効化パスに * ワイルドカードを使用できます。

/images/image.jpg*

無効化パスでのワイルドカードの使用の詳細については、「Invalidation paths」を参照してください。クエリ文字列の詳細については、「クエリ文字列パラメータに基づくコンテンツのキャッシュ」を参照してください。どのクエリ文字列が使用されているかを判断するには、 CloudFront ログ記録を有効にします。詳細については、「標準ログ (アクセスログ) の設定および使用」を参照してください。

最大許容数

許可される無効化の最大許容値については、「同時無効化リクエストの最大制限」を参照してください。

Microsoft Smooth Streaming ファイル

対応するキャッシュ動作に対してスムーズストリーミングを有効にした場合は、Microsoft Smooth Streaming 形式のメディアファイルを無効にすることはできません。

パス内の ASCII 以外の文字または安全ではない文字

パスに ASCII 以外の文字が含まれるか、RFC 1738 に規定された安全ではない文字が含まれる場合、その文字を URL エンコードします。パス内の他の文字を URL エンコードしないでください。そう CloudFront しないと、更新されたファイルの古いバージョンが無効になることはありません。

無効化パス

パスはディストリビューションを基準とする相対パスです。たとえば、https://d111111abcdef8.cloudfront.net/images/image2.jpg のファイルを無効にするには、次のように指定します。

/images/image2.jpg

注記

CloudFront コンソールでは、images/image2.jpg のようにパスの先頭のスラッシュを省略できます。 CloudFront API を直接使用する場合、無効化パスは先頭にスラッシュを付ける必要があります。

* ワイルドカードを使用して、同時に複数のファイルを無効にすることもできます。0 個以上の文字を置き換える * は、無効化パスの最後の文字である必要があります。ファイルの無効化に AWS Command Line Interface (AWS CLI) を使用し、* ワイルドカードが含まれるパスを指定する場合は、パスを引用符 (") で囲む必要があります (例: "/*")。

次に例をいくつか示します。

  • ディレクトリ内のすべてのファイルを無効にするには:

    /directory-path/*

  • ディレクトリ、そのすべてのサブディレクトリ、およびそのディレクトリとサブディレクトリのすべてのファイルを無効にするには:

    /directory-path*

  • 同じ名前でファイル名拡張子が異なるすべてのファイル (logo.jpg、logo.png、logo.gif など) を無効にするには:

    /directory-path/file-name.*

  • ファイル名拡張子にかかわらず、ディレクトリ内でファイル名が同じ文字で始まるすべてのファイル (HLS 形式の動画のすべてのファイルなど) を無効にするには:

    /ディレクトリパス/ initial-characters-in-file-name*

  • クエリ文字列パラメータに基づいてキャッシュ CloudFront するように を設定し、ファイルのすべてのバージョンを無効にする場合:

    /directory-path/file-name.file-name-extension*

  • ディストリビューション内のすべてのファイルを無効にするには:

    /*

パスの最大長は 4000 文字です。パス内にワイルドカードを使用することはできません。パスの末尾にのみ使用できます。

Lambda 関数を使用して URI を変更する場合のファイルの無効化の詳細については、「Changing the URI Using a Lambda Function」を参照してください。

無効化パスを送信する料金は、無効にするファイルの数に関係なく同じです。つまり、1 つのファイル (/images/logo.jpg) であっても、ディストリビューションに関連付けられたすべてのファイル (/*) であっても同じです。詳細については、「Amazon CloudFront 料金表」を参照してください。

無効化パスがディレクトリであり、ディレクトリの指定方法 (末尾のスラッシュ (/) を付けるかどうか) を標準化していない場合、末尾のスラッシュを付けたディレクトリと付けないディレクトリの両方を無効にすることをお勧めします (例: /images および /images/)。

書名付き URL

署名付き URL を使用している場合は、URL の疑問符 (?) の前の部分のみを含めてファイルを無効にします。

コンソールを使用したファイルの無効化

CloudFront コンソールを使用して、無効化の作成と実行、以前に送信した無効化のリストの表示、個々の無効化に関する詳細情報の表示を行うことができます。また、既存の無効化をコピーしたり、ファイルパスのリストを編集したり、編集された無効化を実行したりもできます。無効化をリストから削除することはできません。

ファイルの無効化

CloudFront コンソールを使用してファイルを無効にするには、次の手順を実行します。

ファイルを無効化するには
  1. にサインインAWS Management Consoleし、 で CloudFront コンソールを開きますhttps://console.aws.amazon.com/cloudfront/v4/home

  2. 無効にするファイルのディストリビューションを選択します。

  3. [Distribution Settings] を選択します。

  4. [Invalidations] タブを選択します。

  5. [Create Invalidation] を選択します。

  6. 無効にするファイルについて、1 行ごとに 1 つの無効化パスを入力します。無効パスの指定の詳細については、「無効にするファイルの指定」を参照してください。

    重要

    ファイルパスを慎重に指定します。無効化リクエストは開始後にキャンセルすることはできません。

  7. [Invalidate] を選択します。

既存の無効化のコピー、編集、および再実行

以前に作成した無効化をコピーし、無効化パスのリストを更新して、更新した無効化を実行することができます。既存の無効化をコピーし、無効化パスを更新して、更新した無効化を実行せずに保存することはできません。

重要

まだ進行中の無効化をコピーする場合は、無効化パスのリストを更新し、更新された無効化を実行しても、コピーした無効化は停止または削除 CloudFront されません。いずれかの無効化パスが元の とコピーに表示される場合、 CloudFront はファイルを 2 回無効化しようとします。両方の無効化は、その月の無料の無効化の最大数にカウントされます。無料で行うことができる無効化の最大数に既に達している場合は、各ファイルの両方の無効化に対して料金が発生します。詳しくは、「同時無効化リクエストの最大制限」を参照してください。

既存の無効化のコピー、編集、および再実行を行うには
  1. にサインインAWS Management Consoleし、 で CloudFront コンソールを開きますhttps://console.aws.amazon.com/cloudfront/v4/home

  2. コピーする無効化が含まれるディストリビューションを選択します。

  3. [Distribution Settings] を選択します。

  4. [Invalidations] タブを選択します。

  5. コピーする無効化を選択します。

    コピーする無効化が不明な場合は、無効化を選択し、[Details] を選択すると、その無効化の詳細情報が表示されます。

  6. [コピー] を選択します。

  7. 必要に応じて、無効化パスのリストを更新します。

  8. [Invalidate] を選択します。

無効化のキャンセル

に無効化リクエストを送信すると CloudFront、 は数秒以内にすべてのエッジロケーションにリクエストを CloudFront 転送し、各エッジロケーションは直ちに無効化の処理を開始します。そのため、無効化を送信後にキャンセルすることはできません。

無効化のリスト表示

CloudFront コンソールを使用して、ディストリビューションに対して作成して実行した過去 100 個の無効化のリストを表示できます。100 個を超える無効化のリストを取得する場合は、ListInvalidations API アクションを使用します。詳細については、「Amazon CloudFront API リファレンス」のListInvalidations「」を参照してください。

無効化のリストを表示するには
  1. にサインインAWS Management Consoleし、 で CloudFront コンソールを開きますhttps://console.aws.amazon.com/cloudfront/v4/home

  2. 無効化リストの表示の対象となるディストリビューションを選択します。

  3. [Distribution Settings] を選択します。

  4. [Invalidations] タブを選択します。

注記

無効化をリストから削除することはできません。

無効化に関する情報の表示

ディストリビューション ID、無効化 ID、無効化のステータス、無効化が作成された日時、無効化パスの完全リストを含め、無効化に関する詳細情報を表示できます。

無効化に関する情報を表示するには
  1. にサインインAWS Management Consoleし、 で CloudFront コンソールを開きますhttps://console.aws.amazon.com/cloudfront/v4/home

  2. 詳細情報の表示の対象となる無効化が含まれるディストリビューションを選択します。

  3. [Distribution Settings] を選択します。

  4. [Invalidations] タブを選択します。

  5. 該当する無効化を選択します。

  6. [Details] を選択します。

CloudFront API を使用したファイルの無効化

オブジェクトの無効化と CloudFront API を使用した無効化に関する情報の表示については、Amazon CloudFront API リファレンスの以下のトピックを参照してください。

同時無効化リクエストの最大制限

ファイルを個別に無効にする場合は、進行中のディストリビューションごとに最大 3,000 個のファイルまで、一度に無効化リクエストを作成できます。これは、最大 3,000 個のファイルに対する 1 つの無効化リクエスト、1 つのファイルに対する最大 3,000 個のリクエスト、または 3,000 個のファイルを超えないその他の任意の組み合わせとすることができます。たとえば、それぞれ 100 個のファイルを無効にする 30 個の無効化リクエストを送信できます。30 個の無効化リクエストがすべてまだ実行中である限り、それ以上の無効化リクエストを送信することはできません。最大値を超えると、 はエラーメッセージ CloudFront を返します。

* ワイルドカードを使用している場合、最大 15 個の無効化パスのリクエストを一度に作成できます。また、進行中のディストリビューションごとに最大 3,000 個の個別のファイルを同時に作成することができます。ワイルドカードの無効化リクエストの最大制限は、ファイルの個別の無効化の最大制限とは無関係です。

ファイルの無効化に対する支払い

1 か月に送信した無効化パスのうち、最初の 1,000 件は無料です。1 か月に 1,000 件を超えると、無効化パス 1 件ごとに支払いが発生します。無効なパスは 1 つのファイル (/images/logo.jpg など) に対して、または複数のファイル (/images/*) に対して発生する場合があります。* ワイルドカードを含むパスは、 によって何千ものファイルが無効になった場合でも CloudFront 、1 つのパスとしてカウントされます。

1 か月あたり 1,000 個の無料の無効化パスの上限は、1 つの AWS アカウントで作成するすべてのディストリビューションの無効化パスの合計数に対して適用されます。たとえば、AWS アカウント john@example.com を使用して 3 個のディストリビューションを作成し、ある月に、各ディストリビューションに 600 個の無効化パス (合計で 1,800 個の無効化パス) を送信しました。この場合、AWS は、その月に 800 個の無効化パスに対して料金を請求します。無効化料金の詳細については、「Amazon CloudFront 料金表」を参照してください。無効化パスの詳細については、「Invalidation paths」を参照してください。