Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
入社1ヶ月でここまでやった!Findy Toolsインフラ支援の最適化
Search
adachi.ryo
July 11, 2024
Programming
19k
11
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
入社1ヶ月でここまでやった!Findy Toolsインフラ支援の最適化
https://findy.connpass.com/event/323099/
【増枠】Embedded SRE 現場に寄り添うアプローチの資料です。
adachi.ryo
July 11, 2024
More Decks by adachi.ryo
See All by adachi.ryo
横断SREがSRE社内留学制度 / Enablingになぜ踏み切ったのか
rvirus0817
0
1k
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
5.9k
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
6.5k
Findy Team+のSOC2取得までの道のり
rvirus0817
0
6k
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
6.1k
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
2
9.3k
Amazon Security Lakeを活用したセキュリティログの集約とAIによる可視化の最前線
rvirus0817
0
670
TechBull Membersの開発進捗どうですか!?
rvirus0817
0
2.1k
クラウド脆弱性の傾向とShisho Cloudの活用
rvirus0817
0
330
Other Decks in Programming
See All in Programming
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1.2k
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
200
すこし踏み込む CancellationToken
htkym
2
1.5k
FreeBSDでZabbixを動かす
kenkino
0
340
Webの地図
yosuke_furukawa
PRO
6
5k
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
5.2k
setup-vp GitLab対応の裏側
naokihaba
0
140
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
430
GitHubハンズオン講座 — 実務レベルのチーム開発のフローを身につけよう
junhat6
0
110
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1k
wkhtmltopdfの次どうするか問題2026
willnet
2
1.8k
Java 27新機能 / Java 27 new features
kishida
2
190
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
950
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
How to Talk to Developers About Accessibility
jct
2
560
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
540
Site-Speed That Sticks
csswizardry
13
1.5k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
530
First, design no harm
axbom
PRO
2
1.3k
Leo the Paperboy
mayatellez
10
2.3k
A Soul's Torment
seathinner
8
3.7k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
690
Transcript
ೖࣾ1ϲ݄Ͱ͜͜·Ͱͬͨʂ Findy ToolsΠϯϑϥࢧԉͷ࠷దԽ ʮ2024/7/11 Findy TechBrew in ౦ژEmbedded SRE ݱʹدΓఴ͏Ξϓϩʔνʯ
ϑΝΠϯσΟגࣜձࣾ ϓϩμΫτ։ൃ෦/SRE ҆ୡ ྋ(adachin0817)
ࣗݾհ
3 ࣗݾհ ҆ୡ ྋ(@adachin0817) ɾϑΝΠϯσΟ(ג) / ϓϩμΫτ։ൃ෦/Senior SRE ɾBlog: blog.adachin.me/wiki.adachin.me
ɾTechBull(ٕज़ίϛϡχςΟ) techbull.cloud ɹɾʮSRE/ۦ͚ग़͠ΤϯδχΞͷϝϯλϦϯά ྦྷܭ300໊↑ʯ ɾ͔ͭͯOSS൛VulsͷίϯτϦϏϡʔλʔΠϕϯτओ࠵ͳͲ ɾ89ੜ·Εɺ౦ژཱ۠ग़Ͱ࡛ۄݝय़෦ࢢ͕ݩ ɾ࠺ͱϑϨϯνϒϧυοάͷࣂ͍ओͰ͋Δ
XͰݟ͔͚ͨਓʂ 🤚
ೖࣾͯ͠·ͩ1ϲ݄ʂʂ φχϞϫΧϥφΠ
SREνʔϜൃʹ͍ͭͯ
SREνʔϜൃʹ͍ͭͯ • όοΫΤϯυνʔϜ͕SREతͳ׆ಈΛ͍ͯͨ͠ ◦ ͔͠͠ɺόοΫΤϯυνʔϜ͕ΠϯϑϥରԠͱͳΔͱϦιʔεෆ ◦ αʔϏε͕૿͑ଓ͚ΔҰํɺSREతվળ͕ͳ͔ͳ͔Ͱ͖͍ͯͳ͔ͬͨ • ڈ͔Β࠾༻Λ࢝ΊͯɺSREνʔϜݱࡏ3໊Ͱ׆ಈ ◦
GitHubͷΧϯόϯํࣜͰλεΫཧ͓ͯ͠Γɺேձ15Ͱ݁ 7
Findy Tools͔Βࢧԉ͍ͯ͜͠͏ʂ
Findy Toolsͱ
Findy Toolsͱ • ։ൃπʔϧʹಛԽͨ͠ϨϏϡʔαΠτ ◦ πʔϧબఆʹؔ͢Δෆ҆Λղফ ◦ ಋೖݕ౼ʹඞཁͳใΛఏڙ • ݱͰΑ͋͘Δ͓Έ
◦ ϝϦοτɾσϝϦοτ͕͔Βͳ͍ ◦ ใऩूʹ͕͔͔࣌ؒΔ ◦ πʔϧબఆͷܾఆଧ ◦ ಋೖޙʹൃੜ͢Δ՝ • ͓͔͛͞·Ͱͨ͘͞Μͷʂ ◦ ձ༷ࣾʹࣥච͍͍͓ͨͩͯΓ·͢ʂ 10
Findy Toolsͷٕज़ελοΫ
Findy Toolsͷٕज़ελοΫ • Ruby on Rails • Next.js • Docker
• AWS ◦ ECS/Fargate ▪ Front Container ▪ Rails Container ▪ Nginx Container • ALB ◦ CloudFront ◦ Aurora/MySQL8 ◦ WAF • GitHub Actions(CI/CD) • Terraform(Module) • Datadog/Sentry 12
औΓΜͩ͜ͱ (Aurora όʔδϣϯΞοϓ) ͦͷᶃ
Aurora όʔδϣϯΞοϓ • RDS SSL/TLSূ໌ॻͷߋ৽ ◦ ଞʹӨڹ͕ͳ͍Α͏ʹrds-ca-2019ͱಉ͡ΞϧΰϦζϜͷRSA2048Λ༻͍ͯ͠Δ ◦ rds-ca-rsa2048-g1ʹมߋ ◦
࠶ىಈμϯλΠϜͳ͍ͷͰαΫοͱྃ • Aurora MySQLϚΠφʔόʔδϣϯΞοϓ ◦ 8.0.mysql_aurora.3.04.0→8.0.mysql_aurora.3.07.0 ▪ μϯλΠϜ͋Δ͔ʹ͍ͭͯݒ೦ ▪ ·ͣ։ൃڥ(Docker)͔ΒόʔδϣϯΞοϓͱಈ࡞֬ೝ ◦ ͜ͷػձʹAmazon Aurora Blue/Green DeploymentsΛݕূ ▪ ͔͠͠1࣌ؒҎ্͔͔ΔͨΊɺStgͰͦͷ··όʔδϣϯΞοϓ(10) ◦ ࠶ىಈμϯλΠϜͳ͔ͬͨͷͰɺதʹରԠͯ͠ຊ൪ྃ 14 ʮೖࣾͯ͠Θ͔ͣ3ͰରԠʂʯ
औΓΜͩ͜ͱ (ࢹ/ΦϒβʔόϏϦςΟ) ͦͷᶄ
ࢹ/ΦϒβʔόϏϦςΟ • ࢹ/ΦϒβʔόϏϦςΟपΓ ◦ ࠓ·ͰSentryͰΤϥʔτϥοΩϯάͱAPMͷΈ͚ͩ ◦ Մ؍ଌੑେࣄͳͷͰ͍͖ͬͯ • ։ൃϝϯόʔ3໊ ◦
ϝϯόʔͱग़ࣾ࣌ʹ1on1 ▪ ձ͍ͯ͘͠தͰDatadogͰ౷Ұ͢Δ͜ͱʹͳͬͨ ▪ ΤϥʔτϥοΩϯάSentryͷํ͕͍҆ͨΊܧଓ ▪ APMDatadogʹҠߦ • Πϯϑϥ/ΞϓϦέʔγϣϯϦιʔε ◦ ECS(CPU,Memory) ◦ ֎ܗࢹ(Response Time,Status Code) ◦ CloudFront(5xx,Error Rate) ◦ APM(Error,Latency) ◦ RDS(CPU,Memory,DeadLock,Network,Connection,Select Latency) ◦ Πϕϯτϩά(Error,Fail) ◦ ΞϥʔτશͯTerraformԽɺμογϡϘʔυखಈͰཧ 16
ࢹ/ΦϒβʔόϏϦςΟ 17 ʮීஈݟ͍͑ͯͳ͔ͬͨ෦͕ɺΦϒβʔόϏϦςΟͷ ্ʹΑͬͯՄࢹԽ͞Εͨʂʯ
औΓΜͩ͜ͱ (SLI/SLO) ͦͷᶅ
SLI/SLO • SLI/SLOͷࡦఆ ◦ SLI/SLOͷӡ༻γϯϓϧͳߏͰ࣮ݧ͍ͯ͘͠ ▪ τοϓϖʔδͷͦͷଞͷϖʔδͷද͕ࣔ࣌ؒ2ඵҎͰ͋Δׂ߹͕99%Ҏ্ ▪ τοϓϖʔδͦͷଞͷϖʔδͷϦΫΤετॲཧޭ͕99%Ҏ্ •
HTTPεςʔλείʔυ 4xxҎ֎ ▪ ΤϥʔόδΣοτ • 30ؒʹ0.1%ͷμϯλΠϜ͕100%ফඅ͞Εͨ߹ ▪ όʔϯϨʔτ • 30ؒʹ6͓࣌ؒΑͼաڈ30ؒͰ6ഒҎ্ͷ߹ ▪ আ֎ • ΠϯϑϥϦιʔε ◦ CPUɺMemoryɺωοτϫʔΫɺσΟεΫ ◦ සൟʹΞϥʔτ͕ग़ΔͨΊαʔϏεͷӨڹʹͳΒͳ͍ ▪ ৼΓฦΓ • ִिͰSLOͷݟ͠Λߦ͏ 19
SLI/SLO 20 ʮࠓޙ։ൃϝϯόʔ͕ӡ༻Ͱ͖ΔΑ͏ʹSRE͕ ϑΥϩʔ͍ͯ͘͠ʂʯ
औΓΜͩ͜ͱ (։ൃڥͷվળ) ͦͷᶆ
։ൃڥͷվળ • ։ൃڥΛJustfileԽͯࣗ͠ಈߏங ◦ ։ൃڥ ▪ rails server ▪ Node.js(npm
run) ▪ MySQL8(docker-compose) ◦ ࠓ·ͰखॱॻΛݟͳ͕Βߏங͍ͯͨ͠ ▪ खॱ͕ଟ͍ͨΊ࿙Ε͕ൃੜͯ͠͠·͏ ◦ Justfile(Task Runner Tool) ▪ https://github.com/casey/just ▪ Makefileͱൺֱ͢Δͱ • γϯϓϧͰײతͳߏจ • γΣϧεΫϦϓτʹࣅͯΔ • ґଘؔͷཧ͕؆୯ • ֶशίετ͕͍ 22
։ൃڥͷվળ(justfile) 23 ʮ։ൃϝϯόʔ͕εϐʔσΟʔʹߏஙͰ͖ΔΑ͏ʹʂʯ
·ͱΊ/ࠓޙΓ͍ͨ͜ͱ
·ͱΊ/ࠓޙΓ͍ͨ͜ͱ • ৴པੑͱจԽͮ͘ΓձͰ͢ ◦ ີʹؔΘΓͳ͕Βࢧԉ͍ͯ͘͠ • Findy ToolsͰ࣮ݧతʹߦ͍ͬͯΔࢹपΓ ◦ ৫ԣஅʹΑΔϊϋΛڞ༗
▪ Findy ▪ Findy Freelance ▪ Findy Team+ • AWSηΩϡϦςΟपΓ্ • AWSίετݮ • ։ൃϝϯόʔͷੜ࢈ੑ্ ◦ ։ൃڥ શDockerԽ ◦ ECS ArmҠߦ ◦ Stgෳڥ ࣗಈߏங ◦ σϓϩΠߴԽ 25
࠷ޙʹʂ
গ͠ͰϑΝΠϯσΟͰಇ͘͜ͱʹ͝ڵຯ͋Εɺؾܰʹ͝࿈བྷ͍ͩ͘͞ʂ Ͳ͕͜దਖ਼͔Θ͔Βͳ͍ͱ͍͏ํؚΊͯɺΦʔϓϯϙδγϣϯ(ॻྨબߟ໘ஊ࣌ʹϙδγϣϯ͢Γ߹Θͤ)ΧδϡΞϧ໘ஊͷਃࠐΈΛߦ͍ͬͯ·͢ʂ 27 ※ืूঢ়گʹΑͬͯมಈ͠·͢ ։ൃνʔϜɾσβΠφʔ • CTOީิ • EM •
ϑϩϯτΤϯυ • ػցֶशΤϯδχΞ • όοΫΤϯυ •σʔλΤϯδχΞ • SRE • UIσβΠφʔ Findy Career • ࣄۀ෦ީิ • ϚʔέςΟϯά • ࣄΞγελϯτ • PdM • ΧελϚʔαΫηε ◦ Ϧʔμʔީิ / ϝϯόʔ • ϢʔβʔαΫηε ◦ Ϧʔμʔީิ / ϝϯόʔ Findy Team+ • ৽نࣄۀ։ൃ • ηʔϧε • ΧελϚʔαΫηε • PdM ւ֎ਪਐ • ্ཱͪ͛ϝϯόʔ ◦ ϢʔβʔରԠ ◦ اըରԠ ࣾࣨ • ࣾࣨީิ • ࠾༻৫ਓࣄϦʔμʔ • ใ୲ ίʔϙϨʔτଞ • CFOީิ • ܦӦاը • ๏ • ্४උ୲ • ࣄۀاը • ܦཧ ืूதͷϙδγϣϯ
SREΛେืूதʂ🥹 ઈࢍϩʔυϚοϓΛ࡞தͰ͢ʂʂ ڵຯ͋Δํʂͥͻͱ͓͠·͠ΐ͏ʂʂ🤝 (δϡχΞҭ͠·͢ʂ) \ ಛ ʹ ʂ/
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ