Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
静的アセット配信をCDNに逃がすまで
Search
muso
August 26, 2026
Programming
31
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
静的アセット配信をCDNに逃がすまで
muso
August 26, 2026
More Decks by muso
See All by muso
k8sのシークレット管理をちょっとだけ楽にした話
nishiokashinji
0
170
ALB「証明書上限問題」からの脱却
nishiokashinji
0
470
Railsアプリの画像配信最適化 - Imgproxyを活用したパフォーマンス改善事例
nishiokashinji
0
58
Other Decks in Programming
See All in Programming
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
260
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
350
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
180
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
ActionController meets Protocol Buffers
sorah
0
560
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
AWSに止められる覚悟してますか?
morizo_1984
2
540
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
280
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
110
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
320
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.7k
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
290
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
Ethics towards AI in product and experience design
skipperchong
2
440
Amusing Abliteration
ianozsvald
1
350
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
How to Ace a Technical Interview
jacobian
280
24k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
A designer walks into a library…
pauljervisheath
211
25k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
Odyssey Design
rkendrick25
PRO
2
880
Side Projects
sachag
456
43k
Transcript
静的アセット配信を CDNに逃がすまで AKASHI.rb LT 2026/8/25
自己紹介 無双(@nishi_okashi) SRE チームのエンジニア 加古川生まれ、稲美町在住 AKASHI.rb の管理人 Super Ramen Engineer
前提のはなし オンラインコミュニティサイト構築アプリ 「独自ドメイン提供」がある 顧客ごとに別のドメインで配信 一方、静的アセットは全ホスト共通
出発点 静的アセットをRailsから配信していた、しかも無圧縮のまま 転送量がそのまま配信コストに乗る
増え続ける転送量とコスト
まず圧縮しよう
打ち手①:圧縮する
圧縮のつらみ:メモリ 同時に返すぶんだけエンコーダーが要る 一度増えると減りにくい
毎回圧縮しないよう キャッシュしよう
打ち手②:キャッシュする サーバーにキャッシュ層を挟む 毎回圧縮せずに済むようになった が、キャッシュもメモリに載る Web
キャッシュのつらみ:構造的な限界 配信するバイト列は全ホスト共通 でもキャッシュキーにはホストが入る 同じ静的アセットが顧客ドメインぶん複製される
自前で配信する限り、 これは解けない
打ち手③:CDNに任せる User → Cloudflare → CloudFront → S3 圧縮もキャッシュもCDN側の仕事 オリジンには素のファイルを置くだけ
事前圧縮ファイルの用意も不要 Cloudflare は zstd まで対応
成果 オリジンにリクエストが届かなくなった 圧縮とキャッシュをオリジンで抱えなくてよくなった 大量アクセス時のPumaスレッド圧迫も解消されたはず (未計測)
これにて一件落着 …と思いきや
移行後、一部の顧客で スタイルが崩れた
原因:顧客のネットワーク 静的アセットを新しいドメインから配信していた そのドメインが顧客の社内ネットワークで許可されていない CSS / JS だけ落ちてくる → スタイル崩れ 影響は社内ネットワークからのみ
エンドユーザーには影響なし
解決:既存ドメインに相乗り 画像配信で使っていたドメインは既に許可されていた そこに静的アセットも相乗りさせた 対価として、ドメイン名から用途が読めなくなった
まとめ Before から無圧縮で配信、転送量がコストに直結 圧縮してもキャッシュしても、メモリの問題が残る After : CDN に逃がしてまとめて解けた オリジンはリクエストも圧縮・キャッシュ負荷も抱えなくなった ただし配信ドメイン変更は顧客のネットワークに阻まれる
Rails
ご清聴ありがとうございました