「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
ファイルの無効化
有効期限切れになる前に CloudFront エッジキャッシュからファイルを削除する場合、以下のいずれかの処理を行うことができます。
-
エッジキャッシュからファイルを無効にします。ビューワーが次にファイルをリクエストしたときに、CloudFront はオリジンに戻ってファイルの最新バージョンをフェッチします。
-
ファイルのバージョニングを使用して、異なる名前を持つ異なるバージョンのファイルを供給します。詳細については、「バージョン付きのファイル名を使用した既存ファイルの更新」を参照してください。
ファイルを無効にするには、個々のファイルのパスまたは *
ワイルドカードで終わるパスのいずれかを指定します。これは次の例に示すように、1 つまたは複数のファイルに適用できます。
-
/images/image1.jpg
-
/images/image*
-
/images/*
AWS コマンドラインインターフェイス (CLI) を使用してファイルを無効にする場合に、*
ワイルドカードを含むパスを指定するには、パスを引用符 ("
) で囲む必要があります。
例: aws cloudfront create-invalidation --distribution-id
distribution_ID
--paths "/*"
月ごとに、一定の数の無効化パスを無料で送信できます。月ごとに割り当てられた数より多くの無効化パスを送信する場合、送信する無効化パスごとに料金が発生します。無効化に関する料金の詳細については、「ファイルの無効化に対する支払い」を参照してください。
トピック
ファイルを無効化するか、バージョン付きファイル名を使用するかの選択
ディストリビューションから供給されるファイルのバージョンを制御するには、ファイルを無効にするか、バージョン付きファイル名をファイルに設定します。ファイルを頻繁に更新する必要がある場合は、以下の理由で、ファイルのバージョニングを第一に使用することをお勧めします。
-
バージョニングを使用すると、ローカルにキャッシュされている、または企業のキャッシュプロキシの背後にキャッシュされているバージョンをユーザーが保持している場合でも、リクエストがどのファイルを返すかを制御できます。ファイルを無効にした場合、キャッシュ内でオブジェクトが有効期限切れになるまで、ユーザーに旧バージョンが引き続き表示されることがあります。
-
CloudFront アクセスログにファイル名が含まれるので、バージョニングを使用すると、ファイルの変更結果の分析が容易になります。
-
バージョニングは、さまざまなバージョンのファイルをさまざまなユーザーに供給する方法を提供します。
-
バージョニングによって、ファイルのリビジョン間のロールフォワードとロールバックが簡素化されます。
-
バージョニングのほうが、コストが安くなります。CloudFront が新しいバージョンのファイルをエッジロケーションに転送することに関して料金を支払う必要がありますが、ファイルの無効化に関して料金を支払う必要はありません。
ファイルのバージョニングの詳細については、バージョン付きのファイル名を使用した既存ファイルの更新 を参照してください。
無効にするファイルの決定
ディレクトリ内のすべてのファイルや、名前が同じ文字で始まるすべてのファイルなど、複数のファイルを無効にする場合は、無効化パスの末尾に *
ワイルドカードを含めることができます。*
ワイルドカードの使用の詳細については、「無効化パス」を参照してください。
選択されたファイルを無効にする必要があり、ユーザーがオリジンのすべてのファイルに必ずしもアクセスしない場合は、ビューワーが CloudFront からどのファイルを要求したかを確認し、そのファイルのみを無効にできます。ビューワーがどのファイルを要求したかを確認するには、CloudFront アクセスログの作成を有効にします。アクセスログの詳細については、「標準ログ (アクセスログ) の設定および使用」を参照してください。
無効にするファイルの指定
無効にするファイルの指定時には、以下の事項に注意してください。
- 大文字と小文字の区別
-
無効化パスでは大文字と小文字が区別されます。そのため、
/images/image.jpg
と/images/Image.jpg
は 2 つの異なるファイルを指定したことになります。 - Lambda 関数を使用して URI を変更する
-
CloudFront ディストリビューションがビューワーリクエストイベントで Lambda 関数をトリガーして、関数がリクエストされたファイルの URI を変更する場合、CloudFront エッジキャッシュからファイルを削除するために両方の URI を無効にすることを推奨します。
-
ビューワーリクエストの URI
-
関数による変更後の URI
例えば、Lambda 関数が以下のファイルの URI を変更して、
https://d111111abcdef8.cloudfront.net/index.html
言語ディレクトリを含む URI にしたとします。
https://d111111abcdef8.cloudfront.net/en/index.html
ファイルを無効にするには、次のパスを指定する必要があります。
-
/index.html
-
/en/index.html
詳細については、「無効化パス」を参照してください。
-
- デフォルトのルートオブジェクト
-
デフォルトルートオブジェクト (ファイル) を無効にする場合、他のファイルのパスを指定する場合と同じ方法でパスを指定します。
- 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*
無効化パスでのワイルドカードの使用の詳細については、「無効化パス」を参照してください。クエリ文字列の詳細については、「クエリ文字列パラメータに基づくコンテンツのキャッシュ」を参照してください。使用中のクエリ文字列を確認するには、CloudFront ログ作成を有効にすることができます。詳細については、「標準ログ (アクセスログ) の設定および使用」を参照してください。
-
- 最大許容値
-
許可される無効化の最大許容値については、「同時無効化リクエストの最大制限」を参照してください。
- Microsoft スムーズストリーミングファイル
-
対応するキャッシュ動作に対してスムーズストリーミングを有効にした場合は、Microsoft Smooth Streaming 形式のメディアファイルを無効にすることはできません。
- パスの ASCII 以外の文字または安全でない文字
-
パスに ASCII 以外の文字が含まれるか、RFC 1783
に規定された安全でない文字が含まれる場合、その文字を URL エンコードします。パスに含まれる他の文字を URL エンコードしないでください。URL エンコードした場合、CloudFront は、更新されたファイルの旧バージョンを無効にしません。 - 無効化パス
-
パスはディストリビューションを基準とする相対パスです。たとえば、
https://d111111abcdef8.cloudfront.net/images/image2.jpg
のファイルを無効にするには、次のように指定します。/images/image2.jpg
注記 CloudFront コンソール
では、 images/image2.jpg
のようにパスの先頭のスラッシュを省略できます。CloudFront API を直接使用する場合、無効化パスは先頭にスラッシュを付ける必要があります。*
ワイルドカードを使用して、同時に複数のファイルを無効にすることもできます。0 個以上の文字を置き換える*
は、無効化パスの最後の文字である必要があります。また、AWS コマンドラインインターフェイス (CLI) を使用してファイルを無効にする場合に、*
ワイルドカードを含むパスを指定するには、パスを引用符 ("
) で囲む必要があります (たとえば"/*"
)。次に例をいくつか示します。
-
ディレクトリ内のすべてのファイルを無効にするには:
/
directory-path
/*
-
ディレクトリ、そのすべてのサブディレクトリ、およびそのディレクトリとサブディレクトリのすべてのファイルを無効にするには:
/
directory-path
*
-
同じ名前でファイル名拡張子が異なるすべてのファイル (logo.jpg、logo.png、logo.gif など) を無効にするには:
/
directory-path
/
file-name
.*
-
ファイル名拡張子にかかわらず、ディレクトリ内でファイル名が同じ文字で始まるすべてのファイル (HLS 形式の動画のすべてのファイルなど) を無効にするには:
/
directory-path
/
initial-characters-in-file-name
*
-
クエリ文字列パラメータに基づいてキャッシュするように CloudFront を設定し、ファイルのすべてのバージョンを無効にするには:
/
directory-path
/
file-name
.
file-name-extension
*
-
ディストリビューション内のすべてのファイルを無効にするには:
/*
パスの最大長は 4000 文字です。パス内にワイルドカードを使用することはできません。パスの末尾にのみ使用できます。
Lambda 関数を使用して URI を変更する場合のファイルの無効化の詳細については、「Lambda 関数を使用して URI を変更する」を参照してください。
無効化パスを送信する料金は、無効にするファイルの数に関係なく同じです。つまり、1 つのファイル (
/images/logo.jpg
) であっても、ディストリビューションに関連付けられたすべてのファイル (/*
) であっても同じです。詳細については、「Amazon CloudFront 料金表」を参照してください。 無効化パスがディレクトリであり、ディレクトリの指定方法 (末尾のスラッシュ (/) を付けるかどうか) を標準化していない場合、末尾のスラッシュを付けたディレクトリと付けないディレクトリの両方を無効にすることをお勧めします (例:
/images
および/images/
)。 -
- 署名付き URL
-
署名付き URL を使用している場合は、URL の疑問符 (?) の前の部分のみを含めてファイルを無効にします。
コンソールを使用したファイルの無効化
CloudFront コンソールを使用して、無効化の作成と実行、以前に送信された無効化のリストの表示、および個々の無効化に関する詳細情報の表示を行うことができます。また、既存の無効化をコピーしたり、ファイルパスのリストを編集したり、編集された無効化を実行したりもできます。無効化をリストから削除することはできません。
ファイルの無効化
CloudFront コンソールを使用してファイルを無効にするには、以下を実行します。
ファイルを無効化するには
-
AWS マネジメントコンソールにサインインし、CloudFront コンソール (https://console.aws.amazon.com/cloudfront/
) を開きます。 -
無効にするファイルのディストリビューションを選択します。
-
[Distribution Settings] を選択します。
-
[Invalidations] タブを選択します。
-
[Create Invalidation] を選択します。
-
無効にするファイルについて、1 行ごとに 1 つの無効化パスを入力します。無効パスの指定の詳細については、「無効にするファイルの指定」を参照してください。
重要 ファイルパスを慎重に指定します。無効化リクエストは開始後にキャンセルすることはできません。
-
[Invalidate] を選択します。
既存の無効化のコピー、編集、および再実行
以前に作成した無効化をコピーし、無効化パスのリストを更新して、更新した無効化を実行することができます。既存の無効化をコピーし、無効化パスを更新して、更新した無効化を実行せずに保存することはできません。
進行中の無効化をコピーし、無効化パスのリストを更新して、更新した無効化を実行した場合、コピーした無効化を CloudFront が停止または削除することはありません。ある無効化パスがファイルとコピーの両方に含まれる場合、CloudFront はこのファイルの無効化を 2 回試みます。この 2 回の無効化は月ごとの無料の無効化の最大数に対してカウントされます。無料で行うことができる無効化の最大数に既に達している場合は、各ファイルの両方の無効化に対して料金が発生します。詳細については、「同時無効化リクエストの最大制限」を参照してください。
既存の無効化のコピー、編集、および再実行を行うには
-
AWS マネジメントコンソールにサインインし、CloudFront コンソール (https://console.aws.amazon.com/cloudfront/
) を開きます。 -
コピーする無効化が含まれるディストリビューションを選択します。
-
[Distribution Settings] を選択します。
-
[Invalidations] タブを選択します。
-
コピーする無効化を選択します。
コピーする無効化が不明な場合は、無効化を選択し、[Details] を選択すると、その無効化の詳細情報が表示されます。
-
[Copy] を選択します。
-
必要に応じて、無効化パスのリストを更新します。
-
[Invalidate] を選択します。
無効化のキャンセル
CloudFront に無効化リクエストを送信すると、そのリクエストは数秒以内にすべてのエッジロケーションに転送されて、各エッジロケーションで直ちに無効化の処理が開始されます。そのため、無効化を送信後にキャンセルすることはできません。
無効化のリスト表示
CloudFront コンソールを使用して、ディストリビューションにおいて作成および実行された最後の 100 個の無効化のリストを表示できます。100 個を超える無効化のリストを取得する場合は、ListInvalidations
API アクションを使用します。詳細については、Amazon CloudFront API リファレンスの「ListInvalidations」を参照してください。
無効化のリストを表示するには
-
AWS マネジメントコンソールにサインインし、CloudFront コンソール (https://console.aws.amazon.com/cloudfront/
) を開きます。 -
無効化リストの表示の対象となるディストリビューションを選択します。
-
[Distribution Settings] を選択します。
-
[Invalidations] タブを選択します。
無効化をリストから削除することはできません。
無効化に関する情報の表示
ディストリビューション ID、無効化 ID、無効化のステータス、無効化が作成された日時、無効化パスの完全リストを含め、無効化に関する詳細情報を表示できます。
無効化に関する情報を表示するには
-
AWS マネジメントコンソールにサインインし、CloudFront コンソール (https://console.aws.amazon.com/cloudfront/
) を開きます。 -
詳細情報の表示の対象となる無効化が含まれるディストリビューションを選択します。
-
[Distribution Settings] を選択します。
-
[Invalidations] タブを選択します。
-
該当する無効化を選択します。
-
[Details] を選択します。
CloudFront API を使用したファイルの無効化
オブジェクトの無効化に関する情報、および CloudFront API を使用して無効化に関する情報を表示する方法については、Amazon CloudFront API リファレンスの該当するトピックを参照してください。
-
ファイルの無効化: CreateInvalidation
-
無効化のリストの取得: ListInvalidations
-
特定の無効化に関する情報の取得: GetInvalidation
同時無効化リクエストの最大制限
ファイルを個別に無効にする場合は、進行中のディストリビューションごとに最大 3,000 個のファイルまで、一度に無効化リクエストを作成できます。これは、最大 3,000 個のファイルに対する 1 つの無効化リクエスト、1 つのファイルに対する最大 3,000 個のリクエスト、または 3,000 個のファイルを超えないその他の任意の組み合わせとすることができます。たとえば、それぞれ 100 個のファイルを無効にする 30 個の無効化リクエストを送信できます。30 個の無効化リクエストがすべてまだ実行中である限り、それ以上の無効化リクエストを送信することはできません。この最大制限を超えた場合、CloudFront はエラーメッセージを返します。
* ワイルドカードを使用している場合、最大 15 個の無効化パスのリクエストを一度に作成できます。また、進行中のディストリビューションごとに最大 3,000 個の個別のファイルを同時に作成することができます。ワイルドカードの無効化リクエストの最大制限は、ファイルの個別の無効化の最大制限とは無関係です。
ファイルの無効化に対する支払い
1 か月に送信した無効化パスのうち、最初の 1000 件は無料です。1 か月に 1000 件を超えると、無効化パス 1 件ごとに支払いが発生します。無効なパスは 1
つのファイル (/images/logo.jpg
など) に対して、または複数のファイル (/images/*
) に対して発生する場合があります。CloudFront が無数のファイルを無効にした場合でも、ワイルドカード *
は 1 つのパスとして含まれます。
1 か月あたり 1000 個の 無料の無効化パスの上限は、1 つの AWS アカウントで作成するすべてのディストリビューションの無効化パスの合計数に対して適用されます。たとえば、AWS
アカウント john@example.com
を使用して 3 個のディストリビューションを作成し、ある月に、各ディストリビューションに 600 個の無効化パス (合計で 1,800 個の無効化パス) を送信しました。この場合、AWS
は、その月に 800 個の無効化パスに対して料金を請求します。無効化の料金に関する具体的な情報については、「Amazon CloudFront 料金表