SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
国内最大級の総合情報メディア
を支えるVarnish Cache
株式会社オールアバウト
システム部 大原和人(やまと)
自己紹介
•名前
‣ 大原和人(やまと)
•略歴
‣ 2012年4月∼ インフラエンジニア
‣ 2015年4月∼ 開発エンジニア
‣ Team TechBall (技術基盤の検討、改善活動)
• 専門家 がガイドする国内最大
級の総合情報サイト
•月間総利用者数:3150万人
•PV数:1億5,000万

(PC:モバイル = 3:7)
•900名の専門家による

1,300テーマにも渡った17万本
の記事
アジェンダ
•All Aboutのコンテンツキャッシュの仕組み
•Varnish活用ノウハウ
•その他、Varnishが役に立った事例
Varnishについて
Varnish
ニスではありません!
•オープンソースのリバースプロキシ

リクエスト分散、キャッシュなど
•VCLというC言語に似た記述で設定する
•最新バージョンは4.1.0

(2015/12/5現在)
sub vcl_recv {
if (req.http.host == "allabout.co.jp") {
if( req.url == "/test/" ){
set req.backend = web01;
return (pass); # キャッシュしない
}
return (lookup); # キャッシュする
}
の良い所
•高速

多少複雑な制御をしてもレスポンス低下しない
•柔軟な制御が可能

VCLによるプログラムライクな設定
•高機能

ヘルスチェック、ESI等
•急成長中のスタートアップ
‣ 総額1億3000万ドル調達※
‣ Twitter,GitHub,About.comなどが導入
•Varnishを使ったクラウドCDN
‣ リアルタイムパージ (150ms)
‣ VCLカスタマイズ
※TechCrunch
http://jp.techcrunch.com/2015/08/06/20150805fastly-raises-75m-series-d-round-for-its-real-time-cdn/
コンテンツキャッシュの考え方
•静的コンテンツ
‣ 画像、CSS、JS等
•動的コンテンツ
‣ 会員ページ等
•イベント駆動コンテンツ
‣ ニュース速報、在庫情報等
Fastly社に行ってきた ー 動的コンテンツの定義を変えるCDN?
http://apiguy.tokyo/2015/11/04/fastly-visit/
オールアバウトにおけるキャッシュルール
•画像、CSS、JS
‣ クラウドCDNでキャッシュ
•会員情報、検索結果等
‣ キャッシュしない (リクエスト分散のためにVarnishを通す場合あり)
•記事HTML
‣ Varnishでキャッシュ → 記事の即時更新を実現
‣ 一部外部フィード記事はクラウドCDNでキャッシュ
サーバ構成
HTML等 画像、CSS、JS
Amazon S3Web
/App
Web
/App
Web
/App
Varn
ish
Varn
ish
CDP
(Cloud Design Pattern)
http://aws.clouddesignpattern.org/
Cache Proxyパターン Cache Distributionパターン
Varnish活用ノウハウ
マルチデバイスキャッシュ
Web
/App
Varn
ish
http://allabout.co.jp/newsdig/
hash
= host + URL + PC
UA = PC
UA = PC
PCテンプレ
Web
/App
Varn
ish
hash
= host + URL + SP
UA = SP
UA = SP SPテンプレ
マルチデバイスキャッシュ
Web
/App
Varn
ish
http://allabout.co.jp/
hash
= host + URL + PC
UA = PC
UA = PC
PCテンプレ
Web
/App
Varn
ish
hash
= host + URL + SP
UA = SP
UA = SP
302 redirect to
touch.allabout.co.jp
リダイレクトする場合
touch.allabout.co.jp
マルチデバイスキャッシュの
ポイント
•Varnishに依存した作りにしない
•VarnishとWebアプリのUA判定を統一する
‣ 差があるとキャッシュのズレが起きる
‣ 各種フレームワーク & VCL対応のライブラリ





https://github.com/serbanghita/Mobile-Detect
ロードバランシング
•バランシング方式
‣ round-robin
‣ fallback
‣ client, random, DNS, hash
•ヘルスチェック
‣ 死んでいるサーバにはリクエストさせない
‣ サーバが全滅した場合はTTLを延長する(grace機能)
Web
/App
Varn
ish
fallback
Web
/App
✕
active standby
ESI
(Edge Side Includes)
•ページの一部パーツの
みをキャッシュ出来る
機能

(実運用実績はまだあり
ません)
http://blog.xcir.net/wp-content/uploads/
2011/09/VarnishCacheIntroduction_Rev2.pdf
<esi:include src= /esi/block/B.php />
VCLの管理
•ほぼプログラムと同じなので、バージョン管理・レ
ビューが必要
•Chef + Bitbucket
‣ バージョン管理、レビューをちゃんとして秘伝のタ
レ化を防ぐ
‣ attributesやincludeを駆使することで、環境ごとに
VCLを切り替えられる
VCL反映フロー
B M
ssh
local
chef server
production
pre-production
Work
station
Varn
ish
Varn
ish
Varn
ish
その他、Varnishが役
に立った事例
ネットワーク輻湊対策
•○○砲でデータセンター
のネットワークが限界
を迎えた
‣ クラウド上にVarnish
を立ててトラフィッ
クを逃がした
Web
/App
Web
/App
Web
/App
Varn
ish
Varn
ish
Varn
ish
プロキシとして
•環境移行に便利
‣ URL単位で移行可能(記述もわかりやすい)
‣ 404なら別サーバへ飛ばすという制御も可能
(restart機能)
•疎結合化
‣ URL単位で異なるサーバ環境を使用する
プロキシとして
Web
/App
Varn
ish
NFS
Web
/App
All About 1.0 All About 2.0
Web
/App
All About 2.5
Web
/App
All About 3.0
(future)
5.2
5.0
5.5
?
?
/service1
http://allabout.co.jp
/service2 /service3 /service4
5.6
static
html
まとめ
•Varnishを使うと従来のクラウドCDNではキャッ
シュしづらかったコンテンツのキャッシュが出来る
•プログラムライクに細やかな制御が可能
‣ プロキシとしても優秀
‣ 環境移行も楽に
JOIN US!
•WEBエンジニア
•インフラエンジニア
•UI/UXデザイナー
参考資料
•Varnish関連情報
‣ いわなちゃんさんのブログ (http://blog.xcir.net/)
‣ 入門用資料も公開されています(Varnish3対応)

http://blog.xcir.net/wp-content/uploads/2011/09/
VarnishCacheIntroduction_Rev2.pdf
•Fastly関連情報
‣ https://www.fastly.com/
‣ http://apiguy.tokyo/2015/11/04/fastly-visit/
‣ http://jp.techcrunch.com/2015/08/06/20150805fastly-raises-75m-
series-d-round-for-its-real-time-cdn/

Más contenido relacionado

Similar a 国内最大級の総合情報メディアを支えるVarnish Cache

図書館総合展ネクスト主催フォーラム「アカデミックとリアルの谷を埋める道」基調講演 2011年11月11日
図書館総合展ネクスト主催フォーラム「アカデミックとリアルの谷を埋める道」基調講演 2011年11月11日図書館総合展ネクスト主催フォーラム「アカデミックとリアルの谷を埋める道」基調講演 2011年11月11日
図書館総合展ネクスト主催フォーラム「アカデミックとリアルの谷を埋める道」基調講演 2011年11月11日
Yoji Kiyota
 

Similar a 国内最大級の総合情報メディアを支えるVarnish Cache (20)

Cookpad TechConf 2016 - DWHに必要なこと
Cookpad TechConf 2016 - DWHに必要なことCookpad TechConf 2016 - DWHに必要なこと
Cookpad TechConf 2016 - DWHに必要なこと
 
情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosion情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosion
 
WordBench東京 7月勉強会「夏のLT大会!」『WordPress とバックアップの話』
WordBench東京 7月勉強会「夏のLT大会!」『WordPress とバックアップの話』WordBench東京 7月勉強会「夏のLT大会!」『WordPress とバックアップの話』
WordBench東京 7月勉強会「夏のLT大会!」『WordPress とバックアップの話』
 
月間 250 億 imps 配信するために fluct が考えていること!
月間 250 億 imps 配信するために fluct が考えていること!月間 250 億 imps 配信するために fluct が考えていること!
月間 250 億 imps 配信するために fluct が考えていること!
 
20130313_i18n_history_and_future
20130313_i18n_history_and_future20130313_i18n_history_and_future
20130313_i18n_history_and_future
 
20121103 #odstudy できる! VBAマクロ
20121103 #odstudy できる! VBAマクロ20121103 #odstudy できる! VBAマクロ
20121103 #odstudy できる! VBAマクロ
 
ライオンブリッジのライフサイエンスサービスのご紹介
ライオンブリッジのライフサイエンスサービスのご紹介ライオンブリッジのライフサイエンスサービスのご紹介
ライオンブリッジのライフサイエンスサービスのご紹介
 
Best Current Operational Practices - JANOG 33 - English & Japanese
Best Current Operational Practices - JANOG 33 - English & JapaneseBest Current Operational Practices - JANOG 33 - English & Japanese
Best Current Operational Practices - JANOG 33 - English & Japanese
 
Strata + Hadoop World 2014 レポート #cwt2014
Strata + Hadoop World 2014 レポート #cwt2014Strata + Hadoop World 2014 レポート #cwt2014
Strata + Hadoop World 2014 レポート #cwt2014
 
DBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - DelphixDBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - Delphix
 
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
 
経済学のための実践的データ分析 5.特許データの分析
経済学のための実践的データ分析 5.特許データの分析経済学のための実践的データ分析 5.特許データの分析
経済学のための実践的データ分析 5.特許データの分析
 
【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
最新事例から学ぶビッグデータの活用法 #ocif16 #hortonworks
最新事例から学ぶビッグデータの活用法 #ocif16 #hortonworks最新事例から学ぶビッグデータの活用法 #ocif16 #hortonworks
最新事例から学ぶビッグデータの活用法 #ocif16 #hortonworks
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
 
図書館総合展ネクスト主催フォーラム「アカデミックとリアルの谷を埋める道」基調講演 2011年11月11日
図書館総合展ネクスト主催フォーラム「アカデミックとリアルの谷を埋める道」基調講演 2011年11月11日図書館総合展ネクスト主催フォーラム「アカデミックとリアルの谷を埋める道」基調講演 2011年11月11日
図書館総合展ネクスト主催フォーラム「アカデミックとリアルの谷を埋める道」基調講演 2011年11月11日
 
楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
 

Más de Kazuto Ohara (7)

副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフト副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフト
 
クラウド&コンテナ活用でDevOpsを加速させる!
クラウド&コンテナ活用でDevOpsを加速させる!クラウド&コンテナ活用でDevOpsを加速させる!
クラウド&コンテナ活用でDevOpsを加速させる!
 
オールアバウトの DevOpsと リリースフロー
オールアバウトのDevOpsとリリースフローオールアバウトのDevOpsとリリースフロー
オールアバウトの DevOpsと リリースフロー
 
Chef概論とレシピ実践入門
Chef概論とレシピ実践入門Chef概論とレシピ実践入門
Chef概論とレシピ実践入門
 
オールアバウトにおける技術への取り組み
オールアバウトにおける技術への取り組みオールアバウトにおける技術への取り組み
オールアバウトにおける技術への取り組み
 
オールアバウトにおけるオンプレミス・クラウド使い分けポイント
オールアバウトにおけるオンプレミス・クラウド使い分けポイントオールアバウトにおけるオンプレミス・クラウド使い分けポイント
オールアバウトにおけるオンプレミス・クラウド使い分けポイント
 
Varnishの使い方~All Aboutでの使い方を例に~
Varnishの使い方~All Aboutでの使い方を例に~Varnishの使い方~All Aboutでの使い方を例に~
Varnishの使い方~All Aboutでの使い方を例に~
 

Último

Último (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

国内最大級の総合情報メディアを支えるVarnish Cache