Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
フルCDNアーキテクチャ実験 / Minami Aoyama Night #1
Search
dekokun
December 09, 2016
Technology
5
18k
フルCDNアーキテクチャ実験 / Minami Aoyama Night #1
Minami Aoyama Night#1 での発表資料
https://connpass.com/event/45263/
dekokun
December 09, 2016
Tweet
Share
More Decks by dekokun
See All by dekokun
Amazon Aurora の v1 が EOL になるので 10 クラスタアップグレードして出てきたノウハウ
dekokun
0
2.5k
東京にいながら仕事のほとんどを京都のエンジニアと一緒にしている私のリモートワークの話 / Hatena Engineer Seminar #6
dekokun
3
11k
はてなでの サービス信頼性向上のための 取り組み事例
dekokun
15
5.8k
Other Decks in Technology
See All in Technology
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
330
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
300
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
390
AWSに革命を起こすかもしれない新サービス・アップデートについてのお話
yama3133
0
510
Claude Skillsの テスト業務での活用事例
moritamasami
1
110
なぜ あなたはそんなに re:Invent に行くのか?
miu_crescent
PRO
0
210
投資戦略を量産せよ 2 - マケデコセミナー(2025/12/26)
gamella
0
450
MySQLのSpatial(GIS)機能をもっと充実させたい ~ MyNA望年会2025LT
sakaik
0
130
[Data & AI Summit '25 Fall] AIでデータ活用を進化させる!Google Cloudで作るデータ活用の未来
kirimaru
0
4k
Claude Codeを使った情報整理術
knishioka
11
8k
意外と知らない状態遷移テストの世界
nihonbuson
PRO
1
270
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
140
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Accessibility Awareness
sabderemane
0
24
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
29
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
65
35k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
120
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
93
Technical Leadership for Architectural Decision Making
baasie
0
190
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
0
96
Transcript
ϑϧCDNΞʔΩςΫνϟ࣮ݧ Minami Aoyama Night#1 גࣜձࣾͯͳ id:dekokun
ࣗݾհ 2
ࣗݾհ • id:dekokun • ͯͳͰΠϯϑϥ@౦ژ • WebΦϖϨʔγϣϯΤϯδχΞ • ͯͳͷ͍Ζ͍ΖͳαʔϏεͷΠϯϑϥ୲ •
ೖࣾ1ͪΐͬͱ • લ৬PHPͱJSॻ͍ͯ·ͨ͠ 3
4 • ͯͳϒϩάͷߏհ • ಈతϖʔδΛΩϟογϡ͢Δࡍʹߟ͑Δ͜ͱ • ϑϧΩϟογϡΞʔΩςΫνϟ • ϑϧCDNΞʔΩςΫνϟ ຊͷൃද༰
ͯͳϒϩάͷߏհ 5
ͯͳϒϩάͷߏհ(େ෯লུ൛) 6
• ۃΊͯγϯϓϧͳߏ • Ұ෦ࠓճͷൃදʹؔͳͦ͞͏ͳߏཁૉ େʹলུ • batch, worker, CDN 7
ͯͳϒϩάͷߏհ
• εϧʔϓοτ/ϨΠςϯγʹ͓͚ΔϘτϧωοΫओʹ PerlͷΞϓϦέʔγϣϯͱDB • ϦΫΤετ͕ΞϓϦέʔγϣϯɾDBʹ౸ୡ͠ͳ͍ ΞʔΩςΫνϟ͕ߏஙͰ͖Ε ϨΠςϯγૣͯ͘Ϣʔβϋοϐʔ αʔόݮΒͤͦ͏ 8 ͯͳϒϩάͷߏհ
ͯͳϒϩάͷߏհ 9 ͜͜ͷલஈͰ ϦΫΤετΛ ฦ͍ͨ͠
• ϒϩάαʔϏεجຊతʹ ϖʔδͷߋ৽සΑΓϖʔδͷࢀরසͷํ͕ ѹతʹଟ͍ • ΞϓϦέʔγϣϯαʔόͷલஈͰHTML͝ͱΩϟογϡ ͤ͞Δ͜ͱͰߴͳϨεϙϯεΛ࣮ݱͰ͖ͦ͏ • ݱࡏmemcachedͰͷΩϟογϡߦ͍ͬͯΔ͕ɺ ͦͦΞϓϦέʔγϣϯαʔό·Ͱ
ϦΫΤετΛ౸ୡͤͨ͘͞ͳ͍ 10 Ωϟογϡͷಋೖ
ͯͳϒϩάͷߏհ 11 ΩϟογϡΛ ڬΉ
• ΩϟογϡΛڬΉΞʔΩςΫνϟʹ͚ͯ ݱࡏӶҙ։ൃத 12 Ωϟογϡͷಋೖ
• VarnishʹΑΔΩϟογϡͷಋೖ • VarnishੑೳΑ͘ॊೈͳΩϟογϡͷ੍ޚ͕ՄೳͰ ͋Γ࠷ߴͰ͢ 13 ΩϟογϡͷಋೖͷͨΊͷϛυϧΣΞ
ಈతϖʔδΛΩϟογϡ͢Δࡍʹ ߟ͑Δ͜ͱ 14
• ຊʹϖʔδ·Δ͝ͱΩϟογϡͯ͠େৎʁ • ϖʔδ͕ߋ৽͞Εͨ࣌ʹͲ͏͢Δͷʁ • εϚʔτϑΥϯͱPCͰಉ͡ΩϟογϡΛग़ͯ͠ େৎʁ ͍Ζ͍Ζ͋Γ·͕͢ɺ͜ͷ͋ͨΓ࣮ࡍʹͯͳϒϩά ͷಋೖ͕ྃͨ͠Β·ͨผͷॴͰ͠·͢ 15
ಈతϖʔδͷΩϟογϡͷࡍʹߟ͑Δ͜ͱ
• ຊʹϖʔδ·Δ͝ͱΩϟογϡͯ͠େৎʁ • ϖʔδ͕ߋ৽͞Εͨ࣌ʹͲ͏͢Δͷʁ • εϚʔτϑΥϯͱPCͰಉ͡ΩϟογϡΛग़ͯ͠ େৎʁ ࠓ͚ͩ͜͜ɺͯͳϒϩάΛྫʹग़ͯ͠͝հ 16 ಈతϖʔδͷΩϟογϡͷࡍʹߟ͑Δ͜ͱ
• Ωϟογϡ͢Δͷ͍͍͕ϢʔβىҼͰϖʔδͷߋ৽ ͕͔͔Δ • ϢʔβA “ࡢॻ͍ͨϒϩάΛߋ৽ͨͣ͠ͳͷʹ ͏Ұݟͨ͠Βߋ৽͞Εͯͳ͍…ͳͥ” • ϢʔβB “ίϝϯτ͚ͨͣͳͷʹίϝϯτ͕ͳ͘
ͳͬͯΔ…” 17 ಈతϖʔδͷΩϟογϡͷࡍʹߟ͑Δ͜ͱ
• Կ͔มߋ͕͋ͬͨΒ͏·ͦ͘ͷϖʔδ͚ͩΩϟογϡΛ ফͤେৎʁ • τοϓϖʔδهࣄҰཡϖʔδʁ • ֤ϖʔδʹ”࠷ۙߋ৽ͨ͠ϒϩάϦετ”͕ࡌ͍ͬͯͨ Γ͢Δ 18 ಈతϖʔδͷΩϟογϡͷࡍʹߟ͑Δ͜ͱ
• 2. ͷղܾࡦҊෳ 1. ΩϟογϡظؒΛͯ͘͠ͳΜͱ͔͙྇ • “1ؒίϝϯτهࣄߋ৽ө͞Ε·ͤΜ” 2. ߋ৽͞ΕͨࡍͳΜ͔͍͍ײ͡ʹߋ৽Օॴʹؔ࿈ͦ͠ ͏ͳΩϟογϡΛશ෦ॠ࣌ʹফ͢
• 1. ͕ཁ݅తʹOKͰ͋Εγϯϓϧ͕ͩɺΩϟογϡώο τ͕Լ͕Δɻ2. ͕͏·͘Ͱ͖ΔͷͰ͋ΕͦΕ͕Ұ൪͍ ͍ 19 ಈతϖʔδͷΩϟογϡͷࡍʹߟ͑Δ͜ͱ
• 2. ͷղܾࡦҊෳ 1. ΩϟογϡظؒΛͯ͘͠ͳΜͱ͔͙྇ • “1ؒίϝϯτهࣄߋ৽ө͞Ε·ͤΜ” 2. ߋ৽͞ΕͨࡍͳΜ͔͍͍ײ͡ʹߋ৽Օॴʹؔ࿈͠ ͦ͏ͳΩϟογϡΛॠ࣌ʹফ͢
ॠ࣌ʹফ͢ͷॏཁ ΩϟογϡΛফ͢ͷʹ15ͱ͔͔͔͍ͬͯͨΒҙຯ͕ͳ ͍ɻ 20 ಈతϖʔδͷΩϟογϡͷࡍʹߟ͑Δ͜ͱ
• Ͳ͏ͬͯؔ࿈ͦ͠͏ͳΩϟογϡΛॠ࣌ʹফ͢ʁ • VarnishͰ͋ΕΩϟογϡʹରͯ͠λάΛ͚ɺ σʔλͷߋ৽͕͋ͬͨࡍʹλάΛࢦఆͯ͠ ॠ࣌ʹΩϟογϡΛഁغ͢Δ͜ͱ͕Մೳ 21 ಈతϖʔδͷΩϟογϡͷࡍʹߟ͑Δ͜ͱ
22 λάͰͷΩϟογϡഁغ(λά༩) 7BSOJTI 1FSM OHJOY /hoge͍ͩ͘͞ Ωϟογϡ͕ͳ͍ͷͰ /hoge͍ͩ͘͞ /hogeͰ͢ λά
“A”Ͱ͢ /hogeͰ͢
23 λάͰͷΩϟογϡഁغ(λά༩) 7BSOJTI 1FSM OHJOY /hoge͍ͩ͘͞ Ωϟογϡ͕ͳ͍ͷͰ /hoge͍ͩ͘͞ /hogeͰ͢ λά
“A”Ͱ͢ /hogeͰ͢ /hoge͍ͩ͘͞ Ωϟογϡ͕͋Γ·ͨ͠ /hogeͰ͢
24 7BSOJTI 1FSM OHJOY /A ʹ ߋ৽͕͋Γ·ͨ͠ λάͰͷΩϟογϡഁغ(Ωϟογϡഁغ) /A ʹ
ߋ৽͕͋Γ·ͨ͠
25 7BSOJTI 1FSM OHJOY /A ʹ ߋ৽͕͋Γ·ͨ͠ λάA͕͍ͭͯΔ ΩϟογϡΛ ফͯ͠Լ͍͞
λάͰͷΩϟογϡഁغ(Ωϟογϡഁغ) /A ʹ ߋ৽͕͋Γ·ͨ͠ ফ͠·ͨ͠
• λάͷ͚ํɺফ͠ํʹ͍ͭͯৄ͘͠ຊެ։ͷ ࢲͷϒϩάࢀর 26 λάͰͷΩϟογϡഁغ
ϑϧΩϟογϡΞʔΩςΫνϟ 27
• VarnishॊೈͳVCLʹΑͬͯۃΊͯ৭ʑͳ͜ͱ͕Մೳ • GETϦΫΤετҎ֎Ωϟογϡ͠ͳ͍ ߋ৽͕͔͔ͬͨࡍʹؔ࿈ͨ͠Ωϟογϡͷഁغ ͦͷଞ͔ͳΓͷ͜ͱ͕Մೳ -> શͯͷτϥϑΟοΫΛVarnishʹྲྀ͠ɺશͯͷGETϦΫ ΤετΛΩϟογϡͤ͞ΔϑϧΩϟογϡΞʔΩςΫνϟ ͕Մೳʹ
28 ϑϧΩϟογϡΞʔΩςΫνϟ
ϑϧCDNΞʔΩςΫνϟ 29
• ҎԼɺશʹ࣮ݧஈ֊ͷͰ͢ 30 ϑϧCDNΞʔΩςΫνϟ
• CDNͱ • ίϯςϯπɾσϦόϦʔɾωοτϫʔΫ ʢContents Delivery Networkʣͷུ • Πϝʔδͱͯ͠ڊେͳΩϟογϡαʔό •
Akamai, CloudFront, Fastly 31 ϑϧCDNΞʔΩςΫνϟ
• ҰൠతʹɺCDN੩తϑΝΠϧͷ৴ʹ༻͍ΒΕΔ • Ωϟογϡͷഁغʹ͕͔͔࣌ؒΓ͕ͪ(CDNʹΑΔ) 32 ϑϧCDNΞʔΩςΫνϟ
• ͠Varnishͱಉ༷ͷػೳΛ࣋ͭCDN͕͋Ε • Varnishಉ༷ʹશͯͷτϥϑΟοΫΛCDNʹड͚࣋ͬͯ Β͏͜ͱ͕Մೳ • ࠷ۙͷCDNΩϟογϡͷഁغͷߴԽΛਐΊ͍ͯΔ • ͦͷதͰΩϟογϡͷഁغ͕ߴ͔ͭVarnishͱಉ༷ ͷॊೈ͞Λ࣋ͭCDN͕͋Δ
33 ϑϧCDNΞʔΩςΫνϟ
34 ϑϧCDNΞʔΩςΫνϟ
• “Instant Purge lets you update stale content within 150
milliseconds or less.” • “Instant Purge” https://www.fastly.com/products/ instant-purging ΑΓ • λάʹΑΔΩϟογϡഁغՄೳ • FastlyͷSurrogate Keysػೳ • ͦͷଞVCLͷهड़Ͱॊೈͳಈ࡞͕Մೳ 35 Fastlyͷػೳ
• ISUCON6ͷ༧બͷΛFastlyͰ৴ͯ͠Έͨ • σϞ 36 Fastly
• ੈքͷͲ͔͜ΒͷΞΫηεͰ ϢʔβʹߴʹϨεϙϯεΛฦ͢͜ͱ͕Ͱ͖Δ • τϥϑΟοΫʹ͔͔Δྉ͕ۚ҆͘ͳΓ͍͢ • େྔΞΫηε͕དྷͯCDN͕͍ͯ͘͞Εͯ҆৺ • ࣗͷαʔόΞΫηεΛׂ͘͞Ͱͳ͘ σʔλͷߋ৽͕͋ͬͨࡍʹ
৽ͨͳΩϟογϡΛ࡞ΔׂʹͳΔ 37 ϑϧCDNΞʔΩςΫνϟͷར
ϑϧCDNΞʔΩςΫνϟͷ ՝ 38
• Ωϟογϡػೳͷ֬ೝ͕͘͠ɺόάΛ࡞ΓࠐΈ ͍͢ • όά͕ग़ͨࡍͷඃେ͖͘ͳΓ͕ͪ • Ωϟογϡͳ͠Ͱ͍͚ΔͷͰ͋ΕΩϟογϡͳ͠Ͱ γϯϓϧͳߏͷ΄͏͕͍͍ʹܾ·͍ͬͯΔ • ։ൃ࣌ͷखݩͰͷςετͲ͏͢Ε͍͍ͷ…ʁ
39 ϑϧCDNΞʔΩςΫνϟͷ՝
·ͱΊ 40
• VarnishʹΑΔϑϧΩϟογϡΞʔΩςΫνϟՄೳ • ϑϧΩϟογϡ͕Ͱ͖ͨΒɺ ࣍ϑϧCDNΞʔΩςΫνϟͰߴɺ҆ՁʹେྔͷϦ ΫΤετΛ͘͜͞ͱ͕Ͱ͖ΔΑ͏ʹͳΔ 41 ·ͱΊ
͋Γ͕ͱ͏͍͟͝·ͨ͠ 42