3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CloudFrontのキャッシュ削除の仕様変更への対応

Last updated at Posted at 2024-10-01

はじめに

こんにちは、Gakken LEAP のエンジニアの shogawa です。
今回は、CloudFrontでのキャッシュ削除について、仕様が変更されたようでキャッシュが残ってしまう事象が発生したため、調査および対応方法についてまとめます。

前提

  • AWSの環境が整っていること
  • CloudFrontのディストリビューションが設定されていること
    CloudFrontのオリジンはS3のバケットに設定されており、すべてのキャッシュを削除したい場合の仕様となります。

参考:https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/Invalidation_Requests.html

キャッシュ削除の手順

AWSのコンソールから、CloudFrontから対象のディストリビューションを選択、キャッシュ削除のタブから「キャッシュ削除を作成」をすることでキャッシュ削除を実行することができます。
image.png

そこで、キャッシュ削除対象のオブジェクトパスを指定し、「キャッシュ削除を作成」をして実行します。
image.png

仕様

2024年6月頃までは、オブジェクトパスに"/"を設定することで対象ディレクトリのキャッシュ削除ができていました。
image.png

2024年9月時点では、オブジェクトパスに"/*"を設定しないとキャッシュ削除ができないように変更されていました。
image.png

GithubActionsでの注意点

GithubActionsから実行する場合は、node-version20でsetup-node@v4を利用し、以下のように設定する必要がありました。

        # 抜粋
      - name: Setup node
        uses: actions/setup-node@v4
        with:
          node-version: 20
      - name: Delete Cloudfront Cache
        run: aws cloudfront create-invalidation --distribution-id ${{ env.CLOUDFRONT_DISTRIBUTION_ID }} --paths '${{ env.CLOUDFRONT_TARGET_PATH }}'

※手元の環境では、元々node-version17で、setup-node@v3を使用していました
※その場合はオリジンとは別のオブジェクトパスに対してのキャッシュ削除が実行されてしまうようなので注意
image.png

エンジニア募集中

Gakken LEAP では教育をアップデートしていきたいエンジニアを絶賛大募集しています!!

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?