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
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
640
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
5.2k
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
5.9k
Findy Team+のSOC2取得までの道のり
rvirus0817
0
5.3k
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
5.9k
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
2
8.9k
Amazon Security Lakeを活用したセキュリティログの集約とAIによる可視化の最前線
rvirus0817
0
570
TechBull Membersの開発進捗どうですか!?
rvirus0817
0
2.1k
クラウド脆弱性の傾向とShisho Cloudの活用
rvirus0817
0
330
Other Decks in Programming
See All in Programming
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
490
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
120
MySQLとPostgreSQLって何が違うの?
akagami
PRO
0
160
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
2
990
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
300
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
130
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
270
Deep dive into the select statement (GopherCon UK)
jespino
0
170
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
200
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
130
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.5k
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
160
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
GraphQLとの向き合い方2022年版
quramy
50
15k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Scaling GitHub
holman
464
140k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
890
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
430
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
How to Talk to Developers About Accessibility
jct
2
530
New Earth Scene 8
popppiees
3
2.5k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
590
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Λେืूதʂ🥹 ઈࢍϩʔυϚοϓΛ࡞தͰ͢ʂʂ ڵຯ͋Δํʂͥͻͱ͓͠·͠ΐ͏ʂʂ🤝 (δϡχΞҭ͠·͢ʂ) \ ಛ ʹ ʂ/
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ