Live:CloudOps Webinars & Hands-on Workshops ·Register ↗
본문으로 건너뛰기

기능 및 역량

Application Signals가 제공하는 것

CloudWatch Application Signals는 CloudWatch에서의 AWS Application Performance Monitoring(APM) 환경입니다. 활성화 후 애플리케이션 텔레메트리를 자동으로 수집하고 서비스, 오퍼레이션, 종속성별로 구성하여 운영 상태를 신속하게 분류하고 장기적인 성능 목표를 추적할 수 있습니다.

  • 표준 애플리케이션 메트릭: 호출량, 가용성, 지연 시간, 장애 및 오류
  • 서비스 및 종속성 토폴로지: 검색된 서비스와 관계에서 생성된 Application Map
  • 심층 트러블슈팅: 서비스 상태에서 상관된 trace 및 관련 텔레메트리로 드릴다운

Application Map (토폴로지 + 상태)

Application Map은 애플리케이션의 토폴로지를 시각화하고 운영 상태를 강조합니다. 클라이언트, Canaries, 서비스, 종속성 간의 연결을 표시하여 운영자가 실행 흐름을 이해하고 문제가 전파되는 위치를 식별할 수 있습니다.

수행 가능한 작업

  • SLO/SLI 상태 확인: 목표를 충족하지 않는 서비스(및 업스트림/다운스트림 영향)를 빠르게 파악
  • 드릴다운: 노드/엣지를 선택하여 상세 메트릭을 열고 서비스 세부정보로 이동
  • 그룹화 및 필터링: 기본 그룹화(Related services, Environment)를 사용하거나 AWS 태그 또는 OpenTelemetry resource attribute를 사용하여 커스텀 그룹화 생성
  • 크로스 계정 가시성: 여러 AWS 계정의 서비스를 확인(크로스 계정 Observability 설정 시)

서비스, 오퍼레이션, 종속성

Application Signals는 텔레메트리를 팀이 프로덕션 시스템을 디버깅하는 방식에 맞는 모델로 구성합니다:

  • 서비스: 배포 가능한 단위(예: ECS 서비스, EKS 워크로드, Lambda 함수)
  • 오퍼레이션: 서비스 내의 요청 핸들러(예: HTTP 라우트 또는 RPC 메서드)
  • 종속성: 서비스가 수행하는 다운스트림 호출(예: 다른 서비스 또는 AWS 종속성)

이 구조를 통해 "어떤 오퍼레이션이 성능 저하되었나?", "이것은 업스트림 문제인가 다운스트림 문제인가?", "어떤 종속성이 지연 시간이나 장애에 기여하고 있는가?"와 같은 질문에 쉽게 답할 수 있습니다.

Service Level Objectives (SLOs)

Application Signals가 수집하는 텔레메트리에서 직접 SLO를 생성하고 모니터링합니다. SLO는 목표 대비 성능 및 신뢰성을 추적하고 "위험" 상태의 서비스를 조기에 식별하는 데 도움을 줍니다.

  • 핵심 SLI에 대한 SLO 정의: 비즈니스 목표와 관련된 가용성, 지연 시간 또는 기타 CloudWatch 메트릭
  • 상태 추적: 서비스 목록과 Application Map에서 SLI 상태 확인
  • 알림: SLO 상태/소진율에 연결된 알람을 생성하여 장애 전에 대응 가능

계측 (OpenTelemetry 호환)

Application Signals는 OpenTelemetry 호환이며 플랫폼과 언어에 따라 여러 가지 애플리케이션 계측 방식을 지원합니다.

  • 지원 언어: Java, Python, Node.js, .NET (OpenTelemetry zero-code 계측 경로를 통한 추가 런타임 지원)
  • 지원 시스템: Amazon EKS, Kubernetes, Amazon ECS, Amazon EC2 (CloudWatch Agent + AWS Distro for OpenTelemetry를 활용하는 활성화 패턴)
  • 일반적인 설정 패턴: 환경에 따라 AWS Distro for OpenTelemetry (ADOT) SDK/collector 또는 OpenTelemetry SDK + collector

RUM 및 Synthetics와의 통합

Application Signals는 CloudWatch RUM 및 CloudWatch Synthetics와 통합됩니다. 해당 클라이언트/Canaries에 대해 추적을 활성화하면 Application Map에 표시되어 사용자 경험과 사전 테스트를 호출하는 백엔드 서비스에 연결하는 데 도움이 됩니다.

  • RUM 클라이언트: 프론트엔드 성능 및 JavaScript 오류를 백엔드 서비스 호출에 연결
  • Synthetics Canaries: 주요 플로우를 검증하고 사용자보다 먼저 문제를 감지하는 데 도움