작성자: John O'Shea

우리 모두는 노트북, 태블릿, 스마트폰에서 애플리케이션을 사용하고 있습니다. 디바이스의 전원이 켜졌는지와 Wi-Fi 네트워크 연결이 온라인인지의 여부는 쉽게 확인할 수 있습니다. 우리는 여유 디스크 공간 부족 경고와 같은 주요 알림이 화면에 표시될 것이라는 것을 알고 있습니다. 사실, 사용자 인터페이스(UI)의 일반적인 속도와 응답성은 메모리와 CPU 등 애플리케이션을 구동하기 위한 리소스가 디바이스에 충분한지를 알려주는 좋은 지표가 될 수 있습니다.

원격으로 가족의 디바이스의 기술적 문제를 해결하는 사람은 디바이스를 직접 살펴보고 작업하지 않는 경우 문제를 검출 및 진단하는 것이 보다 어렵다고 말합니다. 그러므로 클라우드 기반 서비스를 운영할 때 우리는 이와 유사한 “이러한 원격 서비스를 어떻게 모니터링하고 고객이 만족하는지의 여부를 어떻게 알 수 있을까요?”라는 문제에 직면하게 됩니다.

단일 호스트 서비스를 관찰하기 위해서는 해당 호스트의 로그를 기록하고 다양한 런타임 모니터링 도구를 실행한 후 로그를 조사하여 호스트의 상황에 대한 근본 원인을 결정할 수 있습니다. 그러나 단일 호스트 해결책은 매우 단순하고 중요하지 않은 서비스에만 적용이 가능합니다. 다른 까다로운 상황은 수백 개의 서버, 컨테이너 또는 서버리스 환경에서 실행되는 다중 계층 분산 마이크로 서비스입니다.

Amazon은 어떻게 전 세계의 여러 리전에 위치한 여러 가용 영역에서 실행되는 모든 클라우드 기반 서비스의 실제 동작을 확인할까요? 자동화 모니터링, 자동화 수정 워크플로(예: 트래픽 이동) 및 자동화 배포 시스템은 이러한 규모에서 대다수의 문제를 감지하여 해결하는 데에서 중요합니다. 그러나 많은 이유로 인해 이러한 서비스, 워크플로 및 배포의 실제 동작을 실시간으로 살펴볼 필요가 있습니다.

Amazon의 대시보드

Amazon은 클라우드 서비스에서의 활동을 파악하기 위한 이러한 문제를 해결하기 위한 한 가지 방식으로 대시보드를 활용합니다. 대시보드는 시스템의 상황을 사용자에게 보여주며, 시계열 지표, 로그, 추적 및 알람 데이터를 표시하여 시스템의 동작 방법에 대한 간결한 요약을 제공합니다.

Amazon은 이러한 대시보드의 생성, 사용 및 진행 중 유지관리를 대시보드 작업으로 부릅니다. 대시보드 작업은 설계, 코딩, 구축, 테스팅, 배포 및 서비스 확장 등 일상적인 기타 소프트웨어 제공 및 운영 활동으로써 서비스의 성공에 매우 중요하기 때문에 최우선 활동으로 간주됩니다.

물론, 운영자가 대시보드를 항상 모니터링해야 하는 것은 아닙니다. 대부분의 시간 동안에는 이러한 대시보드가 모니터링되지 않습니다. 사실, 수작업으로 대시보드를 검토해야 하는 운영 프로세스는 대시보드 검토 빈도와 관계없이 인적 오류로 인해 실패하게 됩니다. 이러한 위험을 해결하기 위해 Amazon은 시스템에서 제공되는 가장 중요한 모니터링 데이터를 계속해서 평가하는 자동화 알람을 개발했습니다. 일반적으로 이러한 알람은 시스템이 일부 한도에 도달하고 있는지(영향을 주기 전 선행적 감지) 또는 시스템이 예기치 않은 방식으로 이미 손상되었는지(영향을 준 후 대응적 감지)를 나타냅니다.

이러한 알람은 자동 수정 워크플로를 실행하여 운영자에게 문제가 있음을 통지할 수 있습니다. 알림을 통해 운영자는 해당 대시보드 및 런북으로 이동할 수 있습니다. 운영자가 통화 중에 알림 경고가 문제를 통지하면, 관련 대시보드를 빠르게 사용하여 고객 영향을 정량화하거나 확인하거나 근본 원인을 분류하고 완화하며 복구 시간을 단축시킬 수 있습니다. 알람을 통해 자동화 수정 워크플로가 이미 시작된 경우에도, 운영자는 자동화 워크플로가 어떤 작업을 수행하고 시스템에 대한 영향이 무엇인지를 살펴보며 예외적인 상황에서는 안전에 중요한 단계의 경우 운영자가 확인하여 워크플로를 진행시켜야 합니다.

이벤트가 진행 중일 때 Amazon은 일반적으로 작업 중인 여러 운영자를 지원합니다. 운영자는 일련의 작업 단계를 거치며 다른 대시보드를 사용해야 할 수 있습니다. 일반적으로 이러한 작업에는 고객 영향 정량화, 분류, 여러 서비스에서 이벤트의 근본 원인 추적, 자동화 수정 워크플로 모니터링과 런북 기반 완화 단계 실행 및 확인이 포함됩니다. 또한, 동료 팀 및 비즈니스 이해관계자도 대시보드를 사용하여 이벤트 중의 현재 영향을 모니터링합니다. 이러한 다양한 관계자는 인시던트 관리 도구, 채팅방(AWS Chatbot과 같은 봇 포함) 및 컨퍼런스 콜을 통해 소통합니다. 각 이해관계자는 대시보드에서 검토하는 데이터에 대한 다양한 관점을 제공합니다.

또한, Amazon 팀과 광범위한 조직도 매주 운영 검토 미팅을 실시하며, 여기에는 고위 경영진, 책임자, 여러 엔지니어가 참석합니다. 이 미팅 중에는 돌림판을 사용하여 상위 수준의 감사 대시보드를 선택합니다. 이해관계자는 고객 경험과 주요 서비스 수준 목표(예: 가용성 및 지연)를 살펴봅니다. 이러한 이해관계자가 사용하는 감사 대시보드에는 일반적으로 모든 가용 영역 및 리전에서 제공되는 운영 데이터가 표시됩니다.

또한, 장기 용량 계획 및 예측을 수립할 때 Amazon은 보다 긴 시간 간격으로 시스템이 제공하는 가장 높은 수준의 비즈니스, 사용량 및 용량 지표를 시각화하는 대시보드를 활용합니다.

대시보드의 유형

사용자는 대시보드를 사용하여 서비스를 수동으로 모니터링하지만 하나의 대시보드가 모든 상황에 적합한 것은 아닙니다. 대부분 시스템에는 대시보드가 여러 개 있으며, 각각은 시스템에 대한 다른 보기를 제공합니다. 이러한 다양한 보기를 통해 다양한 사용자는 다른 관점과 다른 시간 간격에서 시스템의 동작 방법을 이해합니다.

각 사용자가 확인하기를 원하는 데이터는 대시보드마다 크게 다를 수 있습니다. Amazon은 대시보드를 설계할 때 목표 사용자에 집중해야 한다는 것을 알게 되었으며, 대시보드 사용자에 따라 그리고 사용자가 대시보드를 사용하는 이유에 기반하여 각 대시보드에 제공되어야 하는 데이터를 결정합니다. Amazon은 고객과 반대 방향으로 일을 한다는 말을 들어보셨을 것입니다. 대시보드 생성은 이러한 좋은 예입니다. Amazon은 예상 사용자의 니즈 및 해당 사용자의 특정 요구 사항에 따라 대시보드를 구축합니다.

다음 다이어그램은 다양한 대시보드가 시스템에 대한 다양한 보기를 제공하는 방법을 전체적으로 보여줍니다.

대시보드의 유형

고수준 대시보드

고객 경험 대시보드

Amazon에서 가장 중요하고 널리 사용되는 대시보드는 고객 경험 대시보드입니다. 고객 경험 대시보드는 서비스 운영자 및 다양한 기타 이해관계자 등 광범위한 사용자 그룹이 사용하기 위한 용도로 설계됩니다. 그리고 전반적인 서비스 상태 및 목표 준수 상황에 대한 지표를 효율적으로 제공합니다. 고객 경험 대시보드에는 서비스 자체 및 클라이언트 장치, 지속적인 테스터(예: Amazon CloudWatch Synthetics Canary), 자동화 수정 시스템에서 제공되는 모니터링 데이터가 표시됩니다. 또한, 이러한 대시보드에는 심층적이고 다양한 영향에 대한 질문에 사용자가 답할 수 있도록 지원하는 데이터도 포함됩니다. 그러한 질문은 “얼마나 많은 고객이 영향을 받습니까?” 및 “가장 큰 영향을 받는 고객이 누구입니까?” 등과 같을 수 있습니다.

시스템 수준 대시보드

Amazon 웹 기반 서비스의 진입점은 일반적으로 UI 및 API 엔드포인트이므로, 시스템 수준 대시보드에는 운영자가 시스템 및 고객 대면 엔드포인트의 작동 방법을 확인할 수 있는 충분한 데이터가 포함되어야 합니다. 이러한 대시보드에는 기본적으로 인터페이스 수준 모니터링 데이터가 표시됩니다. 또한, 시스템 수준 대시보드에는 각 API에 대하여 다음과 같은 3개의 모니터링 데이터 범주가 표시됩니다.

  • 입력 관련 모니터링 데이터. 이러한 데이터에는 수신된 요청 횟수 또는 대기열/스트림에서 폴링되는 작업, 요청 바이트 크기 백분위 및 인증/권한 부여 실패 횟수가 포함됩니다.
  • 처리 관련 모니터링 데이터. 이러한 데이터에는 멀티 모달 비즈니스 로직 경로/분기 실행 횟수. 백엔드 마이크로 서비스 요청 횟수/실패/지연 백분위, 장애 및 오류 로그 출력, 요청 추적 데이터가 포함됩니다.
  • 출력 관련 모니터링 데이터. 이러한 데이터에는 응답 유형 개수(고객의 오류/장애 대응에 대한 분석 포함), 응답 크기 및 첫 번째 응답 바이트 생성 시간과 전체 응답 생성 시간에 대한 백분위가 포함됩니다.

일반적으로, Amazon은 이러한 고객 경험 및 시스템 수준 대시보드를 최대한 높은 수준으로 유지하는 것을 목표로 합니다. Amazon은 정보가 과도하게 제공되면 대시보드가 전달해야 하는 핵심 메시지에 대한 집중도가 떨어지기 때문에 이러한 대시보드에 너무 많은 지표를 추가하지 않도록 노력합니다.

서비스 인스턴스 대시보드

Amazon은 단일 서비스 인스턴스(파티션 또는 셀) 내에서 빠르고 종합적으로 고객 경험을 편리하게 평가할 수 있는 대시보드를 구축합니다. 이를 통해 단일 서비스 인스턴스에서 작업하는 운영자에게는 다른 서비스 인스턴스에서 제공되는 관련이 없는 데이터로 인한 부담이 감소합니다.

서비스 감사 대시보드

Amazon은 가용 영역 및 리전 전체의 모든 서비스 인스턴스에 대한 데이터를 표시하는 고객 경험 대시보드로 구축합니다. 이러한 서비스 감사 대시보드는 운영자가 모든 서비스 인스턴스에서 자동화 알람 경보를 감사할 때 사용할 수 있습니다. 이러한 알람은 앞서 설명한 주간 운영 미팅에서 검토할 수도 있습니다.

용량 계획 및 예측 대시보드

Amazon은 장기 사용 사례의 경우 용량 계획 및 예측 대시보드도 구축하여 서비스 성장을 시각화합니다.

저수준 대시보드

일반적으로 Amazon API는 백엔드 마이크로 서비스에서의 요청을 조율하여 구현됩니다. 이러한 마이크로 서비스는 다양한 팀이 소유하고 있으며, 각 팀은 요청 처리의 특정 측면을 담당합니다. 예를 들어, 일부 마이크로 서비스는 인증 및 권한 부여, 제한/한도 적용, 사용량 측정, 리소스 생성/업데이터/삭제, 데이터 스토어에서 리소스 검색 및 비동기 워크플로 시작을 요청하기 위한 목적으로 사용됩니다. 팀은 일반적으로 1개 이상의 전용 마이크로 서비스별 대시보드를 구축하며, 이러한 대시보드는 각 API에 대한 지표 또는 서비스가 데이터를 비동기 방식으로 처리하는 경우에는 작업 단위를 보여줍니다.

마이크로 서비스별 대시보드

마이크로 서비스용 대시보드는 일반적으로 서비스를 심층적으로 이해해야 하는 구현별 모니터링 데이터를 보여줍니다. 이러한 대시보드는 주로 서비스를 소유한 팀이 사용합니다. 그러나 Amazon 서비스는 고도로 계측되므로 운영자에게 부담이 되지 않는 방식으로 이러한 계측에서 제공되는 데이터를 표시해야 합니다. 그러므로 이러한 대시보드는 일반적으로 집계 형식으로 데이터를 표시합니다. 운영자가 집계 데이터에서 이상을 발견하면 일반적으로 다양한 다른 도구를 활용하여 심층 분석을 수행함으로써 데이터를 분리하고 요청을 추적하며 관련되거나 상관 관계가 있는 데이터를 나타내는 기본 모니터링 데이터에 대한 임시 쿼리를 실행합니다.

인프라 대시보드

AWS 인프라 기반 Amazon 서비스는 일반적으로 지표를 제공하므로 전용 인프라 대시보드도 구축됩니다. 인프라 대시보드는 주로 Amazon Elastic Compute Cloud(EC2) 인스턴스, Amazon Elastic Container Service(ECS)/Amazon Elastic Kubernetes Service(EKS) 컨테이너 및 AWS Lambda 함수 등 Amazon 시스템이 실행하는 리소스를 계산하여 제공되는 지표에 집중합니다. 일반적으로 CPU 사용률, 네트워크 트래픽, 디스크 IO 및 공간 사용량과 같은 지표가 관련 클러스터, Auto Scaling 및 이러한 컴퓨팅 리소스와 관련된 할당량 지표와 함께 이 대시보드에서 사용됩니다.

종속성 대시보드

컴퓨팅 리소스뿐만 아니라 많은 경우에 마이크로 서비스는 다른 마이크로 서비스에도 종속됩니다. 이러한 종속성을 소유한 팀이 자체 대시보드를 가지고 있는 경우에도, 각 마이크로 서비스 소유자는 일반적으로 전용 종속성 대시보드를 구축하여 서비스 측정 결과에 따라 업스트림 종속성(예: 프록시 및 로드 밸런서) 및 다운스트림 종속성(예: 데이터 스토어, 대기열, 스트림)이 어떻게 동작하고 있는지에 대한 보기를 제공합니다. 또한, 이 대시보드를 사용하면 보안 인증서 만료일 및 기타 종속성 할당량 사용 현황과 같은 기타 주요 지표를 추적할 수 있습니다.

대시보드 설계

Amazon은 일관적인 데이터 제공을 대시보드 구축에서 중요한 요소로 간주합니다. 효과적으로 데이터를 제공하기 위해서는 각 대시보드 및 전체 대시보드 전반에서 일관성이 달성되어야 합니다. 몇 년에 걸쳐 Amazon은 가장 광범위한 대상이 대시보드에 접근할 수 있다고 생각되는 공통 설계 용어 및 규칙 집합을 식별하여 조정 및 개선하고 있습니다. Amazon은 시간이 지남에 따라 이러한 설계 규칙을 측정 및 향상할 수 있는 세부적인 방식도 식별하고 있습니다. 예를 들어, 새 운영자가 대시보드에서 제공되는 데이터를 빠르게 이해하고 활용하여 서비스 작동 방식을 학습할 수 있다는 것은 해당 대시보드가 올바른 정보를 올바른 방식으로 제공한다는 것을 나타냅니다.

대시보드 설계 시 매우 일반적인 경향은 대상 사용자의 주제 지식을 과대 또는 과소 평가하는 것입니다. 개발자가 완전하게 이해할 수 있는 대시보드를 구축하는 것은 매우 쉽습니다. 그러나 이러한 대시보드는 사용자에게는 가치가 없을 수 있습니다. Amazon은 고객(이 경우, 대시보드 사용자)이 이해할 수 있는 작동 방식을 활용하여 이러한 위험을 제거합니다.

그리고 대시보드의 데이터 레이아웃을 표준화하는 설계 규칙을 도입했습니다. 가장 중요한 사항으로 대시보드는 위에서 아래로 표시되며 사용자는 표시된 그래프(대시보드를 불러올 때 표시됨)를 우선 해석하는 경향이 있습니다. 그러므로 Amazon의 규칙은 가장 중요한 데이터를 대시보드의 상단에 배치하는 것입니다. Amazon은 집계/요약 가용성 그래프 및 엔드 투 엔드 지연 백분위 그래프가 일반적으로 웹 서비스용으로 가장 중요한 대시보드임을 발견했습니다.

이론적인 Foo 서비스용 대시보드 상단의 스크린샷은 다음과 같습니다.

대시보드 설계

Amazon은 가장 중요한 지표에서는 큰 그래프를 사용합니다.

그래프에 지표가 많이 표시되어야 하는 경우에는 그래프 범례로 인해 수직 또는 수평 방향에서 그래프 데이터가 잘 보이지 않게 되는 것을 방지합니다. 그래프에서 검색 쿼리를 사용하는 경우에는 일반적인 지표 결과 집합보다 많은 결과를 제공할 수 있도록 합니다.

예상되는 최소 디스플레이 해상도로 그래프 배치

이를 통해 사용자가 수평으로 스크롤할 필요가 없어집니다. 새벽 3시에 노트북으로 작업 중인 운영자는 오른쪽에 추가로 그래프가 있다는 시각적인 명확한 힌트가 제공되지 않는다면 수평 스크롤 바를 알아차리지 못할 수 있습니다.

시간대 표시

날짜 및 시간 데이터를 표시하는 대시보드의 경우 Amazon은 대시보드에 관련 시간대를 표시합니다. 시간대가 다른 여러 운영자가 동시에 사용하는 대시보드의 경우 모든 사용자가 이해할 수 있는 단일 시간대(UTC)를 기본으로 지정합니다. 이러한 방식을 통해 사용자는 단일 시간대를 사용하여 서로 연락하여 상대의 시간대를 파악하기 위해 드는 과도한 시간과 노력을 줄일 수 있습니다.

최단 시간 간격 및 데이터 요소 기간 사용

Amazon은 가장 일반적인 사용 사례와 관련된 시간 간격과 데이터 요소 기간을 기본값으로 사용합니다. 그리고 대시보드의 모든 그래프가 동일한 시간 범위 및 해상도로 초기에 데이터를 표시하도록 합니다. 이를 통해 대시보드 섹션 내의 모든 그래프가 수평으로 동일한 크기를 가질 수 있게 됩니다. 그러면 그래프 사이의 시간도 편리하게 교정할 수 있습니다.

또한, 대시보드 로드 시간이 느려질 수 있으므로 그래프 내에 데이터 요소를 너무 많이 추가하지 않습니다. 그리고 사용자에게 데이터 요소를 과도하게 표시하면 실제로 이상을 발견하기 위한 가시성이 감소하게 됩니다. 예를 들어, 지표당 값이 단 180개인 1분 해상도 데이터 요소의 3시간 간격 그래프는 크기가 작은 대시보드 위젯에도 명확하게 표시될 수 있습니다. 이러한 데이터 요소 개수는 진행 중인 운영 이벤트를 분류하는 작업자에게 충분한 정보를 제공할 수도 있습니다.

시간 간격과 지표 기간을 조정할 수 있는 기능 제공

Amazon 대시보드는 모든 그래프의 시간 간격과 지표 기간 모두를 빠르게 조정할 수 있는 제어 기능을 제공합니다. 대시보드에서 사용되는 일반적인 기타 간격 x 해상도 비율은 다음과 같습니다.

  • 1시간 x 1분(데이터 요소 60개) - 확대하여 진행 중인 이벤트를 살펴볼 때 유용함
  • 12시간 x 1분(데이터 요소 720개)
  • 1일 x 5분(데이터 요소 288개) - 일일 동향을 살펴볼 때 유용함
  • 3일 x 5분(데이터 요소 864개)
  • 1주 x 1시간(데이터 요소 168개) - 주간 동향을 살펴볼 때 유용함
  • 1개월 x 1시간(데이터 요소 744개)
  • 3개월 x 1일(데이터 요소 90개) - 사분기 동향을 살펴볼 때 유용함
  • 9개월 x 1일(데이터 요소 270개)
  • 15개월 x 1일(데이터 요소 450개) - 장기 용량 검토에 유용함
시간 간격이 있는 대시보드

그래프에 알람 임계값 주석 표시

관련된 자동화 알람이 있는 지표에 대한 그래프를 생성할 때 알람 임계값이 고정된 경우에는 수평선으로 그래프에 주석이 표시됩니다. 알람 임계값이 동적인 경우, 즉, 인공 지능(AI) 또는 machine learning(ML)을 활용하여 생성되는 예측 또는 전망을 기반으로 하는 경우에는 동일한 그래프에 실제 및 임계값 지표가 모두 표시됩니다. 한도(예: “최대 테스트” 한도 또는 하드 리소스 한도)가 알려진 서비스의 측면을 측정하는 지표가 그래프에 표시되는 경우에는 알려지거나 테스트된 한도를 나타내는 수평선으로 그래프에 주석이 표시됩니다. 목표가 있는 지표의 경우에는 수평선을 추가하여 사용자가 해당 목표를 즉시 확인할 수 있도록 합니다.

왼쪽 및 오른쪽 y축 모두를 이미 사용하는 그래프에 수평선을 추가하지 않음

이러한 그래프에 수평선을 추가하면 사용자는 어느 쪽 y축이 수평선과 연관되는지를 사용자가 파악하기 어렵습니다. 이러한 모호성을 방지하기 위해서는 이와 같이 1개의 수평 축만 사용하는 그래프를 두 개로 분할하고 해당 그래프에만 수평선을 추가합니다.

수평선이 있는 대시보드

값 범위가 매우 다른 여러 지표가 포함된 y축을 과도하게 로드하지 않음

이로 인해 하나 이상 지표에 대한 가시성이 감소할 수 있기 때문에 이러한 상황은 지양됩니다. 이러한 상황의 예는 동일한 그래프에 p0(최소)과 p100(최대) 지연을 그래프로 표시하는 것입니다. 여기서 p100 데이터 요소의 값은 p0 데이터 요소 값보다 매우 클 수 있습니다.

y축에 여러 지표가 있는 대시보드

y축 경계가 현재 데이터 요소 값 범위로만 축소되지 않도록 주의

y축 범위가 데이터 요소 값으로 제한되는 그래프를 언뜻 살펴보면 지표가 실제보다 매우 가변적으로 보일 수 있습니다.

단일 그래프를 과도하게 로드하지 않음

Amazon은 단일 그래프에 너무 많은 통계 또는 관련성이 없는 지표를 추가하지 않습니다. 예를 들어, 요청을 처리하기 위해 그래프를 추가하는 경우에는 다음과 같이 대시보드에 인접한 그래프를 별도로 생성합니다.

  • 가용성 % (장애/요청 * 100)
  • p10, 평균, p90 지연
  • p99.9 및 최대(p100) 지연

사용자가 모든 지표 또는 위젯의 의미를 정확하게 알고 있다고 가정하지 않음

이는 특히 구현별 지표에 적용됩니다. 각 그래프 옆 또는 아래의 설명 텍스트와 같이 대시보드 텍스트에는 충분한 컨텍스트가 제공됩니다. 운영자는 이 텍스트를 읽고 지표의 의미를 이해할 수 있습니다. 그리고 운영자는 “정상” 상황이 무엇이며 그래프가 “정상”이 아닌 경우의 의미를 해석할 수 있습니다. 이 텍스트에서는 운영자가 근본 원인을 결정하기 위해 사용할 수 있는 관련 리소스에 대한 링크가 제공됩니다. Amazon이 제공하는 링크의 일부 예는 다음과 같습니다.

  • 런북으로의 링크. 주제 전문가를 위해 대시보드가 런북으로 사용될 수 있습니다.
  • 관련 “심층 분석” 대시보드로의 링크.
  • 다른 클러스터 또는 파티션에 해당하는 대시보드로의 링크.
  • 배포 파이프라인으로의 링크.
  • 종속성에 대한 연락처 정보로의 링크.
사용자가 대시보드의 모든 지표를 알고 있다고 가정하지 않음

적절한 경우 알람 상태, 단순한 숫자 및/또는 시계열 그래프 사용

대시보드의 사용 사례에 따라, 단일 숫자(예: 지표의 최근 값) 또는 알람 상태가 포함된 위젯을 표시하면 모든 최근 데이터 요소가 포함된 시계열 그래프를 표시하는 것보다 매우 유용할 수 있습니다.

적절한 경우 단순한 숫자 사용

희소 지표를 표시하는 그래프를 사용하지 않음

희소 지표는 특정 오류 조건이 있는 경우에만 제공되는 지표입니다. 필요한 경우에만 이러한 지표를 제공하는 서비스를 구현하는 것이 효율적일 수 있지만, 비어 있거나 거의 비어 있는 그래프로 인해 대시보드 사용자가 혼동될 수 있습니다. 대시보드 설계 중에 그러한 지표가 있는 경우에는 일반적으로 서비스를 수정하여 오류 조건이 없는 경우 안전 값(즉, 0)을 계속해서 제공하도록 합니다. 그러면 운영자는 데이터가 없다는 것은 서비스가 측정값을 정확하게 제공하지 않는 것이라고 쉽게 이해할 수 있습니다.

모드별 지표를 표시하는 그래프 추가

이러한 그래프는 시스템에서 멀티 모델 동작을 집계하는 지표에 대한 그래프를 표시할 때 추가됩니다. 이러한 상황의 예는 다음과 같습니다.

  • 서비스가 가변 크기 요청을 지원하는 경우에는 요청의 전체 지연에 대한 그래프를 생성할 수 있습니다. 또한, 소규모, 중규모 및 대규모 요청에 대한 지표를 표시하는 그래프를 생성할 수도 있습니다.
  • 서비스가 입력 매개 변수의 값(또는 조합)에 따라 가변적으로 요청을 실행하는 경우에는 각 실행 모드를 수집하는 지표에 대한 그래프를 추가할 수 있습니다.

대시보드 유지관리

시스템의 다양한 보기를 제공하는 대시보드를 구축하는 것이 첫 단계입니다. 그러나 Amazon 시스템은 계속해서 발전 및 확장되고 이에 따라 새로운 기능이 추가되고 아키텍처에 향상되므로 대시보드도 발전해야 합니다. 대시보드 유지관리 및 업데이트는 Amazon 발전 프로세스에서 본질적인 요소입니다. 변경을 완료하기 전 및 코드 검토 중에 Amazon 개발자들은 “대시보드를 업데이트해야 합니까?”라는 질문을 합니다. 그리고 개발자들은 대시보드를 변경한 후 기본 변경 사항을 배포합니다. 이를 통해 운영자가 시스템 배포 중이나 후에 변경 사항이 배포되었는지를 확인하기 위해 대시보드를 업데이트해야 하는 상황이 방지됩니다.

대시보드에 일반적인 것보다 훨씬 많은 수의 세부 정보가 포함되는 경우, 이는 운영자가 자동화 알람 및 수정이 아닌 수작업 이상 감지를 위해 대시보드를 사용해야 한다는 의미일 수 있습니다. Amazon은 대시보드를 지속적으로 감사하여 서비스에서 계측을 향상하고 자동화 알람을 개선함으로써 이러한 수작업 활동을 줄일 수 있는지의 여부를 결정합니다. 또한, Amazon은 대시보드에 더 이상 값을 추가하지 않는 그래프를 적극적으로 축소하거나 업데이트하고 있습니다.

개발자가 대시보드를 업데이트할 수 있도록 함으로써 프리 프로덕션(알파, 베타 또는 감마) 환경과 동일하고 완전한 대시보드 집합을 사용할 수 있습니다. Amazon의 자동화 배포 파이프라인은 우선 프리 프로덕션 환경에 변경 사항을 배포합니다. 그러므로 팀들은 변경 사항이 프로덕션 환경으로 푸시될 때 유효성을 검사하는 방법과 동일한 방식으로 관련 대시보드(및 자동화 알람)를 사용하여 이러한 테스트 환경에서 변경 사항을 편리하게 검증할 수 있습니다.

요구 사항이 업데이트되고, 새로운 기능이 추가되며 소프트웨어 아키텍처가 변경되어 시간이 지남에 따라 확장됨에 따라 대부분의 시스템은 계속해서 발전합니다. 대시보드는 Amazon 시스템의 필수 구성 요소이므로 우리는 이를 유지하기 위해 IaC(Infrastructure-as-Code) 프로세스를 준수합니다. 이 프로세스를 통해 대시보드가 변경 관리 시스템에서 유지되며 개발자와 운영자가 서비스에서 사용하는 동일한 도구를 사용하여 해당 변경 사항이 대시보드에 배포될 수 있습니다.

예기치 않은 운영 이벤트가 발생하여 사후 분석을 수행할 때 Amazon의 팀들은 이벤트가 발생하기 전 대시보드 향상이 이루어졌는지, 근본 원인이 보다 신속하게 식별되었는지 또는 평균 복구 시간이 단축되었는지를 검토합니다. 그리고 우리는 “선례를 참고하여, 대시보드가 고객 영향을 명확하게 보여주고 운영자가 최종 근본 원인을 판단하기 위해 삼각측량을 수행하도록 지원이 제공되었으며 복구 시간 측정과 관련한 지원이 제공되었습니까?”라고 스스로 질문합니다. 이러한 질문에 대한 대답이 “아니요”인 경우 사후 분석에는 해당 대시보드를 조정하기 위한 조치가 포함됩니다. 

결론

Amazon은 전 세계에서 대규모 서비스를 운영합니다. 그리고 자동화 시스템은 발생하는 모든 문제를 지속적으로 모니터링하고 감지하며 경고를 제공하고 수정을 수행합니다. 우리는 이러한 서비스 및 자동화 시스템을 모니터링하고 심층 분석을 수행하며 감사를 실시하고 검토를 해야 합니다. 이를 달성하기 위해 Amazon은 시스템에 대한 다양한 보기를 제공하는 대시보드를 구축하여 유지관리하고 있습니다. 그리고 이러한 대시보드는 대시보드 사용자를 고려하여 광범위하고 특정한 사용자 모두를 위해 설계됩니다. 운영자와 서비스 소유자 모두가 쉽게 대시보드를 이해할 수 있도록 하기 위해 우리는 일관적인 설계 용어 및 규칙 집합을 사용하여 대시보드의 사용성과 활용성을 보장합니다.

Amazon 대시보드는 AWS 서비스가 운영되는 방법에 대한 매우 다양한 관점과 보기를 제공합니다. 그리고 Amazon 팀이 서비스를 이해하고 운영하며 확장하도록 지원하여 우수한 고객 경험을 제공하는 데에서 매우 중요한 역할을 합니다. 여러분이 자체 대시보드를 설계, 구축 및 유지관리할 때 본 글이 도움이 되었으면 좋겠습니다.  AWS 서비스를 사용하여 대시보드를 구축하는 방법에 대한 예는 여기 짧은 동영상셀프 서비스 설명서에서 살펴볼 수 있습니다.


작성자 소개

John O'Shea는 Amazon Web Services의 수석 엔지니어입니다. 그는 현재 Amazon CloudWatch와 기타 Amazon 내부 모니터링 및 가시성 서비스에 전념하고 있습니다.