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
クラウドサービスの 利用コストを削減する技術 - 円安の真南風を感じて -
Search
Kazuhiko Yamashita
September 27, 2024
Programming
3
660
クラウドサービスの 利用コストを削減する技術 - 円安の真南風を感じて -
PHPカンファレンス沖縄の前夜祭でお話しました。
Kazuhiko Yamashita
September 27, 2024
Tweet
Share
More Decks by Kazuhiko Yamashita
See All by Kazuhiko Yamashita
Managing Database Migrations in Go Backend Systems
pyama86
0
59
新しい職場の CI が 20 分かかっていたらあなたならどうする?
pyama86
1
1.4k
事業を差別化する技術を生み出す技術
pyama86
4
1.7k
Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ
pyama86
9
8.9k
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
1.8k
Tuning GraphQL on Rails
pyama86
2
2.1k
ttlcacheのここがスゴい
pyama86
1
190
実践ARMアーキテクチャ移行
pyama86
2
2.5k
リモートワーク時代の守護神 PHP開発者のためのセキュリティ強化術
pyama86
3
1.4k
Other Decks in Programming
See All in Programming
Flutter with Dart MCP: All You Need - 박제창 2025 I/O Extended Busan
itsmedreamwalker
0
150
AIと私たちの学習の変化を考える - Claude Codeの学習モードを例に
azukiazusa1
11
4.4k
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
350
Android端末で実現するオンデバイスLLM 2025
masayukisuda
1
170
Navigating Dependency Injection with Metro
zacsweers
3
2.5k
スケールする組織の実現に向けた インナーソース育成術 - ISGT2025
teamlab
PRO
1
160
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
2.5k
OSS開発者という働き方
andpad
5
1.7k
JSONataを使ってみよう Step Functionsが楽しくなる実践テクニック #devio2025
dafujii
1
630
Laravel Boost 超入門
fire_arlo
3
220
アプリの "かわいい" を支えるアニメーションツールRiveについて
uetyo
0
280
AIコーディングAgentとの向き合い方
eycjur
0
280
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
56
13k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
850
We Have a Design System, Now What?
morganepeng
53
7.8k
Building an army of robots
kneath
306
46k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Transcript
ΫϥυαʔϏεͷ ར༻ίετΛݮ͢Δٕज़ ʙԁ҆ͷਅೆ෩Λײͯ͡ʙ
ࢁԼ!QZBNB (.0ϖύϘٕज़ج൫νʔϜ γχΞɾϓϦϯγύϧ ɹΩϟϯϓɺཱྀߦɺώϧτϯ८ΓɺιϫχΤ८Γ ػցֶशɺϦϦʔεΤϯδχΞϦϯά
ԭೄ͖͗͢Δ
ϗεςΟϯάࣄۀ &$ࢧԉࣄۀ ϋϯυϝΠυɾͦͷଞࣄۀ
ͬͱ͓͠Ζ͘Ͱ͖Δ
ࠓ͢͜ͱ ͳͥΫϥυαʔϏεͷίετݮ͕ඞཁ͔ʁ Amazon CloudFront Amazon Simple Storage Service(S3) Amazon EC2
͓Θ͔ΓͩΖ͏͔ʁ ͳͥυϧΛങ͍ͬͯͳ͔ͬͨͷ͔… https:// fi nance.yahoo.co.jp/quote/USDJPY=FX ΑΓҾ༻
ۚJT.POFZ
Amazon CloudFront https://aws.amazon.com/jp/cloudfront/ ΑΓҾ༻
Contents Delivery Network CDN Origin User Client 1.OriginͷίϯςϯπΛΩϟογϡͯ͠Ԡ 2. ੈքنͰࢄͯ͠ɺΑΓ͍ۙDC͔ΒԠ͢Δ
3. τϥϑΟοΫͷγΣʔϐϯάͳͲͰ͖Δͷ͋Δ
Amazon CloudFrontͷओཁͳίετཁҼ ΠϯλʔωοτͷϦʔδϣϯϨϕϧͷσʔλసૹ (OUT) ΦϦδϯͷϦʔδϣϯϨϕϧͷσʔλసૹ (OUT) HTTP ϝιουͷϦΫΤετྉۚ (1 ສ݅͋ͨΓ)
ΤϯυϢʔβʔͷσʔλసૹ ΦϦδϯαʔόͷσʔλసૹ(POSTϦΫΤετͷBodyͳͲ) HTTPϦΫΤετͷ
Amazon CloudFrontͷओཁͳίετཁҼ ΠϯλʔωοτͷϦʔδϣϯϨϕϧͷσʔλసૹ (OUT) ΦϦδϯͷϦʔδϣϯϨϕϧͷσʔλసૹ (OUT) HTTP ϝιουͷϦΫΤετྉۚ (1 ສ݅͋ͨΓ)
ΤϯυϢʔβʔͷσʔλసૹ ΦϦδϯαʔόͷσʔλసૹ(POSTϦΫΤετͷBodyͳͲ) HTTPϦΫΤετͷ
• ը૾ͳͲͷΞηοτϑΝΠϧͷαΠζݮ • ѹॖϑΥʔϚοτͰͷ৴Λߦ͏ • ίϯςϯπɾΩϟογϡίϯτϩʔϧ ΠϯλʔωοτͷϦʔδϣϯϨϕϧͷσʔλసૹ (OUT)ͷݮ ϦΫΤετΛͤ͞ͳ͍ɺ৴αΠζΛݮ͢Δ
1. WebPͷม 2. αϜωΠϧαΠζͷม 1. ϖύϘͰGoͰαʔό࣮ 2. ϚωʔδυαʔϏεɾOSS※ ಈతม͍͍ͧ ※
https://github.com/imgproxy/imgproxy
ίϯςϯπɾΩϟογϡίϯτϩʔϧ • Etag/LastModi fi edϔομʔΛ༩͢Δ • ΩϟογϡίϯτϩʔϧϔομʔΛ༩͢Δ
HTTP Status 304
Etag/LastModi fi edϔομʔΛ༩͢Δ CDN Origin User Client 1. ॳճϦΫΤετ 2.
ॳճϦΫΤετ 3. Ϩεϙϯε 4. Ωϟγϡ&Ϩεϙϯε 5. 2ճϦΫΤετ 6. Ωϟογϡ͔ΒϨεϙϯε ͔ͭεςʔλε304 ίϯςϯπͷLastModi fi ed͔EtagΛ ൖ͢Δ͜ͱͰɺίϯςϯπͷมԽͷ ༗ແΛஅͯ͠ɺσʔλసૹΛݮ͢Δɻ
Amazon Simple Storage Service(S3) https://aws.amazon.com/jp/s3/ ΑΓҾ༻
ετϨʔδΫϥε ཧ͕ͯ͢
ετϨʔδΫϥεཧ 1. අ༻ͦΕͳΓʹ͔͔Δ͕ɺ͙͢ʹऔΓग़ͤΔ 2. අ༻͍͕҆ɺσʔλͷऔΓग़͠ʹएׯ͕͔͔࣌ؒΔ 3. අ༻͍͕҆ɺऔΓग़͢ͷʹ͕͔࣌ؒͳΓֻ͔Δ͠ɺ͔͔ۚΔ S3ෳͷετϨʔδΫϥε͕͋Γྉۚػೳ͕ҟͳΔ https://aws.amazon.com/jp/s3/storage-classes/
ϥΠϑαΠΫϧϙϦγʔ 1.࡞ޙ30ա͗ͨΒ͍҆ετϨʔδʹҠಈ 2.࡞ޙ60ա͗ͨΒ͍҆ετϨʔδʹҠಈ 3.࡞ޙ360ա͗ͨΒσʔλΛআ ࡞ΛͱʹɺετϨʔδΫϥεΛࣗಈͰมߋՄೳ ྫ:
ϥΠϑαΠΫϧϙϦγʔ ࢥΘ͵ίετ૿͕ൃੜ͢Δࣄ͕͋Δ 1.ετϨʔδΦʔόʔϔουྉۚ 2. ҠߦϦΫΤετྉۚ Glacier/Glacier Deep ArchiveʹҠಈ͢ΔͱɺΦϒδΣΫτ͝ͱʹϝλσʔλ͕࡞͞ΕΔ ΦϒδΣΫτͷҠߦʹ͍ͭͯετϨʔδΫϥε͝ͱʹઃఆ͞ΕͨҠߦྉ͕͔͔ۚΔ Amazon
S3 ϥΠϑαΠΫϧΛ༻ͨ͠ΦϒδΣΫτͷҠߦ https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html
͍ɺΘͨ͠ͷ͜ͱͰ͢ Զత࠷ڧϥΠϑαΠΫϧϙϦγʔΛ ೖͨ͠Βίετ͕૿͑ͨ
Intelligent-Tiering͕͓͢͢Ί • ΞΫηεͷΛݟͯɺ30ɺ90Λ͖͔͚ͬʹࣗಈͰ ετϨʔδΫϥεΛҠߦ • 128kҎԼͷΦϒδΣΫτແࢹͯ͘͠ΕΔ(αΠζมߋՄೳ) • ΞΫηεͷΛੳ͢ΔɺΦϒδΣΫτʹԠͯ͡एׯඅ༻͕͔͔Δ • ࣮ͱͯ͠ը૾อଘ༻ͷόέοτͰ6ׂݮͨ͠
όέοτͷόʔδϣχϯάͷ᠘ • TeraformͷtfstateͷόέοτͳͲͰΑ͘ར༻͞ΕΔ • όʔδϣχϯά͞Ε͍ͯΔόέοτͷΦϒδΣΫτͷআೋஈ֊͋Δ Object ඇݱߦ όʔδϣϯ Object আ
ڏແ আ ۚ is Money
͍ɺΘ̓
ਪଌ͢Δͳɺ؍ଌͤΑ Amazon S3 Storage Lens μογϡϘʔυʹ՝ۚ͢Δͷ͕͓͢͢Ί ແྉͷϝτϦΫε͚ͩͩͱɺ༰ྔ͘Β͍͔͠Θ͔Βͳ͍ GETϦΫΤετͷͳͲɺྉۚʹؔ࿈͢ΔϝτϦΫε͕ όέοτ͝ͱʹੳͰ͖Δ
Amazon EC2 - Elastic Compute Cloud -
Amazon EC2 1. ϦβʔϒυΠϯελϯεΛങ͏ 2. ύϑΥʔϚϯενϡʔχϯάΛͻͨ͢ΒͬͯɺΛΔ 3. ARMΞʔΩςΫνϟʹมߋ͢Δ ΕऴΘΔࣄ͔͠ͳ͍ https://aws.amazon.com/jp/ec2/pricing/reserved-instances/
࣍ճ༧ࠂ Kaigi on Rails 2024ʹͯ EC2(k8s node)Λ0ʹͨ͠ Λ͠·͢
ARMΞʔΩςΫνϟҠߦ ෳࡶͳԋࢉॲཧͰͳ͚ΕɺARM͕ ύϑΥʔϚϯεɺίετͱʹϝϦοτ͕༗Δ https://speakerdeck.com/pyama86/shi-jian-armakitekutiyayi-xing?slide=34
ۚΛ͔͚ͣʹτϨʔεΔͳΒ opentelemetry-collector + Sentry Self Hosted͕ڧ͍ SentryPostgreSQLͷαʔό1 + ΞϓϦk8s +
helmͰ͙͢ߏஙͰ͖Δ Մ༻ੑ͕ͦΜͳʹඞཁͳ͍͔Βɺܹ҆ߏͰ͍͚Δ(΄Μͱʹʁ) ΤϥʔͷτϨʔεʹՃ͑ͯύϑΥʔϚϯεͷτϨʔεऔΕΔ͓͠ಘ
ۚΛ͔͚ͣʹτϨʔεΔͳΒ
࠷ޙʹ
ίετϞχλϦϯά͕ॳख 1. AWS Cost ExplorerͳΓΛि࣍ͷMTGͰݟΔ 2. ίετ૿ͷ͖͍͠ࢹΛ͢Δ 3. Cloud WatchͷμογϡϘʔυΛோΊΔ
ԭೄେ͖Ͱ͢ʂࠓ͙͢ॅΈ͍ͨ ࠷৽ͷ࠾༻ใΛνΣοΫˠ !QC@SFDSVJU