midnight in a perfect world

webエンジニアのメモ

「web配信の技術」を読む。

年末年始の休暇の間に一気読みしようと思っていたが何か気分が乗らずやっと読み終えた。タイトル通りweb技術のうち配信のみにスポットを当てて構築方法や改善方法について解説する内容で、著者はGREEで大規模配信を担当しているという現役のエンジニアで、webパフォーマンスチューニング本にも通じるインフラエンジニアが学ぶべき色んなスキルが詰まった良書。

timit.hatenablog.com

技術書として良書かどうかという判定基準として、必要なRFCをきちんと参照しつつ解説できるかというのが自分の中で定まりつつあるが、本書はRFC参照がたくさんあり、「過去の経緯としてRFCでこう定められているけど、現場ではこんな形で利用されている例が多い」みたいな理論と実践をどちらも意識しながら技術を学べることが出来る。

技術要素としてタグをつけて紹介するとしたら、各々レベル感が異なるがDNS、HTTP(主にcache)、proxy(nginxやVarnish)、CDNあたりが中心となる。著者はVarnish推しらしく、単独で一章設けて解説しており、今までApacheやnginxやIISしか触ったことない身としては色々と学びになった。

現場で活用したいなと思ったのは、著者が提唱する「ヘッダクレンジング」の概念。HTTPのヘッダをちゃんとするということなのだが、配信の形態だったり、使うCDNやweb(proxy)サーバなどの構成、開発チームによっても全然最適解が違うので難しいが色々とやれることはありそうだなと思った。自分が関わるサービスだとAWSのCloud FrontやAmplifyでCDNを使っているのだが、知らない間に設定が増えていたり、実はキャッシュヒットしていないパターンがあるみたいなことが最近わかってきたこともあって、この辺りは得た知識を元に自分で改善していけるようにしていきたい。