๐Ÿ“– ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ•์˜ ๋…ธํŠธ ์ธ๋ฑ์Šค

์ˆ˜์—… ๋‚ด์šฉ ๊ธฐ๋ฐ˜ ์ฒด๊ณ„์  ์ •๋ฆฌ

2025๋…„ 12์›” 9์ผ ์ˆ˜์—… ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ Exporter ๊ฐœ๋…๋ถ€ํ„ฐ Istio ํ†ตํ•ฉ๊นŒ์ง€ ์ •๋ฆฌํ•œ ์‹ค๋ฌด ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ€์ด๋“œ

๐ŸŽฏ ์‹œ๋ฆฌ์ฆˆ ๊ฐœ์š”

๐Ÿ’ก ํ•™์Šต ๋ชฉํ‘œ

ํ•ต์‹ฌ ์ดํ•ด:
  - Exporter๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€ ์™„์ „ ์ดํ•ด
  - ๊ด€์ธก์„ฑ 3๋Œ€ ์ถ• (Metrics/Logs/Traces) ํŒŒ์•…
  - ๋ธ”๋ž™๋ฐ•์Šค ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ํ•„์š”์„ฑ
  - Istio ํ™˜๊ฒฝ์—์„œ์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ํ†ตํ•ฉ
 
์‹ค๋ฌด ์ ์šฉ:
  - ํŠธ๋ ˆ์ด๋“œ์˜คํ”„ ๊ด€์ ์—์„œ ๋„๊ตฌ ์„ ํƒ
  - 4 Golden Signals ๊ธฐ๋ฐ˜ ๋ชจ๋‹ˆํ„ฐ๋ง
  - ์˜ฌ๋ฐ”๋ฅธ ์„ค์น˜ ์ˆœ์„œ ์ดํ•ด
  - ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ ๋ฐฐ์–‘

๐Ÿ“š ํ•™์Šต ํ๋ฆ„

๊ฐœ๋… โ†’ ํŒ๋‹จ โ†’ ๋„๊ตฌ โ†’ ํ†ตํ•ฉ โ†’ ์‹ค๋ฌด
  โ†“       โ†“      โ†“      โ†“       โ†“
 01-02  06-07  04-05  08-09   ์‹ค์ „

๐Ÿ“‹ ์‹œ๋ฆฌ์ฆˆ ๊ตฌ์„ฑ

๐Ÿ“– 01ํŽธ: Exporter ๊ฐœ๋…

ํŒŒ์ผ: 01-Exporter-๊ฐœ๋…

ํ•ต์‹ฌ ์งˆ๋ฌธ

โ€œRedis๋‚˜ MySQL ๋ชจ๋‹ˆํ„ฐ๋งํ•  ๋•Œ ์™œ Exporter๋ฅผ ๊ผญ ๋ฐฐํฌํ•˜๋‚˜์š”?โ€

ํ•ต์‹ฌ ๋‚ด์šฉ:

  • Prometheus์˜ ์–ธ์–ด ์žฅ๋ฒฝ
  • Exporter = ํ†ต์—ญ์‚ฌ
  • 3๋‹จ๊ณ„ ๋™์ž‘ ๋ฐฉ์‹ (์ˆ˜์ง‘โ†’๋ฒˆ์—ญโ†’์ œ๊ณต)
  • ์™œ YAML๋กœ ๋”ฐ๋กœ ๋ฐฐํฌํ•˜๋‚˜

์ฃผ์š” ํฌ์ธํŠธ:

- Prometheus ํ˜•์‹: redis_up 1
- ๊ธฐ์กด ์•ฑ ํ˜•์‹: INFO ๋ช…๋ น์–ด โ†’ ํ…์ŠคํŠธ ๋ฉ์–ด๋ฆฌ
- Exporter: ์–‘์ชฝ ์–ธ์–ด๋ฅผ ๋ชจ๋‘ ์•„๋Š” ํ†ต์—ญ์‚ฌ
- /metrics ์—”๋“œํฌ์ธํŠธ ์ œ๊ณต

๐ŸŽฏ 02ํŽธ: Exporter ์‚ฌ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค

ํŒŒ์ผ: 02-Exporter-์‚ฌ์šฉ-์‹œ๋‚˜๋ฆฌ์˜ค

ํŒ๋‹จ ๊ธฐ์ค€

โ€œ๊ทธ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ํƒœ์–ด๋‚œ ์‹œ๋Œ€โ€๋ฅผ ๋ณด๋ผ

ํ•ต์‹ฌ ๋‚ด์šฉ:

  • ํ•„์š”ํ•œ ๊ฒฝ์šฐ: ๋ ˆ๊ฑฐ์‹œ ์•ฑ (MySQL, Redis)
  • ๋ถˆํ•„์š”ํ•œ ๊ฒฝ์šฐ: ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ (K8s, Istio)
  • ํŒ๋‹จ ์ฒดํฌ๋ฆฌ์ŠคํŠธ
  • ์‹ค๋ฌด ์‚ฌ๋ก€

๋น„๊ตํ‘œ:

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜Exporter ํ•„์š”์ด์œ 
MySQL, Redisโœ…Prometheus ํ˜•์‹ ๋ฏธ์ง€์›
KubernetesโŒ/metrics ๋‚ด์žฅ
Nginxโœ…์ƒํƒœ ํŽ˜์ด์ง€๋Š” ๋‹ค๋ฅธ ํ˜•์‹
์ง์ ‘ ๊ฐœ๋ฐœํ•œ ์•ฑโŒ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ง์ ‘ ๊ตฌํ˜„

๐Ÿ” 03ํŽธ: ๊ด€์ธก์„ฑ 3๋Œ€ ์ถ•

ํŒŒ์ผ: 03-๊ด€์ธก์„ฑ-3๋Œ€-์ถ•

์‹ค๋ฌด ์‹œ๋‚˜๋ฆฌ์˜ค

โ€œํ•˜๋‚˜์˜ ๋„๊ตฌ๋กœ๋Š” ๋ถ€์กฑํ•˜๋‹ค! ์„ธ ๊ฐ€์ง€ ๊ด€์ ์ด ํ•„์š”ํ•˜๋‹คโ€

ํ•ต์‹ฌ ๋‚ด์šฉ:

  • Metrics: ์ˆซ์ž ๋ฐ์ดํ„ฐ (Prometheus)
  • Logs: ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ (ELK, Loki)
  • Traces: ์š”์ฒญ ํ๋ฆ„ (Jaeger)
  • ์žฅ์•  ๋Œ€์‘ 3๋‹จ๊ณ„

์žฅ์•  ๋Œ€์‘ ์‹œ๋‚˜๋ฆฌ์˜ค:

1๋‹จ๊ณ„ Metrics: "์–ด๋””๊ฐ€" ๋ฌธ์ œ์ธ์ง€ ํŒŒ์•…
  โ†’ MySQL ์‘๋‹ต์‹œ๊ฐ„ ๊ธ‰์ฆ
 
2๋‹จ๊ณ„ Logs: "๋ฌด์Šจ" ์—๋Ÿฌ์ธ์ง€ ํ™•์ธ
  โ†’ "Lock wait timeout exceeded"
 
3๋‹จ๊ณ„ Traces: "์–ด๋А ๋ถ€๋ถ„์ด" ๋А๋ฆฐ์ง€ ์‹๋ณ„
  โ†’ /api/order์—์„œ ๊ธด ํŠธ๋žœ์žญ์…˜

๐ŸŽฏ 07ํŽธ: 4 Golden Signals

ํŒŒ์ผ: 07-4-Golden-Signals

Google SRE ๊ถŒ์žฅ

๋ฌด์—‡์„ ๋ชจ๋‹ˆํ„ฐ๋งํ• ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด? โ†’ ์ด 4๊ฐ€์ง€๋ถ€ํ„ฐ!

ํ•ต์‹ฌ ๋‚ด์šฉ:

  1. Latency: ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ฒŒ?
  2. Traffic: ์–ผ๋งˆ๋‚˜ ๋งŽ์ด?
  3. Errors: ์–ผ๋งˆ๋‚˜ ์‹คํŒจ?
  4. Saturation: ์–ผ๋งˆ๋‚˜ ์ฐผ๋‚˜?

MySQL ์ ์šฉ ์˜ˆ์‹œ:

# 1. Latency
mysql_global_status_slow_queries
 
# 2. Traffic
mysql_global_status_queries
 
# 3. Errors
mysql_global_status_connection_errors_total
 
# 4. Saturation
mysql_global_status_threads_connected /
mysql_global_variables_max_connections

๐Ÿ”ง 04ํŽธ: Prometheus Blackbox Exporter

ํŒŒ์ผ: 04-Prometheus-Blackbox-Exporter

ํ•ต์‹ฌ ์ฒ ํ•™

โ€œ์„œ๋ฒ„๊ฐ€ ์‚ด์•„์žˆ๋‹คโ€ โ‰  โ€œ์‚ฌ์šฉ์ž๊ฐ€ ์“ธ ์ˆ˜ ์žˆ๋‹คโ€

ํ•ต์‹ฌ ๋‚ด์šฉ:

  • ํ™”์ดํŠธ๋ฐ•์Šค vs ๋ธ”๋ž™๋ฐ•์Šค
  • ์™œ prefix๊ฐ€ probe_์ธ๊ฐ€
  • ConfigMap์ด ํ•„์š”ํ•œ ์ด์œ 
  • ์œ ์šฉํ•œ ๊ฒฝ์šฐ vs ๋ถˆํ•„์š”ํ•œ ๊ฒฝ์šฐ

ํŠธ๋ ˆ์ด๋“œ์˜คํ”„:

ํ•ญ๋ชฉ์žฅ์  โœ…๋‹จ์  โŒ
๊ด€์ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๊ทธ๋Œ€๋กœ์›์ธ ํŒŒ์•… ์–ด๋ ค์›€
์„ค์ •๊ฐ„๋‹จ (URL๋งŒ)๋ณต์žกํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค ์ œํ•œ
๋ฒ”์œ„์™ธ๋ถ€ ์„œ๋น„์Šค ๊ฐ€๋Šฅ๊นŠ์€ ๋ถ„์„ ๋ถˆ๊ฐ€

๐Ÿ’ผ 06ํŽธ: ๋ชจ๋‹ˆํ„ฐ๋ง ํŠธ๋ ˆ์ด๋“œ์˜คํ”„

ํŒŒ์ผ: 06-๋ชจ๋‹ˆํ„ฐ๋ง-ํŠธ๋ ˆ์ด๋“œ์˜คํ”„

์‹ค๋ฌด ํ•ต์‹ฌ ์›์น™

โ€œ๋ญ˜ ํ•  ์ˆ˜ ์žˆ๋‚˜โ€๋ณด๋‹ค โ€œ์–ธ์ œ, ์™œ ํ•ด์•ผ ํ•˜๋‚˜โ€

ํ•ต์‹ฌ ๋‚ด์šฉ:

  • ๊ธฐ์ˆ  ์„ ํƒ ์งˆ๋ฌธ ๋ฆฌ์ŠคํŠธ
  • ๋น„์šฉ ๊ณ„์‚ฐ (์‹œ๊ฐ„, ๋ฆฌ์†Œ์Šค, ๊ธฐํšŒ)
  • ๋‹จ๊ณ„๋ณ„ ์ ‘๊ทผ (Phase 1-4)
  • ์•Œ๋žŒ ํ”ผ๋กœ ๊ด€๋ฆฌ

์˜์‚ฌ๊ฒฐ์ • ํ”„๋ ˆ์ž„์›Œํฌ:

์งˆ๋ฌธ ๋ฆฌ์ŠคํŠธ:
  โ–ก ํŒ€ ๊ทœ๋ชจ๋Š”? (2๋ช… vs 20๋ช…)
  โ–ก ์˜ˆ์‚ฐ์€? (๋ˆ vs ์‹œ๊ฐ„)
  โ–ก ์ธํ”„๋ผ๋Š”? (ํด๋ผ์šฐ๋“œ vs ์˜จํ”„๋ ˆ๋ฏธ์Šค)
  โ–ก ๊ธด๊ธ‰๋„๋Š”? (์žฅ์•  ๊ฐ์ง€ vs ์ตœ์ ํ™”)
  โ–ก ๊ธฐ์กด ์Šคํƒ์€?

๐Ÿ—๏ธ 08ํŽธ: Istio ๋ชจ๋‹ˆํ„ฐ๋ง ํ†ตํ•ฉ

ํŒŒ์ผ: 08-Istio-๋ชจ๋‹ˆํ„ฐ๋ง-ํ†ตํ•ฉ

๋ณต์žก๋„ ํญ๋ฐœ

Istio๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ธฐ์กด ๋ชจ๋‹ˆํ„ฐ๋ง์ด ํญ๋ฐœํ•ฉ๋‹ˆ๋‹ค!

ํ•ต์‹ฌ ๋‚ด์šฉ:

  • 3๊ฐ€์ง€ ์ฃผ์š” ๋ฌธ์ œ
    1. ์™ธ๋ถ€ ํƒ€๊ฒŸ ์ ‘๊ทผ ๋ถˆ๊ฐ€
    2. Prometheus ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘ ๋ถˆ๊ฐ€
    3. Health Check ์‹คํŒจ๋กœ Pod ์žฌ์‹œ์ž‘
  • ServiceEntry, PeerAuthentication
  • ์‹ค๋ฌด ๊ถŒ์žฅ ํŒจํ„ด

ํ•ด๊ฒฐ ์š”์•ฝ:

๋ฌธ์ œ์›์ธํ•ด๊ฒฐ
์™ธ๋ถ€ ์ ‘๊ทผ ์•ˆ ๋จIstio ์™ธ๋ถ€ ์ฐจ๋‹จServiceEntry ๋˜๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค Istio ์ œ์™ธ
๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘ ์•ˆ ๋จmTLS ์ธ์ฆ ์‹คํŒจ๋„ค์ž„์ŠคํŽ˜์ด์Šค Istio ์ œ์™ธ (๊ถŒ์žฅ)
Pod ์žฌ์‹œ์ž‘ ๋ฐ˜๋ณตHealth check ์‹คํŒจProbe ์„ค์ • ์ˆ˜์ • ๋˜๋Š” Istio ์ œ์™ธ

๐Ÿš€ 09ํŽธ: ๋ชจ๋‹ˆํ„ฐ๋ง ์Šคํƒ ์„ค์น˜ ์ˆœ์„œ

ํŒŒ์ผ: 09-๋ชจ๋‹ˆํ„ฐ๋ง-์Šคํƒ-์„ค์น˜-์ˆœ์„œ

ํ•ต์‹ฌ ์›์น™

์™ธ์šฐ์ง€ ๋ง๊ณ  โ€œ๋ ˆ์ด์–ดโ€๋กœ ์ดํ•ดํ•˜๋ผ

ํ•ต์‹ฌ ๋‚ด์šฉ:

  • ๋ ˆ์ด์–ด ๊ตฌ์กฐ (K8s โ†’ Istio โ†’ Prometheus โ†’ Kiali)
  • ์™œ ์ด ์ˆœ์„œ์ธ๊ฐ€?
  • ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ดํ•ด
  • ConfigMap ์ˆ˜์ •์ด ํ•„์š”ํ•œ ์ด์œ 

์„ค์น˜ ์›์น™:

์•„๋ž˜์—์„œ ์œ„๋กœ:
  Layer 1: Kubernetes (๊ธฐ๋ฐ˜)
  Layer 2: Istio (๋ฉ”ํŠธ๋ฆญ ์ƒ์„ฑ)
  Layer 3: Prometheus (๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘)
  Layer 4: Kiali (์‹œ๊ฐํ™”)
 
์›์น™:
  ๋ฐ์ดํ„ฐ ์ƒ์„ฑ โ†’ ์ˆ˜์ง‘ โ†’ ์ €์žฅ โ†’ ์‹œ๊ฐํ™”

๐ŸŽฏ ํ•™์Šต ์ˆœ์„œ ์ถ”์ฒœ

์ดˆ๊ธ‰ (1์ฃผ์ฐจ)

๊ธฐ๋ณธ ์ดํ•ด:
  - [ ] [[01-Exporter-๊ฐœ๋…]] - Exporter๊ฐ€ ๋ญ์ง€?
  - [ ] [[02-Exporter-์‚ฌ์šฉ-์‹œ๋‚˜๋ฆฌ์˜ค]] - ์–ธ์ œ ํ•„์š”ํ•ด?
  - [ ] [[03-๊ด€์ธก์„ฑ-3๋Œ€-์ถ•]] - ์ „์ฒด ๊ทธ๋ฆผ ์ดํ•ด

์ค‘๊ธ‰ (2-3์ฃผ์ฐจ)

์‹ค๋ฌด ์ ์šฉ:
  - [ ] [[07-4-Golden-Signals]] - ๋ฌด์—‡์„ ์ธก์ •?
  - [ ] [[04-Prometheus-Blackbox-Exporter]] - ์™ธ๋ถ€ ๋ชจ๋‹ˆํ„ฐ๋ง
  - [ ] [[06-๋ชจ๋‹ˆํ„ฐ๋ง-ํŠธ๋ ˆ์ด๋“œ์˜คํ”„]] - ์–ธ์ œ ๋„์ž…?

๊ณ ๊ธ‰ (4์ฃผ์ฐจ+)

๋ณต์žกํ•œ ํ™˜๊ฒฝ:
  - [ ] [[08-Istio-๋ชจ๋‹ˆํ„ฐ๋ง-ํ†ตํ•ฉ]] - Istio ๋ฌธ์ œ ํ•ด๊ฒฐ
  - [ ] [[09-๋ชจ๋‹ˆํ„ฐ๋ง-์Šคํƒ-์„ค์น˜-์ˆœ์„œ]] - ์•„ํ‚คํ…์ฒ˜ ์ดํ•ด

๐Ÿ”— ์—ฐ๊ด€ ๋ฌธ์„œ

๐Ÿ“š ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์‹œ๋ฆฌ์ฆˆ ์—ฐ๊ด€์„ฑ

๊ธฐ๋ฐ˜ ์ง€์‹:
  - [[../00_ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค_์‹œ๋ฆฌ์ฆˆ_๋ชฉ์ฐจ]] - ์ „์ฒด ๋ชฉ์ฐจ
  - [[../01_ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค_๊ธฐ์ดˆ_๊ฐœ๋…_์™„๋ฒฝ_์ •๋ฆฌ]] - ๊ธฐ์ดˆ ๊ฐœ๋…
  - [[../02_๋ชจ๋‹ˆํ„ฐ๋ง_ํŒŒ์ดํ”„๋ผ์ธ_์™„๋ฒฝ_์ดํ•ด]] - ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์กฐ
 
PromQL ํ•™์Šต:
  - [[../07_PromQL_๋ฉ”ํŠธ๋ฆญ_ํƒ€์ž…_์™„๋ฒฝ_๊ฐ€์ด๋“œ]] - ๋ฉ”ํŠธ๋ฆญ ํƒ€์ž…
  - [[../08_PromQL_๋ ˆ์ด๋ธ”_๋งค์ฒ˜_์™„๋ฒฝ_๊ฐ€์ด๋“œ]] - ๋ ˆ์ด๋ธ” ๋งค์นญ
  - [[../09_PromQL_ํ•ต์‹ฌ_๊ฐœ๋…_์ •๋ฆฌ]] - PromQL ์ฟผ๋ฆฌ

๐Ÿ“… ์ž‘์„ฑ์ผ: 2025๋…„ 12์›” 9์ผ ๐Ÿ“– ์ด ํ•™์Šต ์‹œ๊ฐ„: ์•ฝ 3-4์‹œ๊ฐ„ (์ง‘์ค‘ ํ•™์Šต ๊ธฐ์ค€) ๐ŸŽฏ ์™„๋ฃŒ ํ›„ ์ˆ˜์ค€: Exporter ๊ฐœ๋…๋ถ€ํ„ฐ Istio ํ†ตํ•ฉ๊นŒ์ง€ ์‹ค๋ฌด ์ ์šฉ ๊ฐ€๋Šฅ