Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

5分で猫るVarnish

486 views

Published on

#ssmjp LT資料 2018/1/12

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

5分で猫るVarnish

  1. 1. 5分で猫る Varnish @silpheed_kt #ssmjp 2018/1/12
  2. 2. 目次 5分で猫る Varnish #ssmjp 2018/1/12 • 自己紹介 • Varnish とは • Varnish の特長 • 注意点
  3. 3. 自己紹介 @silpheed_kt Keiichi Tanaka 都内のゲーム開発会社で ソフトウェア開発+インフラ構築 5分で猫る Varnish #ssmjp 2018/1/12
  4. 4. Varnish #とは ・ HTTPキャッシュ ・ リバースプロキシ https://varnish-cache.org/ 現在の最新版は5.2.1 5分で猫る Varnish #ssmjp 2018/1/12
  5. 5. Varnish #とは Apache PHP (CMS) Varnish DB 要求 返却 キャッシュ 生成 ・ キャッシュがないとき →バックエンドに問い合わせキャッシュを生成し返却 5分で猫る Varnish #ssmjp 2018/1/12
  6. 6. Varnish #とは Apache PHP (CMS) Varnish DB 要求 キャッシュ 返却 ・ キャッシュがあるとき →キャッシュを返却 動作しなくてOK 5分で猫る Varnish #ssmjp 2018/1/12
  7. 7. Varnish #とは ??? 「nginxでいいのでは」 5分で猫る Varnish #ssmjp 2018/1/12
  8. 8. Varnish #とは ??? 「nginxでいいのでは」 →はい 5分で猫る Varnish #ssmjp 2018/1/12
  9. 9. Varnish の特長 ・ 速い(らしい) メモリにキャッシュ(ファイルにキャッシュも可) 実案件にて約4倍(実機)、約130倍(VM) ※同一同時アクセス数に対して返却完了するまでの時間を比較 ・ 導入が簡単 yum 等でインストール可 Listen するポートとバックエンドを指定するだけで動作 ・ 可用性 VCL による柔軟な設定 VMOD による機能拡張 5分で猫る Varnish #ssmjp 2018/1/12
  10. 10. 注意点(1) ・ Varnish は「URL ベースで」キャッシュする 5分で猫る Varnish #ssmjp 2018/1/12
  11. 11. 注意点(1) ・ Varnish は「URL ベースで」キャッシュする 例えば、同一 URL で「サーバサイドで」デバイス判定を行い css 等を切り替 えている場合、キャッシュ生成時の結果を返し続ける。 →PC でアクセスしてもモバイルのページを返す、等々。 5分で猫る Varnish #ssmjp 2018/1/12
  12. 12. 注意点(1) ・ Varnish は「URL ベースで」キャッシュする 例えば、同一 URL で「サーバサイドで」デバイス判定を行い css 等を切り替 えている場合、キャッシュ生成時の結果を返し続ける。 →PC でアクセスしてもモバイルのページを返す、等々。 →にゃーん 5分で猫る Varnish #ssmjp 2018/1/12
  13. 13. 注意点(1) ・ Varnish は「URL ベースで」キャッシュする 例えば、同一 URL で「サーバサイドで」デバイス判定を行い cs s等を切り替 えている場合、キャッシュ生成時の結果を返し続ける。 →PC でアクセスしてもモバイルのページを返す、等々。 →にゃーん ・ デバイス判定はクライアントサイドで行う 5分で猫る Varnish #ssmjp 2018/1/12
  14. 14. 注意点(2) ・ Apache のログにアクセス元が全て 127.0.0.1 で記録される 5分で猫る Varnish #ssmjp 2018/1/12
  15. 15. 注意点(2) ・ Apache のログにアクセス元が全て 127.0.0.1 で記録される リバースプロキシなので全てのアクセスは Varnish から行われる →Varnish と同一ホストで Apache が動作していれば 127.0.0.1 となる 5分で猫る Varnish #ssmjp 2018/1/12
  16. 16. 注意点(2) ・ Apache のログにアクセス元が全て 127.0.0.1 で記録される リバースプロキシなので全てのアクセスは Varnish から行われる →Varnish と同一ホストで Apache が動作していれば 127.0.0.1 となる →にゃーん 5分で猫る Varnish #ssmjp 2018/1/12
  17. 17. 注意点(2) ・ Apache のログにアクセス元が全て 127.0.0.1 で記録される リバースプロキシなので全てのアクセスは Varnish から行われる →Varnish と同一ホストで Apache が動作していれば 127.0.0.1 となる →にゃーん ・ varnishncsa コマンドで Apache 互換のログを出力可能 ※IP ベースのアクセス制限をかけてるときも注意! (VCL でアクセス制限をかける等) #ssmjp 2018/1/12 5分で猫る Varnish
  18. 18. 注意点(3) ・ キャッシュ配下外へのアクセス集中で大量にメモリを消費 5分で猫る Varnish #ssmjp 2018/1/12
  19. 19. 注意点(3) ・ キャッシュ配下外へのアクセス集中で大量にメモリを消費 VCL で特定のディレクトリ等をキャッシュしないように設定 →容量が大きなファイル(100MB 程度)にアクセス集中 →Varnish が Apache に問い合わせ →Apache がメモリを確保し、Varnish に返却 →Varnish がメモリを確保し、クライアントに返却、を要求毎に実行 (という想定) 5分で猫る Varnish #ssmjp 2018/1/12
  20. 20. 注意点(3) ・ キャッシュ配下外へのアクセス集中で大量にメモリを消費 VCL で特定のディレクトリ等をキャッシュしないように設定 →容量が大きなファイル(100MB 程度)にアクセス集中 →Varnish が Apache に問い合わせ →Apache がメモリを確保し、Varnish に返却 →Varnish がメモリを確保し、クライアントに返却、を要求毎に実行 (という想定) →返却し終わるまでメモリを解放できない →アクセス集中時は帯域も逼迫し返却に時間がかかる →サーバのメモリを消費し尽くす 5分で猫る Varnish #ssmjp 2018/1/12
  21. 21. 注意点(3) ・ キャッシュ配下外へのアクセス集中で大量にメモリを消費 →にゃーん(現実) 5分で猫る Varnish #ssmjp 2018/1/12
  22. 22. 注意点(3) ・ キャッシュ配下外へのアクセス集中で大量にメモリを消費 →にゃーん(現実は辛いね) ・ ファイルをキャッシュ配下に置く ・ キャッシュの有効期限を長くする (リフレッシュ時に Apache が大量に起動することを防ぐ) 5分で猫る Varnish #ssmjp 2018/1/12
  23. 23. ご静聴ありがとうございました 5分で猫る Varnish #ssmjp 2018/1/12

×