[번역] RED 메서드: 서비스 계측 방법

B
Beomsu Son

Back-End2026.02.21

Tom Wilkie - 2018-08-03


Tom Wilkie

지난 3월 GrafanaCon EU에서 우리는 Grafana Labs의 새로운 팀원 중 한 명인 Tom Wilkie를 소개하는 즐거운 시간을 가졌습니다. 그는 Kausal 인수와 함께 제품 부문 부사장(VP, Product)으로 합류했습니다.
그는 선물을 들고 왔습니다. 바로 2015년에 그가 창안한 마이크로서비스 모니터링의 RED 메서드(RED Method)에 관한 인기 강연입니다.

USE 메서드

💡USE 메서드에 대한 번역본 링크
강연에서 Tom은 먼저 Brendan Gregg에 의해 대중화된 계측(Instrumenting) 방식인 USE 메서드(USE Method)를 검토했습니다.
모든 리소스에 대해 다음을 모니터링하십시오:
  • 이용률(Utilization): 리소스가 바빴던 시간의 비율(%)
  • 포화도(Saturation): 리소스가 처리해야 하는 작업량, 주로 큐(Queue)의 길이
  • 에러(Errors): 에러 이벤트의 횟수
"이것은 모든 항목을 훑어보는 체크리스트를 만드는 방법입니다."라고 그는 말했습니다. "당신이 무엇을 모르는지 알 수 있게 도와줍니다." 하지만 그는 이 방법이 유용하긴 하지만 다소 추상적이라는 점을 지적했습니다. 예를 들어, 이를 메모리에 적용하는 것은 어렵습니다. "메모리 이용률은 까다롭습니다. 그것이 정확히 무엇일까요? 캐시를 이용률에 포함해야 할까요?"라며 그는 덧붙였습니다. "메모리 포화도는 일종의 이상한 개념입니다... 그리고 메모리 에러란 무엇일까요? 리눅스에서는 그것을 어떻게 측정하나요?"

RED 메서드

이어서 Tom은 신입 사원이 그의 모니터링 철학이 무엇인지 물었을 때 만들었던 RED 메서드에 대해 설명했습니다. "USE 메서드는 서비스에 실제로 적용되기보다는 하드웨어, 네트워크 디스크 등과 같은 것들에 적용됩니다."라고 Tom은 말했습니다. "우리는 정말로 마이크로서비스 중심의 모니터링 철학을 원했고, 그래서 RED 메서드를 고안했습니다."
모든 서비스에 대해 다음을 모니터링하십시오:
  • 비율(Rate): 초당 요청 수
  • 에러(Errors): 실패한 요청의 수
  • 지속 시간(Duration): 요청 처리에 걸리는 시간
(RED 메서드의 Prometheus 구현에 관한 그의 발표 슬라이드를 확인해 보세요.)
"모든 사람은 에러율, 요청 비율, 그리고 해당 요청들에 대한 지연 시간(Latency) 분포를 이해해야 합니다."라고 Tom은 설명했습니다. "아키텍처의 모든 단일 서비스에 대해 이 모델을 적용하면, 아키텍처가 어떻게 작동하는지에 대한 훌륭하고 일관된 뷰를 얻을 수 있습니다. 서비스 전반에 걸쳐 이러한 일관성을 제공함으로써 운영 팀을 확장할 수 있고, 사람들이 자신이 작성하지 않은 코드에 대해서도 온콜(On-call) 업무를 수행할 수 있게 됩니다."
또한 그는 다음과 같이 지적했습니다. "RED 메서드는 고객이 얼마나 만족할지를 보여주는 좋은 대리 지표입니다. 에러율이 높다면 기본적으로 사용자에게 전달되어 페이지 로드 에러가 발생하고 있는 것입니다. 지속 시간이 길다면 웹사이트가 느린 것입니다. 따라서 이들은 의미 있는 알람을 구축하고 SLA(서비스 수준 협약)를 측정하는 데 매우 좋은 메트릭입니다."

4가지 황금 신호

마지막으로 Tom은 세 번째 방법인 Google의 SRE 서적에서 소개된 '4가지 황금 신호(The Four Golden Signals)'를 살펴보았습니다.
각 서비스에 대해 다음을 모니터링하십시오:
  • 지연 시간(Latency): 요청을 처리하는 데 걸리는 시간
  • 트래픽(Traffic): 시스템에 가해지는 수요의 양
  • 에러(Errors): 실패하는 요청의 비율
  • 포화도(Saturation): 서비스가 얼마나 "가득 찼는지"의 정도
이것은 기본적으로 RED 메서드와 동일하지만 포화도가 포함되어 있습니다. 그는 포화도를 측정하는 한 가지 접근 방식을 설명했습니다. "kube-state-metrics를 사용하면 됩니다. 이는 Kubernetes 클러스터에서 실행되는 작은 작업으로, Kubernetes API를 스크레이핑하여 작업, 서비스, 포드(Pod) 등에 대한 매우 흥미로운 메타데이터를 내보냅니다. 이를 통해 서비스가 사용 중인 CPU 양을 할당량(Quota)과 비교할 수 있습니다. 즉, 서비스가 얼마나 사용해야 하는지 또는 얼마나 사용할 수 있는지에 대해 0과 1 사이의 비율로 나타낼 수 있습니다. 이를 통해 서비스가 얼마나 '가득 찼는지'에 대한 측정값이나 최소한 그에 상응하는 대리 지표를 얻을 수 있습니다. 그리고 이것은 예를 들어 알람을 구축하는 데 매우 유용합니다."

동전의 양면

Tom은 USE 메서드와 RED 메서드를 함께 사용할 것을 권장했습니다. "RED 메서드가 사용자와 그들의 만족도에 관심을 갖는 것이라면," Tom은 말했습니다. "USE 메서드는 기계와 그들의 상태에 관심을 갖는 것과 같습니다. 이것은 실제로는 동일한 시스템에 대한 두 가지 다른 관점일 뿐입니다. 서로 보완적인 관계입니다."
아래 비디오에서 Tom의 강연 전체를 시청해 보세요.

비디오: RED 메서드: 서비스 계측 방법


0
1

댓글

?

아직 댓글이 없습니다.

첫 번째 댓글을 작성해보세요!

Beomsu Son님의 다른 글

더보기

유사한 내용의 글