API Gateway에서 SLA
SLA는 Service Layer Agreement로 서비스 수준에 대한 약속을 의미합니다.
예를들어 "해당 API는 얼마나 안정적으로 빠르게, 예측 가능하게 작동하나요?"와 같이 개별 API 요청에 대해 속도, 성공률, 호출 제한 등 세부적인 기준을 설정하는 것입니다.
API Gateway SLA 예시
예를 들어, /payment라는 API를 제공하는 서버를 운영하는 경우, 클라이언트에게 아래와 같은 약속(SLA)을 합니다.
항목 | 약속 내용 |
응답 속도 | 1초 이내에 응답 보장 |
호출 제한 | 초당 10번까지만 호출 가능 |
가용성 | 월 99.9% 시간 동안 정상 동작 |
즉, 해당 약속을 api gateway가 대신 지켜주는 역할을 하는 것입니다.
API Gateway에서 SLA를 관리하는 기능
API Gateway에서는 SLA를 지키기 위해서 아래와 같은 기능들을 제공합니다.
Rate Limiting
너무 많은 요청이 들어오지 않도록 제한하는 기능입니다.
예를 들어, 초당 10건, 하루 1000건 이상은 429 Too Many Requests 응답해주는 방식이 있습니다.
Spring Cloud Gateway에서는 Redis를 활용해 분산 환경에서도 동작 가능합니다.
Circuit Breaker
특정 API가 계속 실패하는 경우 자동으로 차단해주는 역할을 합니다.
즉, 서버가 과부하가 되지 않도록 보호해주는 역할을 합니다.
Hystrix, Resilience4j와 통합 가능합니다.
Timeout & Retry
응답 시간이 느린 API는 자동으로 취소해주고, 일시적인 오류가 나는 API는 자동으로 재시도를 해줍니다.
사용자 경험 향상과 백엔드를 보호하는 역할을 합니다.
Fallback
API가 실패했을 때 대체되는 응답을 주도록 설정하는 방법입니다.
사용자 입장에서는 ‘무응답’보다 훨씬 좋은 UX를 보장합니다.
Spring Cloud Gateway RateLimit 설정 예시
아래의 설정은 Redis를 이용해 초당 10건의 요청을 허용하고, 최대 20건의 버퍼링이 가능하도록 만든 예시입니다.
spring:
cloud:
gateway:
routes:
- id: payment-api
uri: http://localhost:8081
predicates:
- Path=/api/v1/payments/**
filters:
- name: RequestRateLimiter
args:
redis-rate-limiter.replenishRate: 10
redis-rate-limiter.burstCapacity: 20
- replenishRate: 초당 10개의 요청을 허용하도록 설정합니다.
- burstCapacity: 최대 20개의 요청을 허용하도록 설정합니다.
SLA 모니터링: Prometheus + Grafana로 시각화
API SLA는 설정도 중요하지만, 지속적인 모니터링과 위반 감지가 핵심입니다.
- 5xx 오류율: API 안정성 확인
- 평균 응답 시간: SLA 속도 기준 준수 여부
- 429 Too Many Requests: Rate Limit 초과 비율 확인
Spring Actuator와 Prometheus Exporter를 활용하여 지표 수집 후, Grafana로 시각화합니다.
요금제별 SLA 차등 적용
SaaS 서비스나 외부 API 제공 시스템에서는 요금제에 따라 SLA 기준이 달라질 수 있습니다.
요금제요청 제한Circuit BreakerFallback
요금제 | 요청 제한 | Circuit Breaker | Fallback |
Basic | 초당 5건 | 사용 안함 | 사용 |
Pro | 초당 100건 | 사용함 | 미사용 |
실무에서 SLA가 중요한 이유
B2B 환경, 특히 대기업이나 금융기관과 같은 고객에게 API를 제공할 때, SLA는 단순한 기술 설정이 아니라 법적 계약의 일부로 다뤄집니다. 예를 들어,SLA 위반 시 금전적 보상을 요구받는 조항이 포함되기도 하고, 장애 발생 시 책임 소재를 가리기 위한 근거 자료로 SLA 로그가 활용되며,SLA를 지키지 못할 경우 서비스 신뢰도에 치명적인 영향을 줄 수 있습니다.
즉, 실무에서는 SLA가 단지 권장사항이 아니라, 반드시 지켜야 할 기준이 됩니다.
정리
APi Gateway는 단순한 라우터가 아니라, SLA를 보장하고, 모니터링하며, 위반 시 자동 대응까지 해주는 SLA 보호막 역할을 한다고 볼 수 있습니다. 설정 → 제어 → 모니터링 → 대응까지 전 과정을 자동화함으로써 신뢰받는 API 서비스를 구축할 수 있습니다.
SLA(Service Level Agreement)는 해당 API는 얼마나 빠르고 안정적으로 작동할지를 명확히 약속한 기준 또는 서비스 품질에 대한 공식적인 약속이라고도 합니다.