SLI SLO - 100-hours-a-week/KTB4-10th-Cloud GitHub Wiki
- SLI(Service Level Indicator)
- ์๋น์ค๊ฐ ์ฌ์ฉ์์๊ฒ ์ค์ํ ๊ธฐ๋ฅ์ ์ผ๋ง๋ ์ ์ ๊ณตํ๊ณ ์๋์ง ํ์ธํ๊ธฐ ์ํ ์งํ
- ๋ชจ๋ ์์คํ ๋ฉํธ๋ฆญ์ SLI๋ก ์ ์ ํ๋ ๊ฒ์ด ์๋๋ผ ์ฌ์ฉ์๊ฐ ์ค์ ๋ก ์ฒด๊ฐํ๋ ํต์ฌ ๊ธฐ๋ฅ์ ์ค์ฌ์ผ๋ก ์ ์
- ์น ์๋น์ค์์ ์ผ๋ฐ์ ์ผ๋ก ์ค์ํ๊ฒ ๋ณด๋ ํญ๋ชฉ
- ๊ฐ์ฉ์ฑ
- Latency
- ์์ฒญ ์ฑ๊ณต๋ฅ
- ์ฐ๋ฆฌ ์๋น์ค์์๋ ์ผ๋ฐ์ ์ธ ์น ์๋น์ค ๊ธฐ๋ฅ ์ธ์ ๊ฐ์ด๋๋ถ ์์ฑ์ด ํต์ฌ ๊ธฐ๋ฅ์ด๋ฏ๋ก ๋ณ๋์ SLI ํ์
- SLO(Service Level Objective)
- ์ ์ ํ SLI์ ๋ํด ์ฐ๋ฆฌ๊ฐ ๋ชฉํ๋ก ํ๋ ์๋น์ค ์์ค
- ํ์ฌ๋ ์ค์ ์ด์ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ธฐํ ๋จ๊ณ
- ๊ณต๊ฐ๋ SLA ๋ฐ ๋ฒค์น๋งํฌ ์๋ฃ๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๊ธฐ SLO ์ค์ ์ ์ฐธ๊ณ
- ์๋น์ค ํน์ฑ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ๊ฐ์ ์ด๊ธฐ ๋ชฉํ๋ฅผ ์ค์ ํ๊ฑฐ๋ ์ฐ์ ์ธก์ ๋์์ผ๋ก ์ง์
- ์ดํ ๋ถํํ ์คํธ ๋ฐ ์ค์ ์ด์ ๋ฐ์ดํฐ๋ฅผ ํตํด SLO ์์
SLI ์ ์
โ ์ด๋ค ์ฌ์ฉ์ ๊ฒฝํ์ ์ค์ํ๊ฒ ๋ณผ ๊ฒ์ธ์ง ๊ฒฐ์
SLO ์ค์
โ ํ์ฌ ๊ณต๊ฐ ์๋ฃ / ์๋น์ค ์๊ตฌ์ฌํญ์ ๊ธฐ์ค์ผ๋ก ์ด๊ธฐ ๋ชฉํ ์ค์
๋ถํํ ์คํธ ๋ฐ ์ด์
โ ์ค์ ์ธก์ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก SLO ์ฌ์กฐ์
- ์ด๊ธฐ ์๋น์ค ๋จ๊ณ
- ์๋์ ์ผ๋ก ๋ฎ์ ํธ๋ํฝ
- ๋น ๋ฅธ ๊ตฌ์ถ๊ณผ ์ด์ ๋จ์์ฑ์ ์ฐ์
- Frontend
- S3 + CloudFront
- Backend
- ๋จ์ผ EC2
- Spring Boot + MySQL Container
- AI
- ๋ณ๋ AI EC2
- ์ธ๋ถ LLM์ธ Claude Sonnet ์ฌ์ฉ
๊ฐ์ด๋๋ถ ์์ฑ ํ๋ฆ
- ์ฌ์ฉ์ โ ๋ฐฑ์๋ โ AI ์๋ฒ โ ํด๋ก๋ ์๋ท โ ๊ฐ์ด๋๋ถ ์์ฑ
- ๋จ์ผ EC2 ์ค์ฌ ๊ตฌ์กฐ์ด๋ฏ๋ก ๋์ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๊ตฌ์กฐ๋ ์๋
- ์์ง ์ค์ API Latency ๋ฐ ๊ฐ์ด๋๋ถ ์์ฑ ์ฑ๋ฅ ๋ฐ์ดํฐ๊ฐ ์์
- V1์์๋ ์ค์ ์๋น์ค ์์ค์ ์ธก์ ํ๊ณ V2์ ๊ธฐ์ค ๋ฐ์ดํฐ๋ฅผ ํ๋ณดํ๋ ๊ฒ๋ ์ค์
์๋น์ค ๋ณํ
- ์์ ํธ๋ํฝ ์ฆ๊ฐ
- ์ํ RPS ์ฝ 0.6 โ 44.3
- ์ฝ 70๋ฐฐ ์ฆ๊ฐ
- ๊ฒฐ์ ๊ธฐ๋ฅ ๋์
- DB ์ค์๋ ์ฆ๊ฐ
- ์ฌ์ฉ์ ๋ฐ ์ฅ์ ์ํฅ ๋ฒ์ ์ฆ๊ฐ
- ๊ฐ์ด๋๋ถ ์์ฑ ๋น๋๊ธฐ ์ฒ๋ฆฌ
- ์ธ๋ถ LLM ๋์ ์์ฒด ๋ชจ๋ธ ์ฌ์ฉ
- ์์ฒด ๋ชจ๋ธ ์ถ๋ก ์ ์ํ GPU Server ์ด์
๊ฐ์ด๋๋ถ ์์ฑ ๊ตฌ์กฐ
- ์ฌ์ฉ์ โ ๋ฐฑ์๋ โ ํ โ ์์ปค โ GPU ์๋ฒ โ ๊ฐ์ด๋๋ถ ์์ฑ
V1๋ณด๋ค
- ๋ ๋ง์ ์์ฒญ ์ฒ๋ฆฌ
- ํต์ฌ ๊ธฐ๋ฅ์ ์์ฒด ์ธํ๋ผ ์์กด๋ ์ฆ๊ฐ
- ๊ฒฐ์ ๋์ ์ ๋ฐ๋ฅธ ์ฅ์ ์ํฅ ์ฆ๊ฐ
- ์์ฒด GPU ์๋ฒ์ ์ฒ๋ฆฌ์ฉ๋ ์ง์ ๊ด๋ฆฌ ํ์
โ ๋ฐ๋ผ์ V1์์ ์ธก์ ํ SLI๋ฅผ ๊ธฐ์ค์ผ๋ก V2์์ ํ์ํ SLO๋ฅผ ์ฌ๊ฒํ
- ์๋น์ค ๋ฐ API๊ฐ ์ ์์ ์ผ๋ก ์๋ตํด์ผ ํจ
โ ๊ฐ์ฉ์ฑ
- ๋ก๊ทธ์ธ
- ์กฐํ
- ์ ์ฅ
- ๊ฐ์ด๋๋ถ ๋ชฉ๋ก ์กฐํ ๋ฑ ์ผ๋ฐ API
โ API Latency
์ผ๋ฐ API๊ฐ ์ ์์ด์ด๋
- AI ์ฒ๋ฆฌ ์คํจ โ ๊ฐ์ด๋๋ถ ์์ฑ ์คํจ ๊ฐ๋ฅ์ฑ ์กด์ฌ
โ ๊ฐ์ด๋๋ถ ์์ฑ ์ฑ๊ณต๋ฅ
๊ฐ์ด๋๋ถ ์์ฑ์ ์ผ๋ฐ API๋ณด๋ค ์ฒ๋ฆฌ์๊ฐ์ด ๊ธด ์์
โ ๊ฐ์ด๋๋ถ ์์ฑ์๊ฐ
๋ฐ๋ผ์ ์ฃผ์ SLI๋ ๋ค์ 4๊ฐ์ง
- ์๋น์ค ๊ฐ์ฉ์ฑ
- ์ผ๋ฐ API Latency
- ๊ฐ์ด๋๋ถ ์์ฑ ์ฑ๊ณต๋ฅ
- ๊ฐ์ด๋๋ถ ์์ฑ์๊ฐ
์ฌ์ฉ์๊ฐ ์๋น์ค๋ฅผ ํ์ํ ๋ ์ ์์ ์ผ๋ก ์ด์ฉํ ์ ์๋์ง ํ์ธ
-
๊ฐ์ฉ์ฑ = ์ ์ ์ฒ๋ฆฌ๋ ์ ํจ ์์ฒญ / ์ ์ฒด ์ ํจ ์์ฒญ ร 100
(AWS์์๋ ๊ฐ์ฉ์ฑ์ ๋ํ์ ์ธ ์ ๋ขฐ์ฑ ์งํ๋ก ์ ์ํ๋ฉฐ ์์ ๊ณ์ฐ์ ์ ์)
- ์๋น์ค ๋ด๋ถ ๋ฌธ์ ๋ก ์คํจํ ์์ฒญ์ ์คํจ๋ก ํ๋จ
- ์๋ชป๋ ์ฌ์ฉ์ ์ ๋ ฅ ๋ฑ ์๋น์ค ์ฅ์ ์ ๊ด๊ณ์๋ ์์ฒญ์ ๋ณ๋ ๊ตฌ๋ถ
-
์ฌ์ฉํ๋ ์ํคํ ์ฒ์ SLA ๊ธฐ๋ฐ ๊ณ์ฐ
- Frontend: CloudFront(99.9%) ร S3(99.9%) = 99.8001%
- ์ผ๋ฐ API: CloudFront(99.9%) ร Single EC2(99.5%) = 99.4005%
- ๊ฐ์ด๋๋ถ ์์ฑ: CloudFront(99.9%) ร Backend EC2(99.5%) ร AI EC2(99.5%) = 98.9035%
โ SLA ๊ธฐ๋ฐ ์ ์ฒด ์๋น์ค ๊ฐ์ฉ์ฑ = 98.80%
์ฌ์ฉ์๊ฐ ์ผ๋ฐ์ ์ธ ์๋น์ค ๊ธฐ๋ฅ์ ์ฌ์ฉํ ๋ ์ถฉ๋ถํ ๋น ๋ฅธ ์๋ต์ ๋ฐ์ ์ ์๋์ง ํ์ธ
- API End-to-End Latency
- p95 ๊ธฐ์ค
p50 โ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๋ณด์ฌ์ค โ ๋๋ฆฐ ์ผ๋ถ ์์ฒญ์ ๊ฑฐ์ ๋ฐ์ํ์ง ๋ชปํจ
p95 โ ์ ์ฒด ์์ฒญ์ ๋๋ถ๋ถ(95%)์ ํฌํจ โ ๋๋ฆฐ ์์ฒญ๋ ์ด๋ ์ ๋ ๋ฐ์ โ ์ด๊ธฐ ์๋น์ค์ ๋ํ latency ์งํ๋ก ์ฌ์ฉํ๊ธฐ ์ ์
p99 โ ๊ทน๋จ์ ์ธ tail latency ํ์ธ์ ์ ์ฉ โ ์์ 1%์ ์ด์์น๋ ์ผ์์ ์ธ ์ง์ฐ์ ๋ ๋ฏผ๊ฐ
p95 โ ์ ์ฒด ์์ฒญ์ 95%๊ฐ ๋ช ms ์ด๋ด ์๋ตํ๋์ง?
- ํ๊ท ์๋ต์๊ฐ์ ๊ฒฝ์ฐ ์ผ๋ถ ๋๋ฆฐ ์์ฒญ์ ๋ํ ์ฌ์ฉ์ ๊ฒฝํ์ ํ์ธํ๊ธฐ ์ด๋ ค์ฐ๋ฏ๋ก p95๋ฅผ ๋ํ SLI๋ก ์ฌ์ฉ
- ๊ฐ์ด๋๋ถ ์์ฑ์ ์ฅ์๊ฐ AI ์ฒ๋ฆฌ๊ฐ ํฌํจ๋๋ฏ๋ก ์ผ๋ฐ API Latency์์ ์ ์ธ
์๋น์ค์ ํต์ฌ ๊ธฐ๋ฅ์ธ ๊ฐ์ด๋๋ถ ์์ฑ์ด ์ค์ ๋ก ์ ์ ์๋ฃ๋๋์ง ํ์ธ
๊ฐ์ด๋๋ถ ์์ฑ ์ฑ๊ณต๋ฅ
= ์ ์ ์๋ฃ๋ ๊ฐ์ด๋๋ถ ์์ฑ ์์ฒญ / ์ ์ฒด ์ ํจ ์์ฑ ์์ฒญ ร 100
HTTP ์์ฒญ ์ฑ๊ณต ์ฌ๋ถ๊ฐ ์๋๋ผ
โ ์ฌ์ฉ์๊ฐ ์ค์ ๊ฐ์ด๋๋ถ์ ์ฌ์ฉํ ์ ์๋ ์ํ๊น์ง ์๋ฃ๋์๋์ง ๊ธฐ์ค์ผ๋ก ํ๋จ
์ฌ์ฉ์๊ฐ ์์ฑ ์์ฒญ ํ ์ค์ ๊ฐ์ด๋๋ถ์ ์ฌ์ฉํ ์ ์๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ ํ์ธ
๊ฐ์ด๋๋ถ ์์ฑ ์์ฒญโ๊ฐ์ด๋๋ถ ์ฌ์ฉ ๊ฐ๋ฅ ๊น์ง์ End-to-End p95 ์์ฑ์๊ฐ
V1
AI EC2 ์ฒ๋ฆฌ์๊ฐ
- Claude Sonnet ์๋ต์๊ฐ
- ํ์ฒ๋ฆฌ์๊ฐ
V2
Queue ๋๊ธฐ์๊ฐ
- Worker ์ฒ๋ฆฌ์๊ฐ
- GPU ์ถ๋ก ์๊ฐ
- ํ์ฒ๋ฆฌ์๊ฐ
์ฌ์ฉ์ ์ ์ฅ์์๋ ๋ด๋ถ ์ฒ๋ฆฌ ๋ฐฉ์์ด ์๋ ์ต์ข ์ ์ผ๋ก ๊ฐ์ด๋๋ถ์ ๋ฐ๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์ค์ํ๋ฏ๋ก End-to-End ๊ธฐ์ค์ผ๋ก ์ธก์
AWS์์๋ ์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ฉ์ฑ ์ค๊ณ ๋ชฉํ์ ์์
| ๊ฐ์ฉ์ฑ | ์ฐ๊ฐ ์ต๋ ๋น๊ฐ์ฉ ์๊ฐ | ์์ |
|---|---|---|
| 99% | ์ฝ 3์ผ 15์๊ฐ | ๋ฐฐ์น ์ฒ๋ฆฌ |
| 99.9% | ์ฝ 8์๊ฐ 45๋ถ | ๋ด๋ถ ๋๊ตฌ |
| 99.95% | ์ฝ 4์๊ฐ 22๋ถ | ์จ๋ผ์ธ ์๊ฑฐ๋ / POS |
| 99.99% | ์ฝ 52๋ถ | ๋น๋์ค ์ ์ก ๋ฑ |
-
v1
- ์ค๊ณ์์ 90%๋ฅผ ๋ชฉํ๋ก ์ผ๊ณ , ๋น ๋ฅธ ๊ฐ๋ฐ์ ์ฐ์ ์์์ ๋
โ 90% ์ด์ ๋ชฉํ
-
V2
- ์ฌ์ฉ์ ์ฆ๊ฐ
- ๊ฒฐ์ ๊ธฐ๋ฅ ๋์
- DB ์ค์๋ ์ฆ๊ฐ
- ์ฅ์ ๋ฐ์ ์ ์ํฅ ์ฆ๊ฐ
-
AWS์์๋ Online Commerce / POS์ ๊ฐ์ฉ์ฑ ์ค๊ณ ๋ชฉํ ์์๋ก 99.95%๋ฅผ ์ ์์๋น์ค ๊ฐ์ฉ์ฑ โฅ 99.95% ****๋ฅผ ์ด๊ธฐ ๋ชฉํ๋ก ์ํฅ ๊ฒํ
https://sre.google/workbook/implementing-slos/?utm_source=chatgpt.com
https://sre.google/workbook/slo-document/?utm_source=chatgpt.com
- Google SRE์์๋ Request-driven Service์ ๋ํ์ ์ธ SLO๋ก Availability์ Latency๋ฅผ ์ ์
- Latency SLO๋ ๋จ์ ํ๊ท ์๋ต์๊ฐ์ด ์๋๋ผ
- ์ผ์ ๋น์จ์ ์์ฒญ์ด ์ ํด์ง ์๋ต์๊ฐ ์์ ์๋ฃ๋๋๊ฐ ํํ๋ก ์ค์
Google SRE Workbook์ Interactive Request ์์
- 90% ์์ฒญ < 100ms
- 99% ์์ฒญ < 400ms
Google SRE์ HTTP Server SLO ์์
- 90% ์์ฒญ < 200ms
- 99% ์์ฒญ < 1,000ms
๊ฒฐ๋ก
- ๋๋ถ๋ถ์ ์์ฒญ โ ์ฝ 100~200ms
- Tail Request โ ์ฝ 400~1,000ms
- V1์ SLO๋ ๋๋ถ๋ถ์ ์์ฒญ 200ms / tail 1000ms ๋ก ์ ์
| Request Class | Availability |
|---|---|
| CRITICAL | 99.99% |
| HIGH_FAST | 99.9% |
| HIGH_SLOW | 99.9% |
| LOW | 99% |
-
Google SRE์ ์์ฒญ๋ง๋ค์ ๊ฐ์ฉ์ฑ ๊ตฌ๋ถ์ฌ๋ก ์ฐธ๊ณ
-
์ฐ๋ฆฌ ์๋น์ค ๊ฐ์ด๋๋ถ์ ๊ฒฝ์ฐ ์ค์๋๋ ํฌ์ง๋ง ์ฆ๊ฐ์ ์ธ ์๋ต์ด ํ์ํ์ง๋ ์์
โ HIGH_SLOW โ 99.9%๋ก ์ค์