「VCL」を含む日記 RSS

はてなキーワード: VCLとは

2021-06-09

何故 Fastly を使うのか

数ある CDN のなかでも Fastly は圧倒的に優れた特性を持つものだと思うので、障害にかこつけてその優れた点を紹介していく。

キャッシュが消えるのがはやい

CDN とは世界各地にあるキャッシュサーバーコンテンツキャッシュして配信してもらうことで、オリジンサーバーの負荷を軽減したりユーザーへの配信速度を上げたりするリバースプロキシホスティングサービスだが、 Fastly の最大の特徴としてはそのキャッシュが消えるのが速い。普通CDN が数十秒〜数分とかかるのにたいして 0.2 秒で全部消えることが保証されているし、キャッシュにたいしてキーをつけておけば(HTTP ヘッダーに Surrogate-Key って入れるだけ)特定キーがついているキャッシュだけ 0.2 秒以内に消したりということができる。

これにより、 CDN による配信高速化恩恵を受けながら、コンテンツリアルタイム更新していくことができる。 next.js + vercel などはこのあたりをフロントエンドから CDN まで一気通貫提供することでリアルタイム風にコンテンツ更新できるように見せかけているが、 Fastly なら本当になにもかもリアルタイムで出来ることが保証されるので、難しいことを考えなくてもよい。

設定の反映が速い

CDN の設定の反映の遅さというのは Cloudfront とか使っていれば感じることだと思うが、 Fastly なら 5 秒ぐらいで反映される。設定を変更しながらいろいろ検証しているときにこれが地味に嬉しい。

ただし上記特性の代償と言えるのかもしれないが(そうではないのかもしれないけど)、 Fastly は「デカめの配信拠点比較的少数配置する」という構成になっているため、ディザスタリカバリなどの面では不安がある(今回の障害マジで部落ちたのでこれとは関係ない問題だろう)。

Webからの設定が豊富+ツボを抑えている

Web 設定画面からいじれる設定項目が多く、にもかかわらずユーザーに優しく使いやすい。例えばリクエストヘッダーを Fastly 側で書き換えてもらう機能があるのだが、それとは別に Host ヘッダーのオーバーライドの設定は(えてしてよく使うので)別の画面に切り出されていたりする。

いざとなれば Varnish の設定ファイル(VCL)をアップロードできる

大抵のユーザーWeb からの設定画面でできることで満足すると思うが、高度な制御をしたい場合、 Varnish の設定ファイルスニペットアップロードしたり、あるいは設定全体を書いてアップロードする、といったことができる。例えば JWT のデコードVCL でやってしまって、同じ URI にたいして認証済みユーザーとそうじゃない人でキャッシュのだしわけなんてことが Fastly 上でできるようになる。

ただし VCL でいろいろな制御を実現しようと思うと、 VCL表現力の低さにより地獄を見ることになるので、得られるベネフィット相談しながらこのあたりはやっていくことになる。

 
ログイン ユーザー登録
ようこそ ゲスト さん