『Web配信の技術』
https://gyazo.com/3643209f79585562d87e18af5d90be79
紙の本で456p、kindleで777pぐらいある
正誤表など
CDNやcacheに関するの本
HTTPを介した配信とその最適化について解説する入門書
積み上げてる感じなので、前から順に読み進めるのが良さそうmrsekut.icon
1~3章まで読めばいったん基礎がわかる
4章以降でCDNとかについて見ていく
技術の紹介時に、対応するRFCがちゃんと記載されている
わかりづらいRFCを、できるだけわかりやすく解説している感じがあって良い
読もうと思った動機
キャッシュやCDNについてよく知らないので、まとまった情報を得たかった
第1章 はじめに
キャッシュを上手く使うことで、serverへのreq数を減らせる(serverの負荷低下に繋がる)
第2章 配信の基礎
なにこれ?
動画関連の何かかmrsekut.icon
2.4 配信をより高速なものにするために
物理的に経路を短くする
CDNを使えばいい
コンテンツのサイズを小さくする
コンテンツをキャッシュする
第3章 HTTPヘッダ・設定とコンテンツの見直し
3.13.1 ゲートウェイとオリジンサーバーを把握する
3.13.2 どのようにコントロールするのか
3.14 コンテンツのサイズ削減
3.14.1 テキストが圧縮転送されていない
3.14.2 ストレージサービスの圧縮漏れ
Column 圧縮は万能ではない
3.15 適切なメディアの選択によるコンテンツの改善
3.15.1 配信システムとファイルサイズ
3.15.2 画像サイズが必要以上に大きくないか(サムネイル)
3.15.4 画像フォーマットは適切か
Column JPEG画像の注意点
Column 外部サービスという選択肢
3.16 問題点を調査する
3.16.1 圧縮転送が有効になっていない
3.16.2 ETag/Last-Modifiedがおかしい
3.16.3 画像コンテンツが大きい
3.16.4 キャッシュが有効に使われていない
第4章 キャッシュによる負荷対策
ProxyにはVarnishを採用して話が進む
流し読みしてる感じもあるので再読したほうがいいかもmrsekut.icon
良さそうなタイミング
Varnishの設定をしたい
これは、
のことを指している
流し読みしてる感じもあるので再読したほうがいいかもmrsekut.icon
良さそうなタイミング
userごとの情報など、URLだけで判別できないコンテンツなどもcacheさせたい時
特にこの辺はsecurityにも関わってくる
cache key/secondary keyなどの複雑な条件を用いたcacheをしたい時
これは
この辺
第5章 より効果的・大規模な配信とキャッシュ
5.14 配信構成の工夫
5.14.1 ストレージ
5.14.2 Proxyの増設(スケールアウト)
5.15.1 Proxyを増設すると何が起きるのか
5.15.2 多段Proxyのメリット―一貫性
5.15.3 1段方式の多段Proxy
5.15.4 2段方式の多段Proxy
Column ハッシュをとってどのように振り分けを行うか
5.15.5 どの方式の多段Proxyを採用すべきか
5.15.6 多段Proxyのメリットをより深く理解する
5.15.7 多段Proxyの注意点
Column キャッシュ巻き戻りの問題
Column max-ageが変動する時の注意
5.16 障害時に正しくサーバーを切り離す(ヘルスチェック)
5.16.1 ヘルスチェックを行う側の設定
5.16.2 ヘルスチェックを受ける側の設定
5.17 ドメインの分割
5.17.1 動的コンテンツと静的コンテンツでドメインを分ける
この章で「自前」と呼んでいるのは「自前Proxy」のことで、例えばVarnishなどを使ったもののこと
6.3 CDNの選び方
6.3.1 代表的なCDNの一覧
6.3.2 どの地域に配信をするのか(海外・国内配信)
6.3.3 ピーク帯域がどの程度あるのか CDNが対応できるか
6.3.4 どのようにキャッシュを制御するのか
6.3.5 HTTPSの取り扱い
6.3.6 CDNのキャッシュの消去
6.3.7 Apexドメインの扱い
6.3.8 信頼できるのか
6.3.9 CDNの多段キャッシュ
Column コンテンツの一貫性はどれほど必要なのか
6.4 CDNを使うときに気をつけたいポイント
6.4.1 キャッシュされない設定を調べる
6.4.2 クエリ文字列の解釈について
6.4.3 トラフィックなどの制限に注意
6.4.4 コンテンツのサイズに注意
6.4.5 Varyに注意
Column キャッシュ汚染DoS(CPDoS)
6.4.6 CDNのデバッグ
Column CDNのヘッダと標準化
6.4.7 CDNで隠したい情報をきちんと整理する
6.4.8 ウォームアップ
6.5 クライアントの近くでコードを動かす - エッジコンピューティング
Column 内部向けにCDNを使う - internal CDN
Column CDNのコスト
6.6 CDNと障害
6.6.1 CDNの障害
6.6.2 問題の切り分け―それはCDNの障害なのか
6.6.3 まずはmetricsを見てみる
6.6.4 CDNの典型的な障害
6.6.5 コンテンツのダウンロードが遅い
6.6.6 キャッシュが壊れる
6.7 動的コンテンツのキャッシュやCDN利用は危険なのか
Column マルチCDN
Column DNSブロッキングにかかる
Column 適切に設定しているのにキャッシュされない
6.8 実際にCDNを設定する
6.8.1 動的コンテンツの設定例
第7章 自作CDN(DIY-CDN)
7.1 なぜCDNをつくるのか
7.1.1 低予算
7.1.2 ハイブリッドで使う
Column CDN自体を多段で使うときの注意
7.2 低予算自作CDNの構成
7.2.1 さまざまなことを諦める
7.2.2 基本構成
Column VPSのプランをどう選ぶか
7.3 自作CDNと外部CDNのハイブリッド構成
Column 低コスト運用からその先へ
7.4 VCLでの設定例
7.4.1 gatewayとcacheでの設定の目的
7.4.2 リクエストの正規化
7.4.3 キャッシュする場合のCookieなどの取り扱い
7.4.4 TTLの設定
7.4.5 オリジンへの振り分け
7.4.6 ストレージの分割
7.4.7 オリジンでの注意
7.4.8 VCLサンプル
先に5章の前半を読んでおいたほうがいいmrsekut.icon