Web 配信の技術ー HTTP キャッシュ・リバースプロキシ・CDN を活用する
ウェブハイシンノギジュツ エイチティーティーピーキャッシュ リバースプロキシ シーディーエヌヲカツヨウスル
- 著者:
- 田中 祥平(タナカ ショウヘイ)
- 注目:
- 総合 2136 位
- 出版社:
- 技術評論社
- 出版日:
- 2021年02月13日頃
- ISBN:
- 9784297119256
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
HTTP キャッシュ、リバースプロキシ、CDN など Web 開発で大切な「配信」の技術。
重要な技術ながら、現場では知見のあるエンジニアが少なく、なんとなくで運用されていたり、導入が遅れていたりします。
本書では、HTTP キャッシュの基礎から解説し、一冊でしっかり配信が学べます。
速くて落ちない Web サイト / Web サービス / Web API の実現はもちろん。キャッシュ事故やセキュリティ上の問題を防ぐのにも役立ちます。
技書の森解説
『Web 配信の技術ー HTTP キャッシュ・リバースプロキシ・CDN を活用する』 (田中祥平 著、技術評論社、2021 年 2 月刊) は、HTTP キャッシュ、リバースプロキシ、CDN という Web の配信を支える技術を、HTTP キャッシュの基礎から順に積み上げて解説する技術書です。版元は、配信は重要な技術でありながら現場では知見のあるエンジニアが少なく、なんとなくで運用されていたり導入が遅れていたりすると紹介し、速くて落ちない Web サイトや Web API の実現に加えて、キャッシュ事故やセキュリティ上の問題を防ぐのにも役立つ本としています。薦める相手は、CDN やリバースプロキシの導入に興味のあるアプリケーションエンジニアとインフラエンジニア、配信技術を学びたいインフラエンジニア、Web サービスを高速化させたいフロントエンドエンジニアです。国立国会図書館の書誌では文献ありと索引ありと記録されています。
全 7 章の構成、配信の経路から自作 CDN まで
第 1 章「はじめに」で本書の対象と目的、構成、下準備を示したあと、第 2 章「配信の基礎」は、ブラウザーで Web ページを表示するまでの経路、配信経路の最適化とクライアントとサーバーでの最適化、キャッシュの格納場所による分類、private と shared のキャッシュを扱います。第 3 章「HTTP ヘッダ・設定とコンテンツの見直し」は、HTTP メッセージ、ステータスコード、Cache-Control による保存方法と使われ方と期限の指定、Range と条件付きリクエスト、Vary を RFC の節番号を添えて説明し、ヘッダクレンジング、圧縮転送、画像のサイズとフォーマットの見直しまで進みます。第 4 章「キャッシュによる負荷対策」はキャッシュ事故の防ぎ方、キャッシュキーの戦略、TTL の決め方、キャッシュの消去を扱い、第 5 章「より効果的・大規模な配信とキャッシュ」は Proxy と CDN の処理の段階、動的コンテンツのキャッシュ、Edge Side Includes (ESI)、多段 Proxy、ヘルスチェック、ドメインの分割を取り上げます。第 6 章「CDN を活用する」は CDN の選び方、使うときの注意点、障害の切り分け、設定例を、第 7 章「自作 CDN (DIY-CDN)」は低予算の自作 CDN の構成、外部 CDN とのハイブリッド構成、VCL での設定例を扱います。巻末の Appendix「Varnish について」は、Varnish のインストール、VCL の基本と記述の注意点、varnishtest によるテスト、ログの絞り込み、varnishstat などのツールをまとめています。
private と shared の区別とキャッシュ事故
キャッシュには、利用者のブラウザーの中にだけ置かれるものと、経路上の Proxy やサーバー側に置かれて多くの利用者で共有されるものがあります。HTTP キャッシュ の振る舞いは応答の Cache-Control などのヘッダーで指示し、private を付けた応答は利用者のブラウザーだけが保存でき、s-maxage のような共有キャッシュ向けの指定は経路上での保存の期間を決めます。ログイン後の画面のように利用者ごとに中身が変わる応答を共有キャッシュに保存させると、次に来た別の利用者に同じ応答が返り、ある人の情報が他人の画面に表示されます。本書は第 4 章で、中間の Proxy や CDN を信頼しすぎる場合と、オリジンを信頼しすぎる場合とに分けてキャッシュ事故の防ぎ方を説明しています。
リバースプロキシと CDN が応答を返すまでの段階
リバースプロキシ は利用者とオリジンのサーバーの間に立ち、手元のキャッシュで応えられるリクエストにはオリジンへ問い合わせずに応答し、応えられないものはオリジンから取得して保存します。同じ仕組みを各地の拠点に置き、利用者の近くから応答するのが CDN です。どちらの振る舞いも、どのリクエストを同じ応答とみなすかを決めるキャッシュキーと、どれだけの期間保存するかを決める TTL と、古くなった内容を取り除く キャッシュの無効化 の組み合わせで決まります。本書の第 5 章は、Proxy と CDN の処理を、クライアントからのリクエストの受信 (RxReq)、キャッシュヒットの判定 (Cache lookup)、キャッシュができるまでの待機 (Wait for cache)、オリジンへのリクエストの送信 (TxReq)、オリジンからのレスポンスの受信 (RxResp)、クライアントへのレスポンスの送信 (TxResp) の段階に分け、段階ごとにできる操作を整理しています。
RFC 9111 への改定と Varnish の設定例
本書は HTTP の仕様を、RFC 7230 から RFC 7234 の節番号を添えて説明しています。このうち HTTP のキャッシュを定めた RFC 7234 は、2022 年 6 月に公開された RFC 9111 によって置き換えられています。第 7 章には Varnish の設定言語である VCL での設定例の節があり、巻末の Appendix も Varnish を扱っています。著者の田中祥平は、GREE で配信周りを引き受けるエンジニアで、配信全体に強く、特に Varnish に詳しいと版元のプロフィールにあります。本書は、配信の経路とキャッシュの基礎から、HTTP ヘッダーの見直し、負荷対策、大規模な配信、CDN の活用、自作 CDN までを全 7 章と Appendix に収めています。
この本は技書デッキのカードです (備え 4 / 流儀: 引いたら備え) 図鑑でこの本を見る
この本に興味がある方におすすめ
関連する本
関連記事
体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版は初版と何が違うか - 買い直し判断ガイド
通称「徳丸本」こと体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版 (2018 年) と初版 (2011 年) の違いを出版社公表の改訂内容から整理。章の削除 / 新設 / 追加点の一覧と、初版所有者が買い直すべきかの判断基準を解説します。
セキュリティ本ガイド - Web 開発者が読むべき技術書の選び方
Web セキュリティの基礎から実践まで学べる技術書の選び方マトリクスと、読了後にやるべき 3 つのアクションを紹介します。
エンジニアが最初に読むべき技術書 5 冊の選び方 - ジャンル配分が鍵
新人エンジニアやキャリアチェンジ組が最初に読むべき技術書のジャンル配分と、言語 / 設計 / 運用 / CS 基礎 / ソフトスキルの 5 冊を選ぶチェックリストを紹介します。
関連用語
キャッシュ無効化とは - TTL / イベント駆動 / パージ戦略の比較
キャッシュ無効化は古くなったキャッシュデータを最新に更新する仕組み。TTL 方式 / Write-through / イベント駆動パージの使い分けと実装パターンを解説
PWA
Service Worker やマニフェストを活用し、Web 技術でオフライン対応やプッシュ通知などネイティブアプリに近い体験を提供するアプローチ
キャッシュ
頻繁にアクセスされるデータを高速なストレージに保存し、読み取り性能を向上させる手法
TTL
データやキャッシュの有効期限を設定し、自動的に削除 / 更新する仕組み
HTTP キャッシュ
Cache-Control, ETag, Last-Modified を使った HTTP レベルのキャッシュ制御
ElastiCache
AWS のマネージドインメモリキャッシュサービスで、Valkey / Redis OSS / Memcached をサポートする