Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc/images
public
src
.gitignore
README.md
images.d.ts
package.json
tsconfig.json
tsconfig.prod.json
tsconfig.test.json
tslint.json
yarn.lock

README.md

なにか

CloudFrontのキャッシュ削除をフォームから行うウェブアプリ。

ScreenShot

なぜ作ったか

コンテンツ制作者がサーバーにコンテンツをアップした際にCloudFrontのキャッシュを即時削除したいというニーズに応えるため。

セットアップ

配置

yarn buildしてbuildディレクトリ以下を適当な場所にアップロード。

フォームへ入力する情報

ディストリビューションID

AWSコンソールのCloudFrontのDistributionsから対象のディストリビューションIDをメモする。

アクセスキーとシークレットキー

IAMでCloudFrontに対してInvalidationを作成する権限を持つユーザーを作成し、そのアクセスキーとシークレットキーを用いる。

以下は参考までにビジュアルエディタで作成したポリシー。2019年4月現在リソースは制限できないので「"*"」となっている

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "cloudfront:GetInvalidation",
                "cloudfront:CreateInvalidation"
            ],
            "Resource": "*"
        }
    ]
}

パス

キャッシュを削除するパス。

「/*」で全てのキャッシュを削除。

仕様

画面構成

  • Invalidation実行フォーム(一画面のみ)

入力項目

  • ディストリビューションID
  • アクセスキー
  • シークレットキー
  • パス

他のCloudFrontのキャッシュ削除方法

基本的に技術者は他の手段の方が簡単なのでこのアプリを使う必要は無い。 また可能であればコンテンツ更新時にキャッシュ削除が自動で行われるように自動化するのが吉。

AWSコンソール

Invalidationsのタブからポチポチと。

AWS CLI

https://docs.aws.amazon.com/cli/latest/reference/cloudfront/create-invalidation.html

aws cloudfront create-invalidation --distribution-id S11A16G5KZMEQD \
  --paths /index.html /error.html

CloudFrontのオリジンにS3を利用している場合

S3の更新をトリガーにLambdaを発火させてキャッシュ削除をリクエストするのがスマート。

CloudFrontのオリジンにWordPressを利用している場合

C3 Cloudfront Cache Controllerを使えば容易にキャッシュ削除を自動化できる。

プログラムによる自動化

繰り返しになるが可能であればコンテンツ更新時にキャッシュ削除が自動で行われるように好きな言語のAWS-SDKを利用して自動化するのが吉。特に運用が長期にわたる場合は初期に自動化のコストをかけた方が結果的にはコスト安になる。

You can’t perform that action at this time.