Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SSRした動的コンテンツをFastlyにキャッシュする
Search
Daishi Kakinoki
April 16, 2019
Technology
0
1.1k
SSRした動的コンテンツをFastlyにキャッシュする
Daishi Kakinoki
April 16, 2019
Tweet
Share
More Decks by Daishi Kakinoki
See All by Daishi Kakinoki
Spacemarket Connect Custom Account
dkakinoki
0
250
Railsでサーバレスなバッチ処理 / Rails Batch Serverless
dkakinoki
1
2k
CtoCマーケットプレイスを成長させる オンライン決済の仕組み
dkakinoki
1
850
[Stripe] ConnectのManual Payoutsを利用して 任意のタイミングで売上を入金する
dkakinoki
0
3.4k
Other Decks in Technology
See All in Technology
シークレット管理だけじゃない!HashiCorp Vault でデータ暗号化をしよう / Beyond Secret Management! Let's Encrypt Data with HashiCorp Vault
nnstt1
3
210
データアナリストからアナリティクスエンジニアになった話
hiyokko_data
2
400
サンドボックス技術でAI利活用を促進する
koh_naga
0
180
Oracle Cloud Infrastructure:2025年8月度サービス・アップデート
oracle4engineer
PRO
0
190
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
3
1.3k
スプリントレトロスペクティブはチーム観察の宝庫? 〜チームの衝突レベルに合わせたアプローチ仮説!〜
electricsatie
1
160
絶対に失敗できないキャンペーンページの高速かつ安全な開発、WINTICKET × microCMS の開発事例
microcms
0
390
DDD集約とサービスコンテキスト境界との関係性
pandayumi
2
250
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
170
DevIO2025_継続的なサービス開発のための技術的意思決定のポイント / how-to-tech-decision-makaing-devio2025
nologyance
0
150
DuckDB-Wasmを使って ブラウザ上でRDBMSを動かす
hacusk
1
140
Skrub: machine-learning with dataframes
gaelvaroquaux
0
110
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
45
7.6k
Statistics for Hackers
jakevdp
799
220k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
GraphQLとの向き合い方2022年版
quramy
49
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
284
13k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
BBQ
matthewcrist
89
9.8k
Transcript
SSRした動的コンテンツをFastlyにキャッシュする SPACEMARKETトップページの事例 2019年4月16日 KAKINOKI DAISHI
2 誰? • KAKINOKI DAISHI(@d_kakinoki) • SPACEMARKET所属 • Engineering Manager
• サーバサイドがメイン • 今後Fastlyでやりたいこと ◦ A/B Testing
3 SPACEMARKET? スペースを 借りたい人 (ゲスト) スペースを 貸したい人 (ホスト) 探す・借りる 掲載する・貸す
写真
写真
写真
7 SSRした動的コンテンツをキャッシュする
8 Fastlyでトップページをキャッシュするまでの背景(2018年夏) • 既にアセットはFastly経由で配信 • 2018年11~12月にかけて全国CM放映を予定 →負荷対策、速度の改善が必要 →裏も対策するが、表も対策しておきたい →アクセスが集中するトップページをキャッシュ •
必要に応じてすぐにパージ • とりあえずシンプルに
9 トップページの何をキャッシュするか バナー ヘッダ(未ログイン状態) アイキャッチ カテゴリのランキング など フッタ 未ログインコンテンツをキャッ シュ
バナー ヘッダ(ログイン状態) アイキャッチ カテゴリのランキングな ど フッタ 閲覧履歴 お気に入り クライアントで ログインコンテンツを取得し レンダリング
10 以前(イメージ)
11 Fastlyでキャッシュ(イメージ) 有効なキャッシュがな ければオリジンへ
12 • Cache-ControlとSurrogate-Controlを組み合わせる ◦ (例) • キャッシュとログインコンテンツの要否 ◦ アクセストークン(Cookie)の有無で制御 •
キャッシュしないその他のページは、全てCache-Control: private キャッシュ周りの実装など
13 • www.spacemarket.comのDNSレコード ◦ A → CNAMEに変更、Fastlyを指定 ◦ 全てFastly経由に •
SSL証明書 ◦ EV証明書 ◦ ホスティングサービスを利用 ドメイン周り
14 • Fastly-Debugヘッダ • stagingで事前に確認 ◦ ACL使ってる • 福田さん(中の方)の記事が分かりやすい ◦
FastlyにキャッシュされたオブジェクトのTTL確認方法 • Fastlyのサポート側(福田さん)でも動作確認してくれた 動作確認
15 • 全国CM放映問題なし • その後のTV放映などもキャッシュを利用し負荷対策 • 速度も改善 効果
16 • ドキュメントしっかりしてる • 福田さんのQiita記事が更に分かりやすい • 導入サポートも充実 • 特に福田さん、ありがとうございました。 (お礼を言いにきた)
サポート体制
17 まとめ
18 まとめ • 福田さんありがとうございました。 (お礼を言いにきた)
ご静聴ありがとうございました。