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
600
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
4.6k
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
5.4k
Findy Team+のSOC2取得までの道のり
rvirus0817
0
4.9k
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
5.4k
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
2
8.1k
Amazon Security Lakeを活用したセキュリティログの集約とAIによる可視化の最前線
rvirus0817
0
520
TechBull Membersの開発進捗どうですか!?
rvirus0817
0
2k
クラウド脆弱性の傾向とShisho Cloudの活用
rvirus0817
0
320
Other Decks in Programming
See All in Programming
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.7k
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.3k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
230
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
420
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
150
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
280
Built Our Own Background Agent at LayerX #aidevex_findy
layerx
PRO
9
3.5k
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
16k
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
180
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
2.4k
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
180
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
110
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
410
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
630
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
200
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
640
Bash Introduction
62gerente
615
220k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Optimizing for Happiness
mojombo
378
71k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Tell your own story through comics
letsgokoyo
1
1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Thoughts on Productivity
jonyablonski
76
5.3k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
420
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Λେืूதʂ🥹 ઈࢍϩʔυϚοϓΛ࡞தͰ͢ʂʂ ڵຯ͋Δํʂͥͻͱ͓͠·͠ΐ͏ʂʂ🤝 (δϡχΞҭ͠·͢ʂ) \ ಛ ʹ ʂ/
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ