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
620
クラウドサービスの 利用コストを削減する技術 - 円安の真南風を感じて -
PHPカンファレンス沖縄の前夜祭でお話しました。
Kazuhiko Yamashita
September 27, 2024
Tweet
Share
More Decks by Kazuhiko Yamashita
See All by Kazuhiko Yamashita
新しい職場の CI が 20 分かかっていたらあなたならどうする?
pyama86
1
1k
事業を差別化する技術を生み出す技術
pyama86
4
1.6k
Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ
pyama86
9
8.1k
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
1.7k
Tuning GraphQL on Rails
pyama86
2
2k
ttlcacheのここがスゴい
pyama86
1
160
実践ARMアーキテクチャ移行
pyama86
2
2.5k
リモートワーク時代の守護神 PHP開発者のためのセキュリティ強化術
pyama86
3
1.3k
実践DevSecOps~クラウドネイティブとオンプレミスの間から~
pyama86
1
150
Other Decks in Programming
See All in Programming
Datadog RUM 本番導入までの道
shinter61
1
260
Parallel::Pipesの紹介
skaji
2
910
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
1
630
ワイがおすすめする新潟の食 / 20250530phpconf-niigata-eve
kasacchiful
0
300
Using AI Tools Around Software Development
inouehi
0
1.2k
セキュリティマネジャー廃止とクラウドネイティブ型サンドボックス活用
kazumura
1
170
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
190
実践ArchUnit ~実例による検証パターンの紹介~
ogiwarat
2
250
Benchmark
sysong
0
140
A comprehensive view of refactoring
marabesi
0
120
人には人それぞれのサービス層がある
shimabox
3
670
Rails産でないDBを Railsに引っ越すHACK - Omotesando.rb #110
lnit
1
160
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Writing Fast Ruby
sferik
628
61k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
How STYLIGHT went responsive
nonsquared
100
5.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
Docker and Python
trallard
44
3.4k
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