서비스 수준 지표(SLI) 선택

Last reviewed 2024-03-29 UTC

Google Cloud 아키텍처 프레임워크의 이 문서에서는 서비스에 적합한 서비스 수준 지표(SLI)를 선택하는 방법을 설명합니다. 이 문서는 SLO 구성요소에 정의된 개념을 기반으로 합니다.

서비스 수준 목표(SLO)가 충족되는지 확인하려면 측정항목이 필요합니다. 이러한 측정항목을 SLI로 정의합니다. 각 SLI는 응답 시간, 가용성, 성공률과 같은 서비스의 특정 측면을 측정한 것입니다.

SLO에는 하나 이상의 SLI가 포함되며 이상적으로 중요한 사용자 여정(CUJ)을 기반으로 합니다. CUJ는 사용자가 웹사이트에서 목표를 달성하기 위해 취하는 특정 사용자 상호작용 또는 경로 집합을 나타냅니다. 고객이 전자상거래 서비스에서 쇼핑한다고 가정해 보겠습니다. 고객은 로그인하고 제품을 검색하고 장바구니에 상품을 추가한 다음 결제 페이지로 이동하여 결제합니다. CUJ는 사용자가 작업을 최대한 빠르게 완료하는 데 도움이 되는 다양한 방법을 식별합니다.

SLI를 선택할 때는 서비스에 적합한 측정항목, 사용 가능한 다양한 측정항목 유형, 측정항목 품질, 필요한 올바른 측정항목 수를 고려해야 합니다.

서비스 유형에 적합한 SLI 선택

다양한 서비스 유형이 있습니다. 다음 표에는 일반적인 서비스 유형과 각 서비스에 대한 SLI의 예시가 나와 있습니다. 일부 SLI는 여러 서비스 유형에 적용할 수 있습니다. SLI가 테이블에 두 번 이상 표시되면 첫 번째 SLI 인스턴스만 정의를 제공합니다. SLI는 종종 측정항목에서 '9'의 수로 표현됩니다.

서비스 유형 일반적인 SLI
제공 시스템
  • 가용성 - 사용 가능한 서비스의 비율입니다. 가용성은 성공한 요청의 비율을 총 요청 수로 나눈 값으로 정의되며 99.9%와 같은 백분율로 표시됩니다.
  • 지연 시간 - 특정 비율의 요청이 처리되는 속도입니다. 예를 들어 300밀리초의 백분위 99와 같이 표시됩니다.
  • 품질 - 요청에 대한 응답의 콘텐츠가 이상적인 응답 콘텐츠에서 벗어나는 정도입니다. 예를 들어 0~100% 범위입니다.
데이터 처리 시스템
  • 범위 - 처리된 데이터 양으로, 비율로 표현됩니다. 예를 들어 95%입니다.
  • 정확성 - 정답으로 간주되는 출력 데이터의 비율입니다. 예를 들어 99.99%입니다.
  • 최신 상태 - 소스 데이터 또는 집계된 출력 데이터의 최신 상태입니다. 예를 들어 20분 전에 데이터를 새로고침했습니다.
  • 처리량 - 처리된 데이터 양입니다. 예를 들어 초당 500MiB 또는 초당 요청 1,000개입니다.
스토리지 시스템
  • 내구성 - 시스템에 기록된 데이터가 나중에 액세스할 가능성입니다. 예를 들어 99.9999%입니다.
  • 첫 바이트까지의 시간(TTFB) - 페이지의 첫 번째 바이트 전송 및 가져오기에 걸리는 시간입니다.
  • Blob 가용성 - 총 고객 요청 수에 대해 비서버 오류 응답을 반환하는 고객 요청의 비율입니다.
  • 처리량
  • 지연 시간
요청 드라이브 시스템
  • 사용 가능 여부
  • 지연 시간
  • 품질
예약된 실행 시스템
  • 편향 - 예상 시작 시간의 허용 가능한 기간 안에 시작되는 실행 비율입니다.
  • 실행 - 작업이 완료되는 데 걸리는 시간입니다. 특정한 실행에서 일반적인 장애 모드는 실제 기간이 예약된 기간을 초과하는 것입니다.

다양한 측정항목 유형 평가

서비스에 적합한 SLI를 선택하는 것 외에도 SLI에 사용할 측정항목 유형을 결정해야 합니다. 이전 섹션에 나열된 SLI는 다음 유형 중 하나인 경우가 많습니다.

  • 카운터: 이러한 유형의 측정항목은 늘릴 수 있지만 줄일 수는 없습니다. 예를 들어 지정된 측정 지점에서 발생한 오류 수입니다.
  • 게이지: 이 유형의 측정항목은 늘리거나 줄일 수 있습니다. 예를 들어 시스템 측정 가능 부분의 실제 값(예: 큐 길이)입니다.
  • 분포(히스토그램): 특정 기간 동안 특정 측정 세그먼트에 존재하는 이벤트 수입니다. 예를 들면 완료하는 데 0~10밀리초가 걸리는 요청 수, 11~30밀리초가 걸리는 요청 수, 31~100밀리초가 걸리는 요청 수를 측정합니다. 결과는 각 버킷의 개수입니다(예: [0~10: 50], [11~30: 220], [31~100: 1,103]).

이러한 유형에 대한 자세한 내용은 Prometheus 프로젝트 문서 및 Cloud Monitoring의 값 유형 및 측정항목 종류를 참조하세요.

측정항목의 품질 고려

모든 측정항목이 유용한 것은 아닙니다. 성공한 이벤트 수와 총 이벤트 수의 비율 외에도 측정항목이 요구에 맞는 적합한 SLI인지 확인해야 합니다. 이러한 결정을 내릴 때는 좋은 측정항목의 다음과 같은 특성을 고려해야 합니다.

  • 측정항목은 사용자 만족도와 직접적으로 관련이 있습니다. 서비스가 느리거나, 정확하지 않거나, 완전히 실패하는 등 서비스가 예상대로 작동하지 않으면 사용자가 불만족합니다. SLI를 사용자 만족의 다른 신호와 비교하여 이러한 측정항목을 기반으로 SLO를 검증합니다. 이 비교에는 고객 불만사항 티켓 수, 지원 통화량, 소셜 미디어 의견과 같은 데이터가 포함됩니다. 자세한 내용은 SLO 목표의 지속적 개선을 참조하세요.

    측정항목이 사용자 만족도의 다른 지표와 일치하지 않으면 적합한 SLI가 아닐 수 있습니다.

  • 측정항목 저하는 서비스 중단과 상관관계가 있습니다. 서비스 중단 시 양호한 서비스 결과를 보고하는 측정항목은 명확하게 SLI에 대해 잘못된 측정항목입니다. 반대로 정상 작동 중에 부적합해 보이는 측정항목도 문제가 됩니다.

  • 측정항목은 적합한 신호대 잡음비를 제공합니다. 다수의 거짓음성 또는 거짓양성을 유발하는 측정항목을 닫습니다.

  • 측정항목은 고객의 만족도를 통해 단조로우며 선형적으로 확장됩니다. 간단히 말해 측정항목이 개선되면 고객 만족도도 향상됩니다.

올바른 측정항목 수 선택

단일 서비스에 여러 SLI가 있을 수 있으며 특히 서비스가 여러 가지 유형의 작업을 수행하거나 여러 유형의 사용자에게 서비스를 제공하는 경우 더 그렇습니다. 각 유형에 적합한 측정항목을 선택하는 것이 가장 좋습니다.

반대로 일부 서비스는 직접 비교할 수 있는 유사한 유형의 작업을 수행합니다. 예를 들어 사이트의 여러 페이지(예: 홈페이지, 하위 카테고리, 상위 10개 목록)를 보는 사용자입니다. 이러한 각 작업에 대해 별도의 SLI를 개발하는 대신 서비스 탐색과 같은 단일 SLI 카테고리로 결합합니다.

유사한 카테고리의 작업 간에 사용자의 기대치는 크게 달라지지 않습니다. 고객 만족도는 '항목의 전체 페이지를 빠르게 보았나요?'라는 질문에 대한 답을 통해 수치화할 수 있습니다.

서비스 허용 범위를 정확하게 나타내기 위해 가능한 한 적은 수의 SLI를 사용하세요. 일반적으로 2~6개의 SLI를 사용하는 것이 좋습니다. SLI가 너무 적으면 중요한 신호를 놓칠 수 있습니다. 너무 많으면 지원팀이 처리할 데이터가 너무 많고 부가적인 이점이 거의 없습니다. SLI는 프로덕션 상태의 이해를 단순화해야 하며, 사용자를 압도하거나 실망시키지 않는 적절한 범위를 제공해야 합니다.

다음 단계