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
670
クラウドサービスの 利用コストを削減する技術 - 円安の真南風を感じて -
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
120
新しい職場の CI が 20 分かかっていたらあなたならどうする?
pyama86
2
1.4k
事業を差別化する技術を生み出す技術
pyama86
4
1.8k
Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ
pyama86
9
9.2k
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
1.8k
Tuning GraphQL on Rails
pyama86
2
2.2k
ttlcacheのここがスゴい
pyama86
1
200
実践ARMアーキテクチャ移行
pyama86
2
2.6k
リモートワーク時代の守護神 PHP開発者のためのセキュリティ強化術
pyama86
3
1.4k
Other Decks in Programming
See All in Programming
なんでRustの環境構築してないのにRust製のツールが動くの? / Why Do Rust-Based Tools Run Without a Rust Environment?
ssssota
14
46k
組込みだけじゃない!TinyGo で始める無料クラウド開発入門
otakakot
2
370
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
470
What's new in Spring Modulith?
olivergierke
1
170
登壇は dynamic! な営みである / speech is dynamic
da1chi
0
360
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
160
3年ぶりにコードを書いた元CTOが Claude Codeと30分でMVPを作った話
maikokojima
0
630
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
7
3.5k
bootcamp2025_バックエンド研修_WebAPIサーバ作成.pdf
geniee_inc
0
130
オンデバイスAIとXcode
ryodeveloper
0
130
EMこそClaude Codeでコード調査しよう
shibayu36
0
410
Six and a half ridiculous things to do with Quarkus
hollycummins
0
210
Featured
See All Featured
Speed Design
sergeychernyshev
32
1.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
The Cult of Friendly URLs
andyhume
79
6.6k
Scaling GitHub
holman
463
140k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Into the Great Unknown - MozCon
thekraken
40
2.1k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Designing for humans not robots
tammielis
254
26k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
A designer walks into a library…
pauljervisheath
209
24k
GraphQLとの向き合い方2022年版
quramy
49
14k
Fireside Chat
paigeccino
41
3.7k
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