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
470
クラウドサービスの 利用コストを削減する技術 - 円安の真南風を感じて -
PHPカンファレンス沖縄の前夜祭でお話しました。
Kazuhiko Yamashita
September 27, 2024
Tweet
Share
More Decks by Kazuhiko Yamashita
See All by Kazuhiko Yamashita
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
1.1k
Tuning GraphQL on Rails
pyama86
2
1.2k
ttlcacheのここがスゴい
pyama86
1
71
実践ARMアーキテクチャ移行
pyama86
2
2.2k
リモートワーク時代の守護神 PHP開発者のためのセキュリティ強化術
pyama86
3
1k
実践DevSecOps~クラウドネイティブとオンプレミスの間から~
pyama86
1
65
ペパボOpenTelemetry革命
pyama86
2
2k
Site Reliability Engineering for GMO
pyama86
10
1.3k
PHPアプリケーションのスケーラビリティと 信頼性を革新する nginx+ngx_mrubyとGoの融合
pyama86
2
480
Other Decks in Programming
See All in Programming
イベント駆動で成長して委員会
happymana
1
320
Why Jakarta EE Matters to Spring - and Vice Versa
ivargrimstad
0
1k
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
190
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
よくできたテンプレート言語として TypeScript + JSX を利用する試み / Using TypeScript + JSX outside of Web Frontend #TSKaigiKansai
izumin5210
6
1.7k
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
330
Arm移行タイムアタック
qnighy
0
300
色々なIaCツールを実際に触って比較してみる
iriikeita
0
330
TypeScriptでライブラリとの依存を限定的にする方法
tutinoko
2
660
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
.NET のための通信フレームワーク MagicOnion 入門 / Introduction to MagicOnion
mayuki
1
1.4k
WebフロントエンドにおけるGraphQL(あるいはバックエンドのAPI)との向き合い方 / #241106_plk_frontend
izumin5210
4
1.4k
Featured
See All Featured
It's Worth the Effort
3n
183
27k
Teambox: Starting and Learning
jrom
133
8.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Side Projects
sachag
452
42k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Ruby is Unlike a Banana
tanoku
97
11k
Done Done
chrislema
181
16k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Music & Morning Musume
bryan
46
6.2k
Speed Design
sergeychernyshev
24
610
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Thoughts on Productivity
jonyablonski
67
4.3k
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