Upgrade to Pro — share decks privately, control downloads, hide ads and more …

大規模 to C プロダクトにおける Fastly VCL サービスから Compute への...

Avatar for Kazuki Taninaka Kazuki Taninaka
October 29, 2025
110

大規模 to C プロダクトにおける Fastly VCL サービスから Compute への安全な段階移行

Fastly Yamagoya Night / 2025-10-29
https://fastly-japan.connpass.com/event/372054/

Avatar for Kazuki Taninaka

Kazuki Taninaka

October 29, 2025
Tweet

Transcript

  1. なぜ WINTICKET Web は VCL から Compute へ移行したのか Compute への安全な移行

    移行の際の苦労ポイント 移行で得た恩恵 アジェンダ
  2. (当たり前だが)VCL という設定言語、独自 ライフサイクルについて深く理解する必要が ある 一般的に Web フロントエンドエンジニア にとっては馴染みが薄い WINTICKET では

    Web 開発チームメンバーが CDN の管理も行う必要があるが、そのメンテ ナンスは一部メンバーに限られてしまう状態 課題感1: VCL への適切な理解が求められる点 https://www.fastly.com/documentation/guides/full-site-delivery/fastly-vcl/about-fastly-vcl/
  3. VCL でのロジック実行 & キャッシュをさせないために Request settings, Cache settings において、 Condition

    に任意のページパスを指定 Action に Pass(do not cache) を指定 することで、VCLロジックを実行 & キャッシュを させないようにする https://www.fastly.com/documentation/ja/guides/full-site-delivery/ conditions/using-conditions/
  4. Compute への一本化 全てのパスがComputeに流れるようになったら、最後にVCLを廃止する VCLサービス (www.winticket.jp) Computeサービス (*.winticket.jp) deactivate ユーザー ワイルドカードドメインのため

    自動で www.winticket.jp へのアクセスは Compute サービスへ向くように →ゼロダウンタイム移行が可能に オリジンサーバー 完全移行完了
  5. 動的圧縮 vs 静的圧縮 Compute では動的圧縮のみサポートされている 動的圧縮は、圧縮結果がキャッシュされず、圧縮 率は静的圧縮に比べて下がる パフォーマンスの悪化に繋がる WINTICKET では静的アセットも含め、Fastly

    の圧縮 に依存していた 静的アセットはビルド時に圧縮、HTML のみ動的圧縮 を許容する形で対応 https://www.fastly.com/documentation/guides/concepts/compression/
  6. Vary Header によるキャッシュ分離が効かない JS SDK において、HTTP Cache API を有効化 したとき、Edge

    上で付与した Vary による キャッシュの分離が機能しない issue: https://github.com/fastly/js- compute-runtime/issues/1178 オリジンサーバーで必要なVaryをあらかじめ付与す ることで対応