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
入社1ヶ月でここまでやった!Findy Toolsインフラ支援の最適化
Search
adachi.ryo
July 11, 2024
Programming
18k
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
560
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
4.3k
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
5k
Findy Team+のSOC2取得までの道のり
rvirus0817
0
4.6k
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
5.2k
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
2
7.8k
Amazon Security Lakeを活用したセキュリティログの集約とAIによる可視化の最前線
rvirus0817
0
500
TechBull Membersの開発進捗どうですか!?
rvirus0817
0
2k
クラウド脆弱性の傾向とShisho Cloudの活用
rvirus0817
0
310
Other Decks in Programming
See All in Programming
Vite+ Unified Toolchain for the Web
naokihaba
0
410
A2UI という光を覗いてみる
satohjohn
1
170
Inside Stream API
skrb
1
820
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
620
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
7k
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
430
Oxcを導入して開発体験が向上した話
yug1224
4
360
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.5k
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
230
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
180
Performance Engineering for Everyone
elenatanasoiu
0
240
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
420
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Odyssey Design
rkendrick25
PRO
2
710
From π to Pie charts
rasagy
0
220
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
260
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
210
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Visualization
eitanlees
152
17k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
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Λେืूதʂ🥹 ઈࢍϩʔυϚοϓΛ࡞தͰ͢ʂʂ ڵຯ͋Δํʂͥͻͱ͓͠·͠ΐ͏ʂʂ🤝 (δϡχΞҭ͠·͢ʂ) \ ಛ ʹ ʂ/
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ