메뉴

문서정보

Service-Level agreement

SLA(Service-Level agrement)는 서비스 제공자와 고객사이에 이루어지는 계약을 담고 있는 문서로, 제공자가 충족해야 하는 서비스 수준을 정의하고 있다.

SLA를 정의하는 이유

서비스 제공자는 고객에게 적절한 수준의 서비스 품질을 제공해야 할 책임이 있다. 서비스 품질이라는 것은 100%라는 것이 불가능 하므로 서비스 특징, 서비스 가격 등을 고려해서 어느 수준의 품질을 제공하며, 해당 수준의 품질을 만족하지 못했을 때 어떤 책임을 질 것인지를 명확히 해야 한다. 예를 들어 클라우드 제공자가 로드밸런서에 대해서 월 99.995%의 가용율을 보장한다고 SLA에 정의 했다면, 129 초 이내의 실패에 대해서는 제공자가 책임을 지지 않는다. 129초를 넘어서는 실패가 발생할 경우, 크레딧등의 보상을 제공한다. 서비스 제공 업체의 경우 SLA는 기본 계약 중의 하나다.

명확한 SLA는 제공자에게도 도움이 되는데, SLA가 명확하다는 것은 품질 측정을 위한 시스템이 갖춰야 한다는 것을 의미하기 때문이다. 위의 로드밸런서의 예를 들어보자면, SLA를 측정하기 위해서 전체 로드밸런서에 대한 모니터링 시스템을 갖춰야 한다. SLA는 비용과 연관된 내용이기 때문에, 서비스 실패가 로드밸런서의 실패인지, 다른 영역에서의 실패인지를 명확히 구분해야 하기 때문에(ex. 로드밸런서 실패가 아닌 다른 이슈 일 수 있기 때문이다. 제공자 실패가 아닌데, 책임을 지게 되면 비용 증가로 이어진다.) 기술투자가 필요하다.

SLA에 들어가는 것들

메트릭들

SLA는 다양한 방법으로 성능과 품질에 대한 목표치를 설정한다. 아래와 같은 메트릭을 설정 할 수 있을 것이다.

서비스 책임

제공자가 SLA를 만족하지 못할 경우 보상조치(벌칙이라고 할 수 있겠다)를 정의해야 한다. 돈과 관련된 것 이므로 명확하게 기술해야 한다. 아래는 AWS CloudFront SLA의 예제다.

책임 정의 크레딧 산정 방법
월별 가동시간 비율 서비스 크레딧 비율
99%이상 99.9% 미만 10%
99%미만 25%
크레딧 요청및 지급 절차' 크레딧을 어떻게 요청하고 어떻게 지급하는지를 정의 한다.

Amazon CloudFront SLA배제 불가항력의 문제, Amazon CloudFront의 경계점을 넘어선 문제, 고객이나 제 3자의 작업으로 발생한 실수 등 책임을 지지 않는 경우를 정의 한다.

SLA가 필요한 자

SLA는 네트워크 서비스 제공자로 부터 시작한 것으로 알려져 있지만 지금은 IT 관련 영역에서 광범위하게 사용하고 있다. IT 서비스 제공자, 클라우드 서비스 제공자, 관리 서비스 제공자등이 SLA를 사용하고 있다.