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
NGINX Ingress Controller を活用した Retty のサービス開発とモニ...
Search
YuyaKoda
PRO
April 15, 2022
Technology
0
200
NGINX Ingress Controller を活用した Retty のサービス開発とモニタリング / NGINX ユーザー会 2022 春
https://f5-nginx.connpass.com/event/240414/
YuyaKoda
PRO
April 15, 2022
Tweet
Share
More Decks by YuyaKoda
See All by YuyaKoda
Kubernetes だけじゃない!Amazon ECS で実現するクラウドネイティブな GitHub Actions セルフホストランナー / CNDW2024
ponkio_o
PRO
6
560
Renovate ではじめる運用レスなライブラリ更新 / 令和最新版 他人に自慢したいヤバいCI/CD LT会 @ yabaibuki.dev #2
ponkio_o
PRO
1
230
Amazon ECS で作るスケーラブルなセルフホストランナー / GitHub Actions Meetup Tokyo #4
ponkio_o
PRO
2
790
業務で使えるかもしれない…!?GitHub Actions の Tips 集 / CI/CD Test Night #7
ponkio_o
PRO
43
18k
aqua で始める CI-Friendly なツール管理
ponkio_o
PRO
3
1.1k
set-terraform-matrix という Actions を作った / set-terraform-matrix-actions
ponkio_o
PRO
0
520
Retty における Signal Sciences の導入事例 / Fastly Yamagoya 2021
ponkio_o
PRO
0
4.4k
Amazon EKS を活用した個人開発環境の整備と自動化への取り組み / CNDT2021
ponkio_o
PRO
0
520
Terraform における秘匿情報管理 / Credentials management in Terraform
ponkio_o
PRO
0
370
Other Decks in Technology
See All in Technology
データベースの負荷を紐解く/untangle-the-database-load
emiki
2
570
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.9k
Introduction to OpenSearch Project - Search Engineering Tech Talk 2025 Winter
tkykenmt
2
260
Охота на косуль у древних
ashapiro
0
140
4th place solution Eedi - Mining Misconceptions in Mathematics
rist
0
160
プロダクト開発者目線での Entra ID 活用
sansantech
PRO
0
180
AIエージェント元年@日本生成AIユーザ会
shukob
1
270
OPENLOGI Company Profile for engineer
hr01
1
20k
LangGraph × Bedrock による複数の Agentic Workflow を利用した Supervisor 型のマルチエージェントの実現/langgraph-bedrock-supervisor-agent
ren8k
2
180
エンジニアの健康管理術 / Engineer Health Management Techniques
y_sone
8
5.8k
Global Databaseで実現するマルチリージョン自動切替とBlue/Greenデプロイ
j2yano
0
190
DeepSeekとは?何がいいの? - Databricksと学ぶDeepSeek! 〜これからのLLMに備えよ!〜
taka_aki
2
200
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
41
2.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
260
The Language of Interfaces
destraynor
156
24k
Code Reviewing Like a Champion
maltzj
521
39k
Building Your Own Lightsaber
phodgson
104
6.2k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
4 Signs Your Business is Dying
shpigford
183
22k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Building Adaptive Systems
keathley
40
2.4k
Rails Girls Zürich Keynote
gr2m
94
13k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
KATA
mclloyd
29
14k
Transcript
NGINX Ingress Controller Λ׆༻ͨ͠ Retty ͷαʔϏε։ൃͱϞχλϦϯά Yuya Koda 2022/04/15 NGINX
Ϣʔβʔձ 2022 य़
ࣗݾհ ໊લ ా༏࠸ ͜͏ͩΏ͏ ͓ࣄ ΠϯϑϥΤϯδχΞ ͖ͳ͓ళ 4"70:ຑे൪ళ ΧϨʔͷళΨϯδʔ
͖ͳͷ ւྉཧίʔώʔࣗಈԽLT 5XJUUFS !QPOLJP@P IUUQTVTFSSFUUZNF
͋ͳͨʹ#&45ͳ ͓ళ͕ݟ͔ͭΔ ໊࣮ܕάϧϝαʔϏε Retty
ΞδΣϯμ ։ൃڥͷ֓ཁ B ։ൃڥͷͳΓͨͪ C ։ൃڥͷߏ ϩʔυόϥϯαʔͷߏݕ౼
ϞχλϦϯάͷӡ༻ࣄྫͱϋϚͬͨͱ͜Ζ ·ͱΊ
ࣾ։ൃڥͷͳΓͨͪ • ϩʔΧϧ։ൃ࣌ʹ։ൃஈ֊ͷͷ͕ϨϏϡʔͰ͖ͳ͍ ◦ OHSPLΛ͍ͬͯͨ ▪ ্ཱ͍ͪ͛ͯΔ͔ؒ͠ݟΕͳ͍ͷͰෆศ • ։ൃ%#"1*ͱͷ࿈ܞ ◦
खݩͷEPDLFSDPNQPTFͰ্ཱͪ͛ͨ.Z42-Ͱͳ͘։ൃ༻ͷ %#Λࢀর͍ͨ͠ ◦ ผγεςϜͷ"1*Λࢀরͯ͠࿈ܞ෦ͷಈ࡞֬ೝΛߦ͍͍ͨ ▪ ˠϙʔτϑΥϫʔσΟϯάͳͲ͕ඞཁ ։ൃ͢Δʹ͍͔͋ͨͬͯͭ͘ͷ՝͕͋ͬͨ
։ൃͷྲྀΕ ϩʔΧϧڥͰ։ൃमਖ਼ मਖ਼ͨ͠ΠϝʔδΛ&$3ʹΞοϓϩʔυ εΫϦϓτΛ༻ͯࣗ͠ͷ%FQMPZNFOUͷΠϝʔδΛͰΞοϓϩʔυ ͨ͠ͷʹมߋ ө֬ೝ
ԼهͷΑ͏ͳྲྀΕͰ։ൃʙ֬ೝΛߦ͏
ࣾ։ൃڥͷߏ ˞ϗετ໊ͳͲͯ͢Սۭͷͷ IUUQT\VTFS^\TFSWJDF@OBNF^EFWSFUUZNF ʹΞΫηεͯ͠දࣔ֬ೝ εΫϦϓτͰ%FQMPZNFOUͷΠϝʔδΛมߋ͢Δ ։ൃऀYαʔϏεຖʹ*OHSFTT4FSWJDF%FQMPZNFOU͕ଘࡏ͢Δ มߋΛDPNNJU CVJMEQVTI
ϩʔυόϥϯαʔͷߏʹ͍ͭͯ
ϩʔυόϥϯαʔͷߏҊ ։ൃڥߏஙॳ ݄ࠒ ҎԼͷΑ͏ͳબࢶ͕͋ΓɺͦΕͧΕΛൺֱݕ౼ ͠·ͨ͠ɻ • "-#*OHSFTT • $-# /-#
/(*/9*OHSFTT$POUSPMMFS • "-#*OHSFTT /(*/9*OHSFTT$POUSPMMFS
A) ALB Ingress "84"-#Λ*OHSFTTͱͯ͠༻͢Δ&,4ͩͱఆ൪ ͷߏ • ϝϦοτ ◦ ߏ͕ඇৗʹγϯϓϧ ◦
"-#ͷػೳ͕͑Δ • σϝϦοτ ◦ "-#Λ*OHSFTTͱͯ͠ར༻͢ΔͷͰ"-#ͷ੍Λͦͷ··ड͚Δ ▪ ਖ਼نදݱ͕͑ͳ͍😭 ▪ 4FSWJDF2VPUB • λʔήοτͷొσϑΥϧτͰ Ҿ্͖͛Մೳ • λʔήοτͷొ૿͑ΔՄೳੑ͕͋ͬͨ
B) CLB / (NLB) + NGINX Ingress /(*/9*OHSFTTΛUZQF-PBE#BMBODFSͰެ։ͯ͠ɺશͯͷϧʔςΟϯάΛ/(*/9 ʹͤΔํࣜ •
ϝϦοτ ◦ /(*/9ͰϧʔςΟϯάͰ͖Δ ▪ ਖ਼نදݱ͑Δ͠ϔομʔ৮ΕΔ • σϝϦοτ ◦ $-#Λ͏ඞཁ͕͋ͬͨ ݱࡏ/-#͕ར༻Մೳ ▪ ॳUZQF-PBE#BMBODFSͳ4FSWJDFͰ༻Ͱ͖Δ&-#͕ $-#ͷΈͩͬͨ
C) ALB Ingress + NGINX Ingress "-#*OHSFTTΛϑϩϯτʹஔͭͭ͠ɺͦͷޙΖͰ/(*/9*OHSFTTΛಈ͔ͯ͠ͲͪΒ ͏ํࣜɻ"ͱ#ͷ͍͍ͱ͜औΓߏ • ϝϦοτ
◦ /(*/9ͰϧʔςΟϯάͰ͖Δ ▪ "-#ͰͰ͖Δ͠"-#ͷػೳ͑Δ ◦ ࣌ͱͯ͠ $-#ΛΘͳ͍͍ͯ͘ • σϝϦοτ ◦ *OHSFTT$POUSPMMFSΛෳཧ͢Δඞཁ͕͋Δ ▪ ͱ͍͑ӡ༻͍ͯͯ͠େมͩͳͱײͨ͜͡ͱ͕ͳ͍
ύλʔϯ C Λ࠾༻ͨ͠ཧ༝ ओʹ$-#Λ͍ͨ͘ͳ͍ͱ͍͏ͷ͕େ͖ͳཧ༝ "84-PBE#BMBODFS$POUSPMMFSͷొʹΑΓݱࡏղফ͍ͯ͠Δଟ͍ • ࣌ $-#ΛΘͳ͍બࢶ͕͜Ε͔͠ͳ͔ͬͨ ◦ ྩʹ$-#Λ৽ن࡞͢Δͷͪΐͬͱʜ
• &,4PO'BSHBUFͷΓ͑ͷՄೳੑ͕͋ͬͨ ◦ ίετ؍͔Β'BSHBUFͷҠߦ݁ՌతʹߦΘͣ ◦ ࣌ PO'BSHBUFͷ߹"-#*OHSFTTΛ͏͔͠ͳ͔ͬͨ • "-#୯ମͩͱػೳෆΛײͨ͡ ◦ ϧʔςΟϯάͷઃఆ ◦ Ϧεφʔϧʔϧͷ্ݶ͕σϑΥϧτͩͱ Ҿ্͖͛Մೳ
࠷ऴతͳߏ ˞ϗετ໊ͳͲͯ͢Սۭͷͷ
ӡ༻ࣄྫ
Prometheus + Grafana ʹΑΔϞχλϦϯά ϞχλϦϯάڥͷߏஙʹQSPNFUIFVTPQFSBUPSLVCFQSPNFUIFVTΛ༻ 1SPNFUIFVT(SBGBOB"MFSUNBOBHFSͳͲΛΠΠײ͡ʹηοτΞοϓͰ͖Δ IUUQTHJUIVCDPNQSPNFUIFVTPQFSBUPSLVCFQSPNFUIFVT
kube-prometheus vs prometheus-operator QSPNFUIFVTPQFSBUPSʮ1SPNFUIFVTͷ0QFSBUPS ୯ମ ʯͰ(SBGBOB֤छ FYQPSUFSผ్Πϯετʔϧ͢Δඞཁ͕͋Δɻ QSPNFUIFVTPQFSBUPSΛแ͠ɺ(SBGBOB"MFSUNBOBHFS&YQPSUFSΛೖΕͯ͘ ΕΔͷ͕LVCFQSPNFUIFVT
nginx-prometheus-exporter ඞཁʁ OHJOYJODLVCFSOFUFTJOHSFTTΛ͏߹ʹಉࠝ͞Ε͓ͯΓɺϑϥάͰ༗ޮԽ͢Δ ͚ͩͳͷͰผ్FYQPSUFSΛೖΕͳͯ͘ྑ͍ IUUQTHJUIVCDPNOHJOYJODOHJOYQSPNFUIFVTFYQPSUFS
exporter ͷઃఆ OHJOYJOHSFTTͷҾͱͯ͠FOBCMFQSPNFUIFVTNFUSJDTΛͯ͠ɺεΫϨΠϓ Ͱ͖ΔΑ͏ʹ֘ͷϙʔτ ࠓճ Λެ։͢Δ
औಘͰ͖ΔϝτϦΫεʹ͍ͭͯ 044൛ͩͱऔಘͰ͖ΔϝτϦΫεׂ͕ͱݶΒΕΔͨΊɺΑΓৄࡉʹϞχλϦϯά͢Δ ߹/(*/91MVT͕ྑͦ͞͏ ։ൃڥͩͱࢮ׆ࢹͰ͖ΕेͳͷͰࠓͷͱ͜Ζͳ͠ • $PNNPO ◦ OHJOYFYQPSUFS@CVJME@JOGP ◦ OJHOY@VQ
• 4UBUVT ◦ OHJOY@DPOOFDUJPOT@BDDFQUFE ◦ OHJOY@DPOOFDUJPOT@BDUJWF ◦ OHJOY@DPOOFDUJPOT@IBOEMFE ◦ OHJOY@DPOOFDUJPOT@SFBEJOH ◦ OHJOY@DPOOFDUJPOT@XBJUJOH ◦ OHJOY@DPOOFDUJPOT@XSJUJOH ◦ OHJOY@IUUQ@SFRVFTUT@UPUBM 044/(*/9ͰऔಘͰ͖ΔϝτϦΫεҰཡ
·ͱΊ
·ͱΊ • &,4ͷ߹"-#*OHSFTT SEQBSUZ*OHSFTTͷΈ߹ΘͤΞϦ ◦ "-#ͷػೳΛ͍ͭͭΓͳ͍ՕॴΛิ͑Δ ▪ "$.8"'0*%$"VUI • ϞχλϦϯάڥͷߏஙʹLVCFQSPNFUIFVT͕ศར
◦ 2VJDLTUBSUͷ௨ΓʹΕҰ௨ΓΠΠײ͡ʹଗ͏ ◦ LVCFQSPNFUIFVTʹݶΒͣ 0QFSBUPSͦͷͷͷֶशίετ͔͔Δ
ืूϙδγϣϯ • ϑϩϯτΤϯυΤϯδχΞ • όοΫΤϯυΤϯδχΞ • ΞϓϦΤϯδχΞ • ΤϯδχΞϦϯάϚωʔδϟʔ •
σʔλΞφϦετ • σʔλαΠΤϯςΟετ • σʔλΤϯδχΞ • ΠϯϑϥΤϯδχΞ ৄࡉͪ͜Β