Cloudfrontの料金を抑えてセキュア設定を精査していくと、CloudfrontからCloudflareへ移管する事になった

今回の目的(GOAL)

  • Cloudfrontの費用を削減し、かつWAFv2を検証してセキュアにしたい

    • ①. Cloudfrontのコスト削減
      Cloudfrontの請求額が上がっているので原因を調査してコストを削減したい

    • ②. AWS WAFv2へ移行するための調査
      コスト優先だが、可能であれば新しいWAFv2へ移行したい

    • ③. Cloudfrontの脆弱性対策
      コスト優先なので、セキュリティが担保できればディストリビューション設定やオリジン設定だけでよい。AWSでコスト削減が難しい場合もしくはセキュリティ対策を解決できない場合はAWS以外のソリューションも検討する


解決すべき課題

  • ①. AWS利用料金の高騰
    Cloudfrontは2023年頃までは月額10ドル未満で6つのディストリビューション(サイト)を運営できていたのだが、2024年11月頃からCloudfrontだけで月額36ドルにコストアップしていた。更に直近1ヶ月では60~80ドルの請求額になっていた。

  • ②. AWS WAFv1が2025年9月で提供終了
    WAFv1=ClassicWAFが2025年9月で終了することが発表されており、WAFv2へ移行するかWAFを停止する必要がある。

  • ③. Cloudfrontの脆弱性対策
    Cloudfrontには不正アクセスが発生したときに悪意のあるURLへの攻撃であっても料金が発生する欠陥仕様が存在している。これはWAFv2でアクセス制限しなければ回避できない。
    過去の事例では、不正アクセスによってAWSからの請求額が数十万円~数百万円の高額請求になった事例もあり、潜在的に大きなリスクがある。


課題への具体的施策

①. Cloudfrontのコスト削減

最初の1ヶ月でCloudfrontのコストを削減できる方法を試したのだが。

  • エッジロケーションを米国+欧州に限定
    →効果なし
  • 海外からのbotを拒否
    →効果なし(※不正アクセス対策には効果あり)
  • S3経由の配信をMinIOやwasabiに変更
    →効果なし

②. AWS WAFv2へ移行するための調査

  • WAFv1は2025年9月で終了
  • WAFv1とWAFv2とは互換性がない(ゼロから構築が必要)
  • WAFv2を有効化させるだけで1ディストリビューション辺り月額5ドル
  • WAFv2の1ルールあたり1ドル
  • WAFv2の従量料金は1000万リクエストあたり6ドルの料金が発生する
  • WAFv2はマネージドルールのテンプレートが提供されているためXSS対策等のルールは簡単に設定できる
  • WAFv2のルールは1ルールあたり月額1ドルの料金が発生する

③. Cloudfrontの脆弱性対策

  • 国別IPでセンシティブ国を除去
    Cloudfrontの標準機能として利用可能でコスパが高いが、なぜかWAFv2と併用ができない。
  • WAFv2での脆弱性対策
    ソリューションとしては良いのだが、1ディストリビューションあたり15ドル前後かかる。少なくとも5ディストリビューションは稼働させるので75ドルの追加料金はツライ。
  • 競合WAFを含めたソリューションを調査
    Cloudflareを利用するとWAFv2に相当する機能は無料、国別IP設定も無料、DDoS攻撃防御も無料

結論

CloudfrontからCloudflareへ移行した

2024~2025 8月 9月 10月 11月 12月 1月 2月 3月 4月 5月 6月
Cloudfront請求額(USD) 16 15 16 16 36 54 61 70 66 54 3
  • 2024年12月
    これまで1ヶ月あたり15ドル前後で推移していたCloudfrontの請求額が前月比2倍以上になった事を確認
  • 2025年1月~2月
    Cloudfrontの請求額が更に高騰
  • 2025年3月~4月
    Cloudfrontでのコスト削減施策を試すが、殆ど効果なし
  • 2025年4月~5月
    Cloudfrontへの移管を開始
  • 2025年6月
    Cloudfrontのディストリビューションを全て削除(95%のコスト削減)

ドメインレジストラを移管

  • 「お名前.com」 から 「Cloudflare Registrar」へ
  • .jp ドメイン以外は全てCloudflareへ
  • .jp ドメインはCloudflareでは取り扱わないので「お名前.com」を継続

DNSを移管

  • 「Route53」から「Cloudflare DNS」へ

CDNを移管

  • 「AWS Cloudfront」から「Cloudflare workers」へ

S3を移管

  • 「Amazon S3」から「Cloudflare R2」と「Wasabi」へ

WAFを移管

  • 「AWS WAF」から「Cloudflare セキュリティ ルール」へ