[Daily morning study] SRE(Site Reliability Engineering)์™€ SLO/SLI/SLA ๊ฐœ๋…

#daily morning study

Image


SRE๋ž€ ๋ฌด์—‡์ธ๊ฐ€

SRE(Site Reliability Engineering)๋Š” Google์ด 2003๋…„๋ถ€ํ„ฐ ๋„์ž…ํ•œ ์šด์˜ ๋ฐฉ์‹์œผ๋กœ, ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ์›์น™์„ ์ธํ”„๋ผ ์šด์˜์— ์ ์šฉํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค. ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” ๋‹จ์ˆœํ•˜๋‹ค. ์‹œ์Šคํ…œ์„ ์•ˆ์ •์ ์œผ๋กœ ์šด์˜ํ•˜๋Š” ์ผ ์ž์ฒด๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด ๋ฌธ์ œ๋กœ ๋ฐ”๋ผ๋ณด๊ณ , ์ˆ˜๋™ ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜๋ฉฐ ์žฅ์• ๋ฅผ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

์ „ํ†ต์ ์ธ OpsํŒ€์ด โ€œ๋ณ€๊ฒฝ์€ ๊ณง ์œ„ํ—˜โ€์ด๋ผ๋Š” ๊ด€์ ์„ ๊ฐ€์ง„ ๋ฐ˜๋ฉด, SRE๋Š” ์ ์ ˆํ•œ ์ˆ˜์ค€์˜ ๋ถˆ์•ˆ์ •์„ฑ(unreliability)์„ ํ—ˆ์šฉํ•˜๋ฉด์„œ ๊ฐœ๋ฐœ ์†๋„์™€ ์•ˆ์ •์„ฑ์˜ ๊ท ํ˜•์„ ๋งž์ถ˜๋‹ค.


ํ•ต์‹ฌ ์ง€ํ‘œ: SLI, SLO, SLA

SLI (Service Level Indicator)

SLI๋Š” ์„œ๋น„์Šค ํ’ˆ์งˆ์„ ์ธก์ •ํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ์ง€ํ‘œ๋‹ค. ์‹ค์ œ๋กœ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฉ”ํŠธ๋ฆญ์ด๋‹ค.

  • ๊ฐ€์šฉ์„ฑ: (์„ฑ๊ณต ์‘๋‹ต ์ˆ˜) / (์ „์ฒด ์š”์ฒญ ์ˆ˜)
  • ์ง€์—ฐ ์‹œ๊ฐ„: ์š”์ฒญ์˜ 95%๊ฐ€ 300ms ์ด๋‚ด์— ์‘๋‹ต
  • ์ฒ˜๋ฆฌ๋Ÿ‰: ์ดˆ๋‹น ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ ์š”์ฒญ ์ˆ˜
  • ์—๋Ÿฌ์œจ: ์ „์ฒด ์š”์ฒญ ๋Œ€๋น„ 5xx ์‘๋‹ต ๋น„์œจ
SLI = ์ง€๋‚œ 30์ผ๊ฐ„ ์„ฑ๊ณต ์‘๋‹ต / ์ „์ฒด ์š”์ฒญ
    = 999,500 / 1,000,000
    = 99.95%

SLO (Service Level Objective)

SLO๋Š” SLI์— ๋Œ€ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ชฉํ‘œ์น˜๋‹ค. ํŒ€์ด ๋‹ฌ์„ฑํ•˜๋ ค๋Š” ์‹ ๋ขฐ์„ฑ ๊ธฐ์ค€์ด๋‹ค.

SLO: ๊ฐ€์šฉ์„ฑ 99.9% (์›”๊ฐ„ ๊ธฐ์ค€)
     โ†’ ํ—ˆ์šฉ ๋‹ค์šดํƒ€์ž„: ์•ฝ 43.8๋ถ„/์›”

SLO: p99 ์ง€์—ฐ ์‹œ๊ฐ„ < 500ms
     โ†’ 99%์˜ ์š”์ฒญ์ด 500ms ์ด๋‚ด ์‘๋‹ต

SLO๋Š” ์™ธ๋ถ€์— ๊ณต๊ฐœ๋˜์ง€ ์•Š๋Š” ๋‚ด๋ถ€ ๋ชฉํ‘œ์ด๋ฉฐ, SLA๋ณด๋‹ค ์—„๊ฒฉํ•˜๊ฒŒ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค. ์‹ค์ œ ์„ฑ๋Šฅ์ด SLO๋ฅผ ์œ„ํ˜‘ํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฒฝ๋ณด๋ฅผ ์šธ๋ฆด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

SLA (Service Level Agreement)

SLA๋Š” ์„œ๋น„์Šค ์ œ๊ณต์ž์™€ ๊ณ ๊ฐ ์‚ฌ์ด์˜ ๊ณ„์•ฝ์ด๋‹ค. SLO๋ฅผ ์œ„๋ฐ˜ํ–ˆ์„ ๋•Œ ๊ธˆ์ „์  ๋ณด์ƒ, ํฌ๋ ˆ๋”ง ์ง€๊ธ‰ ๋“ฑ์˜ ํŽ˜๋„ํ‹ฐ๊ฐ€ ๋”ฐ๋ฅธ๋‹ค.

SLA: ์›”๊ฐ„ ๊ฐ€์šฉ์„ฑ 99.5% ๋ณด์žฅ
     โ†’ ๋ฏธ๋‹ฌ ์‹œ ์„œ๋น„์Šค ํฌ๋ ˆ๋”ง ํ™˜๊ธ‰
๊ตฌ๋ถ„๋Œ€์ƒ์œ„๋ฐ˜ ๊ฒฐ๊ณผ
SLI๋‚ด๋ถ€ ์ธก์ • ์ง€ํ‘œโ€”
SLO๋‚ด๋ถ€ ๋ชฉํ‘œ์—”์ง€๋‹ˆ์–ด๋ง ๋Œ€์‘
SLA์™ธ๋ถ€ ๊ณ„์•ฝ๊ธˆ์ „์  ํŽ˜๋„ํ‹ฐ

Error Budget (์—๋Ÿฌ ์˜ˆ์‚ฐ)

Error Budget์€ SRE์˜ ํ•ต์‹ฌ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜๋‹ค. SLO๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ์žฅ์•  ์‹œ๊ฐ„ ๋˜๋Š” ์˜ค๋ฅ˜๋Ÿ‰์„ ์ˆ˜์น˜ํ™”ํ•œ ๊ฒƒ์ด๋‹ค.

SLO = 99.9%๋ผ๋ฉด
Error Budget = 100% - 99.9% = 0.1%

30์ผ ๊ธฐ์ค€:
  = 30์ผ ร— 24์‹œ๊ฐ„ ร— 60๋ถ„ ร— 0.001
  = 43.2๋ถ„

์—๋Ÿฌ ์˜ˆ์‚ฐ์ด ๋‚จ์•„ ์žˆ์œผ๋ฉด ๊ฐœ๋ฐœํŒ€์€ ์ƒˆ ๊ธฐ๋Šฅ ๋ฐฐํฌ, ์‹คํ—˜ ๋“ฑ์„ ์ž์œ ๋กญ๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋ฉด ์—๋Ÿฌ ์˜ˆ์‚ฐ์ด ์†Œ์ง„๋˜๋ฉด ์•ˆ์ •ํ™” ์ž‘์—…์— ์ง‘์ค‘ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœํŒ€๊ณผ ์šด์˜ํŒ€ ์‚ฌ์ด์˜ ๊ธด์žฅ์„ ์กฐ์œจํ•˜๋Š” ๊ณตํ†ต ๊ธฐ์ค€์ด ๋œ๋‹ค.

Error Budget ์ •์ฑ… ์˜ˆ์‹œ

์—๋Ÿฌ ์˜ˆ์‚ฐ 75% ์ด์ƒ ์ž”์—ฌ:  โ†’ ์ƒˆ ๊ธฐ๋Šฅ ๋ฐฐํฌ ์ž์œ ๋กญ๊ฒŒ ์ง„ํ–‰
์—๋Ÿฌ ์˜ˆ์‚ฐ 25~75% ์ž”์—ฌ:    โ†’ ๋ฐฐํฌ ์ „ ๋ฆฌ๋ทฐ ๊ฐ•ํ™”
์—๋Ÿฌ ์˜ˆ์‚ฐ 25% ๋ฏธ๋งŒ ์ž”์—ฌ:  โ†’ ์•ˆ์ •ํ™” ์Šคํ”„๋ฆฐํŠธ ์ „ํ™˜, ๋ฐฐํฌ ๋™๊ฒฐ
์—๋Ÿฌ ์˜ˆ์‚ฐ ์†Œ์ง„:            โ†’ ํฌ์ŠคํŠธ๋ชจํ…€ ํ•„์ˆ˜, ์žฌ๋ฐœ๋ฐฉ์ง€ ์šฐ์„ 

Toil (๋ฐ˜๋ณต ์ˆ˜๋™ ์ž‘์—…) ์ค„์ด๊ธฐ

SRE์˜ ์ค‘์š”ํ•œ ์›์น™ ์ค‘ ํ•˜๋‚˜๊ฐ€ Toil ์ตœ์†Œํ™”๋‹ค. Toil์€ ๋‹ค์Œ ํŠน์„ฑ์„ ๊ฐ€์ง„ ์šด์˜ ์ž‘์—…์ด๋‹ค.

  • ์ˆ˜๋™์œผ๋กœ ์ˆ˜ํ–‰๋œ๋‹ค
  • ๋ฐ˜๋ณต์ ์ด๊ณ  ์ž๋™ํ™” ๊ฐ€๋Šฅํ•˜๋‹ค
  • ๋น„์ฆˆ๋‹ˆ์Šค ๊ฐ€์น˜๋ฅผ ์ง์ ‘ ์ฐฝ์ถœํ•˜์ง€ ์•Š๋Š”๋‹ค
  • ์„œ๋น„์Šค ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์„ ํ˜•์ ์œผ๋กœ ๋Š˜์–ด๋‚œ๋‹ค

๋Œ€ํ‘œ์ ์ธ Toil ์˜ˆ์‹œ:

  • ๋งค๋ฒˆ ์ˆ˜๋™์œผ๋กœ ์„œ๋ฒ„์— SSH ์ ‘์†ํ•ด์„œ ๋กœ๊ทธ ํ™•์ธ
  • ๋ฐฐํฌ๋งˆ๋‹ค ์‚ฌ๋žŒ์ด ์ง์ ‘ ํ—ฌ์Šค์ฒดํฌ ์ˆ˜ํ–‰
  • ์•Œ๋žŒ์ด ์šธ๋ฆด ๋•Œ๋งˆ๋‹ค ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์žฌ์‹œ์ž‘

SRE ํŒ€์€ ์ „์ฒด ์‹œ๊ฐ„์˜ 50% ์ด์ƒ์„ Toil์— ์“ฐ์ง€ ์•Š๋„๋ก ํ•œ๋‹ค. ์ด๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด Toil ์ œ๊ฑฐ๋ฅผ ์ตœ์šฐ์„  ๊ณผ์ œ๋กœ ์‚ผ๋Š”๋‹ค.


์•Œ๋žŒ ์„ค๊ณ„: Alerting on SLOs

SLO ๊ธฐ๋ฐ˜ ์•Œ๋žŒ ์„ค๊ณ„๋Š” ๋‹จ์ˆœํžˆ ์ž„๊ณ„๊ฐ’์„ ์ดˆ๊ณผํ–ˆ์„ ๋•Œ ์•Œ๋ฆผ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฅด๋‹ค. ์—๋Ÿฌ ์˜ˆ์‚ฐ ์†Œ์ง„ ์†๋„(Burn Rate)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์•Œ๋žŒ์„ ์„ค๊ณ„ํ•œ๋‹ค.

Burn Rate = ํ˜„์žฌ ์—๋Ÿฌ์œจ / SLO ์—๋Ÿฌ์œจ

SLO = 99.9% โ†’ ํ—ˆ์šฉ ์—๋Ÿฌ์œจ = 0.1%
ํ˜„์žฌ ์—๋Ÿฌ์œจ = 1%

Burn Rate = 1% / 0.1% = 10๋ฐฐ
โ†’ ์—๋Ÿฌ ์˜ˆ์‚ฐ์ด ์ •์ƒ ์†๋„์˜ 10๋ฐฐ๋กœ ์†Œ์ง„ ์ค‘
โ†’ 4.32๋ถ„(43.2๋ถ„ รท 10) ๋งŒ์— ์˜ˆ์‚ฐ ์†Œ์ง„

Burn Rate๊ฐ€ ๋†’์„์ˆ˜๋ก ์ฆ‰๊ฐ์ ์ธ ๋Œ€์‘์ด ํ•„์š”ํ•˜๋‹ค. ๋„ˆ๋ฌด ๋‚ฎ์€ ์ž„๊ณ„๊ฐ’์€ Alert Fatigue(์•Œ๋žŒ ํ”ผ๋กœ)๋ฅผ ์œ ๋ฐœํ•˜๋ฏ€๋กœ, ์‹ค์ œ๋กœ ๋Œ€์‘์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์—๋งŒ ์•Œ๋žŒ์„ ๋ณด๋‚ด๋„๋ก ์„ค๊ณ„ํ•œ๋‹ค.


Blameless Postmortem (๋ฌด๊ฒฐ ํฌ์ŠคํŠธ๋ชจํ…€)

์žฅ์•  ๋ฐœ์ƒ ํ›„ ํฌ์ŠคํŠธ๋ชจํ…€์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ SRE ๋ฌธํ™”์˜ ํ•ต์‹ฌ์ด๋‹ค. ์ค‘์š”ํ•œ ์›์น™์€ ๋น„๋‚œ ์—†์ด(blameless) ์ง„ํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ฐœ์ธ์˜ ์‹ค์ˆ˜๋ฅผ ํƒ“ํ•˜๋Š” ๋Œ€์‹ , ์‹œ์Šคํ…œ์ด ์™œ ๊ทธ๋Ÿฐ ์ƒํ™ฉ์„ ํ—ˆ์šฉํ–ˆ๋Š”์ง€ ๊ตฌ์กฐ์  ์›์ธ์„ ์ฐพ๋Š”๋‹ค. โ€œA๊ฐ€ ์„ค์ • ํŒŒ์ผ์„ ์ž˜๋ชป ์˜ฌ๋ ธ๋‹คโ€๊ฐ€ ์•„๋‹ˆ๋ผ โ€œ์„ค์ • ํŒŒ์ผ ๋ณ€๊ฒฝ์ด ์šด์˜ ํ™˜๊ฒฝ์— ๋ฐ”๋กœ ๋ฐ˜์˜๋  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ์  ํ—ˆ์ ์ด ์žˆ์—ˆ๋‹คโ€๊ณ  ๋ถ„์„ํ•œ๋‹ค.

ํฌ์ŠคํŠธ๋ชจํ…€ ๊ตฌ์„ฑ ์š”์†Œ:

1. ์š”์•ฝ: ์‚ฌ๊ณ  ๊ฐœ์š”, ์˜ํ–ฅ ๋ฒ”์œ„, ์ง€์† ์‹œ๊ฐ„
2. ํƒ€์ž„๋ผ์ธ: ๊ฐ์ง€ โ†’ ๋Œ€์‘ โ†’ ๋ณต๊ตฌ ๊ณผ์ • ์‹œ๊ฐ„์ˆœ ์ •๋ฆฌ
3. ๊ทผ๋ณธ ์›์ธ ๋ถ„์„ (RCA): 5 Why ๊ธฐ๋ฒ• ํ™œ์šฉ
4. ์žฌ๋ฐœ ๋ฐฉ์ง€ ์•ก์…˜ ์•„์ดํ…œ: ๋‹ด๋‹น์ž์™€ ๊ธฐํ•œ ๋ช…์‹œ
5. ํ•™์Šตํ•œ ๊ฒƒ๋“ค

SRE vs DevOps

SRE์™€ DevOps๋Š” ์ข…์ข… ํ˜ผ์šฉ๋˜์ง€๋งŒ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

ํ•ญ๋ชฉDevOpsSRE
์„ฑ๊ฒฉ๋ฌธํ™”/์ฒ ํ•™๊ตฌ์ฒด์  ๊ตฌํ˜„ ๋ฐฉ์‹
์ฃผ์š” ๊ด€์‹ฌ์‚ฌ๊ฐœ๋ฐœ-์šด์˜ ํ˜‘์—…์‹ ๋ขฐ์„ฑ ์ธก์ •๊ณผ ์ž๋™ํ™”
๋ฐฉ๋ฒ•๋ก ์œ ์—ฐํ•จ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜, ์ˆ˜์น˜ํ™”
๊ธฐ์›์ปค๋ฎค๋‹ˆํ‹ฐ ์ฃผ๋„Google ์ฃผ๋„

Google ์‹ ํ‘œํ˜„์œผ๋กœ๋Š” โ€œSRE๋Š” DevOps๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•โ€์ด๋‹ค.


์‹ค๋ฌด์—์„œ์˜ SRE ์ ์šฉ ํฌ์ธํŠธ

SLI ์„ ์ • ๊ธฐ์ค€

์‚ฌ์šฉ์ž ๊ฒฝํ—˜์— ์ง์ ‘ ์˜ํ–ฅ์„ ์ฃผ๋Š” ์ง€ํ‘œ๋ฅผ ๊ณ ๋ฅธ๋‹ค. ์„œ๋ฒ„ CPU ์‚ฌ์šฉ๋ฅ ๋ณด๋‹ค ์‘๋‹ต ์‹œ๊ฐ„์ด ๋” ์ข‹์€ SLI๋‹ค. ์ˆ˜์ง‘์ด ์–ด๋ ต์ง€ ์•Š๊ณ , ์˜๋ฏธ ์žˆ๋Š” ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

SLO ์„ค์ • ์‹œ ์ฃผ์˜์ 

  • ์ฒ˜์Œ๋ถ€ํ„ฐ ๋„ˆ๋ฌด ๋†’๊ฒŒ ์„ค์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค. 99.99%๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชฉํ‘œ๋กœ ํ•˜๋ฉด ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ํฌ๊ฒŒ ์ œ์•ฝ๋œ๋‹ค.
  • ํ˜„์žฌ ์‹ค์ œ ์„ฑ๋Šฅ์„ ์ธก์ •ํ•ด์„œ ํ˜„์‹ค์ ์ธ SLO๋ฅผ ๋จผ์ € ์„ค์ •ํ•˜๊ณ , ์ ์ง„์ ์œผ๋กœ ์˜ฌ๋ฆฐ๋‹ค.
  • SLA๋Š” SLO๋ณด๋‹ค 5~10% ๋‚ฎ๊ฒŒ ์„ค์ •ํ•ด์„œ ๋ฒ„ํผ๋ฅผ ํ™•๋ณดํ•œ๋‹ค.

๊ฐ€์šฉ์„ฑ๊ณผ ๋‹ค์šดํƒ€์ž„ ํ™˜์‚ฐ

๊ฐ€์šฉ์„ฑ์—ฐ๊ฐ„ ๋‹ค์šดํƒ€์ž„์›”๊ฐ„ ๋‹ค์šดํƒ€์ž„
99%3.65์ผ7.2์‹œ๊ฐ„
99.9%8.76์‹œ๊ฐ„43.8๋ถ„
99.99%52.6๋ถ„4.38๋ถ„
99.999%5.26๋ถ„26.3์ดˆ

์ •๋ฆฌ

  • SLI๋Š” ์ธก์ •ํ•˜๋Š” ๊ฒƒ, SLO๋Š” ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ๊ฒƒ, SLA๋Š” ๊ณ„์•ฝํ•˜๋Š” ๊ฒƒ
  • Error Budget์€ SLO๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ—ˆ์šฉ๋œ ์‹คํŒจ ์—ฌ์œ ๋Ÿ‰์ด๋ฉฐ, ๊ฐœ๋ฐœ๊ณผ ์•ˆ์ •์„ฑ์˜ ๊ท ํ˜• ๊ธฐ์ค€์ด ๋จ
  • Burn Rate ๊ธฐ๋ฐ˜ ์•Œ๋žŒ ์„ค๊ณ„๋กœ Alert Fatigue๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ
  • Toil์„ ์ •๋Ÿ‰ํ™”ํ•˜๊ณ  50% ์ดํ•˜๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด SRE์˜ ์‹ค์ฒœ ์›์น™
  • Blameless Postmortem์œผ๋กœ ์žฅ์• ๋ฅผ ํ•™์Šต ๊ธฐํšŒ๋กœ ๋งŒ๋“œ๋Š” ๋ฌธํ™”๊ฐ€ ํ•ต์‹ฌ