CDNキャッシュの無料パージオプションが増えた

私は、CloudflareのCDNサービスを利用しています。利用の際には、有料版ではなく無料のFree版を利用しています。

2025年4月のCloudflareのブログで知ったのですが、CloudflareのCDNキャッシュのパージについて、これまで有料のPro、Business、Enterprise版でしか使えなかった機能が使えるようになりました。

https://developers.cloudflare.com/cache/how-to/purge-cache/

その中でも、ホスト名を指定してキャッシュの削除ができるようになったのはとても有用です。

私は、一つのドメインで複数のサイトを公開し、それぞれでCloudflareのCDNを利用していました。これまでは、サイトを更新してキャッシュを削除したい場合、そのドメインに紐づく全てのキャッシュを削除していました。これでは、本来キャッシュとして持ち続けても良いデータまで削除していたため、非効率でした。

これからは、ホスト名を指定することで、キャッシュ削除の影響範囲を制限することができ、昔よりも効率的にCDNを扱えます。

Cloudflare最安のプロプランは、払えないことはないですが個人で使うには高く、できることに対してあまり価値がないと思っていたので、CDNキャッシュの細かな制御については諦めていました。それが、無料版でもレートの制限はありますが、使えるようになったのはとても嬉しいです。

ちなみに、レートの制限についてですが、一部を除いてProプランと同等の制限です。ドキュメントを確認したところでは、Single-file purge limitが、Proプランでは1500 URLs per second、Freeプランでは800 URLs per secondと異なるようです。気づいていないだけで他にも違いはあるかもしれませんが、それほど厳しいレート制限はないと思われます。

やってみた

私は、CI/CDで行うWebサイトの更新デプロイ時に、WebAPIを介してCDNキャッシュの削除をしています。その設定を少し変えて、ホスト名でキャッシュの削除をできるようにしました。

具体的には、CI/CDで行うコマンドを次のように修正しました。

curl -s -X POST "https://api.cloudflare.com/client/v4/zones/${CF_ZONE_ID}/purge_cache" -H "X-Auth-Email: ${CF_EMAIL}" -H "Authorization: Bearer ${CF_API_KEY}" -H "Content-Type: application/json" --data '{ "hosts": ["tmp1024.com", "www.tmp1024.com"] }'

JSONのhostsに、ホスト名を指定しています。ここでは、本ブログのドメインを指定しました。APIキーや、アカウント名などは環境変数として記述していますので、もしも同じようなことをする場合は適宜置き換えてください。

実行結果として次のレスポンスが返ってきました。

{
  "result": {
    "id": "*****"
  },
  "success": true,
  "errors": [],
  "messages": []
}

"success": trueとなっており、ちゃんとホスト名でキャッシュのパージができているようです。

さいごに

Cloudflareは、無料でできることが多くてとても良いです。しかし、無料のものつ急にサービスを辞める可能性があるため依存するのは怖いのです。そのため、私はもしCloudflareが使えなくなっても、サービスを継続できるように心がけています。今回であれば、最悪CDNとしてしか使っていないため、もし使えなくなった場合はCDNを使わないようにするというものです。

無料のものを適切に利用して、サービスを継続的に運営していきましょう。