클라우드를 쓰면 비용이 눈에 안 보인다. 서버를 켜두고 잊어버리거나, 필요 이상으로 큰 인스턴스를 쓰거나, 아무도 안 쓰는 리소스가 돈을 먹고 있다.
FinOps는 클라우드 비용을 최적화하고 비용 대비 가치를 높이는 것이다. 단순히 비용을 줄이는 게 아니라 SLO를 지키면서 가장 저렴한 구성을 찾는 것이 목표다.
| 단계 | 설명 |
|---|---|
| Inform (알기) | 지금 뭐에 얼마 쓰고 있는지 파악한다 |
| Optimize (최적화) | 낭비를 줄이고 효율을 높인다 |
| Operate (운영) | 지속적으로 모니터링하고 개선한다 |
파악도 안 된 상태에서 최적화할 수 없다. Inform이 항상 먼저다. Operate가 마지막인 이유는 한 번 최적화하고 끝이 아니라 지속적으로 유지하고 반복하는 단계이기 때문이다.
| 패턴 | 설명 |
|---|---|
| 좀비 리소스 | 아무도 안 쓰는데 켜져 있는 서버, DB, IP |
| 오버 프로비저닝 | 실제 사용량보다 훨씬 큰 인스턴스 사용 |
| 개발 환경 방치 | 퇴근 후에도 꺼지지 않는 개발 서버 |
| 미사용 예약 인스턴스 | 할인받으려고 예약했는데 안 씀 |
Right-sizing
실제 사용량에 맞게 인스턴스 크기를 조정한다. CPU 10%만 쓰는데 최고 사양 인스턴스를 쓰고 있다면 낭비다.
인스턴스 종류별 비교
| 종류 | 특징 | 적합한 상황 |
|---|---|---|
| On-demand | 비싸지만 즉시 사용 가능 | 예측 불가능한 트래픽 |
| Reserved Instance | 1~3년 약정, 최대 70% 할인 | 사용량 예측 가능한 서비스 |
| Spot Instance | 저렴하지만 언제든 회수 가능 | 중단 가능한 배치 작업 |
Auto Scaling
트래픽이 없을 때 자동으로 줄이고, 필요할 때 늘린다. 24시간 최대 용량으로 켜두는 것보다 훨씬 효율적이다.
비용을 줄이면 Reliability가 낮아질 수 있다. 비용을 줄이면 항상 Reliability가 높아지는 게 아니다.
| 선택 | 비용 | Reliability |
|---|---|---|
| Spot Instance만 사용 | 낮음 | 낮음 |
| 단일 리전, 적정 용량 | 중간 | 중간 |
| 멀티 리전 배포 | 높음 | 높음 |
SRE 관점에서는 Error Budget 안에서 SLO를 지키면서 가장 저렴한 구성을 찾는 것이 목표다.
| 지표 | 설명 |
|---|---|
| Unit Economics | 요청 1건, 사용자 1명당 비용 |
| Cost per SLO | SLO 1% 개선에 드는 비용 |
| Utilization Rate | 프로비저닝 대비 실제 사용률 |
Unit Economics가 중요한 이유는 트래픽이 늘어도 1건당 비용이 유지되거나 줄어야 사업이 지속 가능하기 때문이다.
FinOps는 비용을 무조건 줄이는 게 아니다. Inform → Optimize → Operate 순서로 파악하고, 낭비를 제거하고, 지속적으로 관리하는 것이다. SLO를 지키면서 가장 효율적인 구성을 찾는 것이
SRE와 FinOps가 만나는 지점이다.