CloudWatch 애플리케이션 맵을 사용하여 애플리케이션 토폴로지 보기 및 작업 상태 모니터링
참고
CloudWatch 애플리케이션 맵은 서비스 맵을 대체합니다. AWS X-Ray 트레이스를 기반으로 애플리케이션의 맵을 보려면 X-Ray 트레이스 맵을 엽니다. CloudWatch 콘솔의 왼쪽 탐색 창의 X-Ray 섹션에서 기록 맵을 선택합니다.
Application Signals에 대해 애플리케이션을 사용 설정하면 애플리케이션 맵에 그룹을 나타내는 노드가 표시됩니다. 그런 다음, 이러한 그룹을 드릴다운하여 서비스와 해당 서비스의 종속성을 확인할 수 있습니다. 애플리케이션 맵을 사용하여 애플리케이션 클라이언트, Synthetics 카나리, 서비스 및 종속성의 토폴로지를 확인하고 작업 상태를 모니터링합니다. 애플리케이션 맵을 보려면 CloudWatch 콘솔
Application Signals에 대해 애플리케이션을 사용 설정한 후 애플리케이션 맵을 사용하면 애플리케이션의 작업 상태를 더 쉽게 모니터링할 수 있습니다.
-
클라이언트, canary, 서비스 및 종속성 노드 간의 연결을 보면 애플리케이션 토폴로지와 실행 흐름을 이해하는 데 도움이 됩니다. 이는 서비스 운영자가 개발 팀이 아닌 경우 특히 유용합니다.
-
서비스 수준 목표(SLO)를 충족하거나 충족하지 못하는 서비스를 확인하세요. 서비스가 SLO를 충족하지 못하는 경우 다운스트림 서비스 또는 종속성이 문제의 원인인지 또는 여러 업스트림 서비스에 영향을 미치는지 빠르게 식별할 수 있습니다.
-
개별 클라이언트, Synthetics canary, 서비스 또는 종속성 노드를 선택하여 관련 지표를 확인합니다. 서비스 세부 정보 페이지에서는 작업, 종속성, Synthetics canary 및 클라이언트 페이지에 대한 자세한 정보를 표시합니다.
-
애플리케이션 맵을 필터링하고 확대 또는 축소하면 더 쉽게 애플리케이션 토폴로지의 일부분을 중점적으로 살펴보거나 전체 맵을 볼 수 있습니다. 필터 텍스트 상자에서 속성을 하나 이상 선택하여 필터를 생성합니다. 각 속성을 선택하면 필터 기준이 안내됩니다. 필터 텍스트 상자 아래에 전체 필터가 표시됩니다. 언제든지 필터 지우기를 선택하여 필터를 제거할 수 있습니다.
단일 통합 애플리케이션 맵에서 여러 AWS 계정의 서비스를 모니터링합니다. 서로 다른 계정의 여러 서비스가 계정 정보를 통해 명확하게 식별되므로, 분산 애플리케이션을 통합하여 관찰할 수 있습니다.
애플리케이션에서 아직 계측되지 않은 서비스를 식별합니다. Application Signals는 아직 계측되지 않은 서비스를 자동으로 감지하고 표시하므로, 완전한 관찰성 적용 범위를 실현하는 데 도움이 됩니다. 계측되지 않은 서비스는 맵에서 시각적으로 구별되기 때문에 계측 작업의 우선순위를 정하는 데 유용합니다.
서비스를 그룹화하고 필터링하여 워크플로와 일치하는 사용자 지정 보기를 생성합니다. 이렇게 조직화하면 가장 자주 사용하는 서비스를 빠르게 찾고 액세스하는 데 도움이 됩니다.
필터링된 보기와 그룹화된 보기를 저장하면 자주 사용하는 구성으로 빠르게 돌아갈 수 있습니다.
애플리케이션 맵 살펴보기
애플리케이션 맵으로 이동하면 관련 서비스별로 그룹화된 서비스가 기본적으로 표시됩니다. 관련 서비스는 종속성을 기반으로 서비스를 그룹화합니다. 예를 들어 서비스 A가 서비스 C를 직접 호출하는 서비스 B를 직접 호출하면 이러한 서비스는 서비스 A 아래에 그룹화됩니다. 각 그룹의 모든 서비스에 대한 SLI 상태, 지표, 서비스 개수를 볼 수 있습니다.
각 노드 종류와 노드 간 엣지(연결)을 탐색하는 방법에 대한 자세한 내용을 보려면 탭을 선택합니다.
동적 그룹화 및 필터링
그룹화 기준 드롭다운을 클릭하여 다양한 그룹화 옵션을 사용할 수 있습니다. 기본적으로 애플리케이션 맵은 2가지 그룹화를 제공합니다.
관련 서비스 - 종속성을 기반으로 서비스를 그룹화합니다.
환경 - 환경을 기준으로 서비스를 그룹화합니다.
자체 사용자 지정 그룹을 정의하려면 그룹 관리를 클릭하여 사용자 지정 그룹을 정의한 다음, 서비스에 태그를 지정하거나 그룹 키로 OTEL 리소스 속성을 추가합니다.
참고
OTEL 리소스 속성을 통해 그룹화를 사용하려면 CloudWatch 에이전트 버전이 v1.300056.0 이상이어야 합니다.
Application Signals의 기본 그룹화 기능은 다운스트림 종속성에 따라 서비스를 자동으로 구성합니다. 시스템에서는 서비스 종속성 그래프를 분석하고, 루트 노드(업스트림 종속성이 없는 서비스)가 그룹 이름으로 설정되는 그룹을 생성합니다. 이 루트 서비스를 직접적으로 또는 간접적으로 사용하는 모든 서비스는 자동으로 그룹에 포함됩니다. 예를 들어 서비스 A가 서비스 B를 직접 호출하여 결과적으로 서비스 C도 직접 호출하게 될 경우, 이러한 3가지 서비스는 모두 종속성 체인의 루트이므로 서비스 A와 함께 그룹 이름으로 그룹화됩니다. 이 자동 그룹화 메커니즘은 실제 런타임 상호 작용 및 종속성을 기반으로 관련 서비스를 시각화하고 관리할 수 있는 자연스러운 방법을 제공합니다.
그룹 작업 및 인사이트
각 그룹에 대해 다음과 같은 작업을 수행할 수 있습니다.
-
더 보기를 클릭하여 그룹의 지표 차트, 마지막 변경 이벤트 2개, 마지막 배포 시간을 봅니다.
-
대시보드 보기를 클릭하여 그룹의 지표 대시보드, 변경 이벤트 테이블, 서비스 목록을 봅니다.
왼쪽 표시줄에서 그룹 및 필터를 사용하여 배포 시간, SLI 상태 또는 컴퓨팅 플랫폼 유형이 포함된 서비스가 있는 그룹을 필터링할 수 있습니다.
계정별로 필터링하여 교차 계정 관찰성 설정의 특정 AWS 계정에서 서비스를 볼 수도 있습니다.
검색 및 필터 막대를 사용하여 특정 서비스 환경 또는 종속성이 포함된 이름 또는 검색 그룹별로 그룹을 검색할 수 있습니다. 계정 ID를 기준으로 필터링하면 특정 계정의 서비스를 중점적으로 살펴볼 수 있습니다.
사용자 지정 그룹 구성
사용자 지정 그룹화를 사용하면 비즈니스 요구 사항 및 운영 우선순위에 따라 서비스를 논리적으로 구성할 수 있습니다. 이 기능을 사용하면 특정 요구 사항에 따라 우선순위가 있는 정의된 보기를 열람 및 저장하고, 팀 소유권을 기반으로 그룹을 생성하며, 중요한 비즈니스 트랜잭션에 필요한 서비스 그룹을 조합할 수 있습니다.
사용자 지정 그룹 이름(UI에 표시되는 그룹 이름) 및 해당하는 그룹 키 이름을 생성합니다. Application Signals UI에서 또는 PutGroupingConfiguration API를 사용하여 이 단계를 완료합니다.
그룹 키 이름은 서비스에 대한 AWS 태그 키 또는 OTEL 리소스 속성일 수 있습니다. 태그와 OTEL 리소스 속성 중에서 결정할 때는 컴퓨팅 플랫폼을 고려하세요.
단일 서비스 플랫폼(예: Lambda 또는 Auto Scaling 그룹)의 경우 - AWS 태그 사용
다중 서비스 플랫폼(예: Amazon EKS 클러스터)의 경우 - 더 세분화된 그룹화를 위해 OTEL 리소스 속성 사용
AWS 태그 추가
사용자 지정 그룹 키가 포함된 AWS 태그를 Amazon EKS 클러스터에 키와 값으로 추가합니다. 하나의 Amazon EKS 클러스터에서 여러 개의 서비스가 실행 중인 경우, 모든 서비스는 동일한 사용자 지정 그룹 키로 태그가 지정됩니다. 예를 들어 Amazon EKS 클러스터 A에서 서비스 1, 서비스 2, 서비스 3이 실행 중인 경우 Team X라는 키가 있는 AWS 태그를 클러스터에 추가하면 3가지 서비스가 모두 Team X에 추가됩니다. Team X에 특정 서비스만 추가하려면 아래와 같이 서비스에 대해 OTEL 리소스 속성을 추가합니다.
OTEL 리소스 속성 추가
OTEL 리소스 속성을 추가하려면 아래 구성을 참조하세요.
일반 구성
사용자 지정 그룹 키-값 페어를 사용하여 애플리케이션에서 OTEL_RESOURCE_ATTRIBUTES 환경 변수를 구성합니다. 키는 & 아래에 나열되며 aws.application_signals.metric_resource_keys 기호로 구분됩니다.
일례로 Application=PetClinic 및 Owner=Test를 사용하여 사용자 지정 그룹을 생성하려면 다음 예제를 사용합니다.
OTEL_RESOURCE_ATTRIBUTES=Application=PetClinic,Owner=Test,aws.application_signals.metric_resource_keys=Application&Owner
플랫폼별 구성
다음은 배포 사양입니다.
Amazon EKS 및 네이티브 kubernetes
apiVersion: apps/v1 kind: Deployment metadata: ... spec: replicas: 1 ... template: spec: containers: - name: your-app image: your-app-image env: ... - name: OTEL_RESOURCE_ATTRIBUTES value: Application=PetClinic,Owner=Test,aws.application_signals.metric_resource_keys=Application&Owner
Amazon EC2
애플리케이션 시작 스크립트를 OTEL_RESOURCE_ATTRIBUTES에 추가합니다. 전체 예제는 OTEL_RESOURCE_ATTRIBUTES 추가 섹션을 참조하세요.
... OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME,Application=PetClinic,Owner=Test,aws.application_signals.metric_resource_keys=Application&Owner" \ java -jar $MY_JAVA_APP.jar
Amazon ECS
OTEL_RESOURCE_ATTRIBUTES를 TaskDefinition에 추가합니다. 전체 예제는 Amazon ECS에서 활성화 섹션을 참조하세요.
{ "name": "my-app", ... "environment": [ { "name": "OTEL_RESOURCE_ATTRIBUTES", "value": "service.name=$YOUR_SVC_NAME,Application=PetClinic,Owner=Test,aws.application_signals.metric_resource_keys=Applicationmanagement portalOwner" }, ... ] }
Lambda
OTEL_RESOURCE_ATTRIBUTES를 Lambda 환경 변수에 추가합니다.
OTEL_RESOURCE_ATTRIBUTES="Application=PetClinic,Owner=Test,aws.application_signals.metric_resource_keys=Application&Owner"
그룹 내에서 서비스 보기
그룹에서 서비스 및 해당 서비스의 종속성을 보려면 그룹 이름을 클릭합니다. 이렇게 하면 그룹 내부의 서비스 맵이 표시됩니다. 각 서비스 노드에는 SLI 상태, 지표, 플랫폼 세부 정보가 표시됩니다. SLI 침해가 발생한 서비스는 쉽게 식별할 수 있도록 강조 표시됩니다.
계측되지 않은 서비스는 눈에 잘 띄는 시각적 지표(예: 파선 테두리 또는 다른 색상)와 함께 표시되므로 계측된 서비스와 구별할 수 있습니다. 계측 지침 및 설정 설명서 링크를 보려면 계측되지 않은 서비스 노드 위로 마우스를 올리세요.
모든 카나리, RUM 클라이언트, AWS 서비스 노드는 기본적으로 축소된 상태로 표시됩니다. 이 그룹의 서비스가 이 그룹에 속하지 않은 서비스를 직접적으로 호출할 경우, 해당 서비스는 기본적으로 축소되어 표시됩니다.
그래도 맵이 너무 커서 효과적으로 조사할 수 없는 경우, 중첩 그룹을 적용하면 조사 범위를 좁힐 수 있습니다. 예를 들어 사업부별로 서비스를 그룹화한 후에도 그룹에 서비스가 너무 많다면 그룹화 기준 드롭다운을 통해 팀을 선택하여 중첩 그룹화 구조를 생성합니다.
서비스 인사이트 및 세부 정보
또한 이 페이지에서 검색 창 옆에 있는 보기 저장을 클릭하면 보기를 저장할 수 있으므로, 다음에 동일한 그룹화 및 필터링을 다시 적용할 필요가 없습니다.
서비스 노드에서 더 보기를 클릭하여 서비스 감사, 이벤트 변경, SLI 상태, 지표 그래프를 봅니다.
서비스 작업 및 기타 서비스 세부 정보를 보려면 대시보드 보기를 클릭하여 서비스 개요 페이지로 이동합니다.
또는 '엣지'를 클릭하여 서비스의 특정한 종속성 직접 호출에 대한 지표를 볼 수 있습니다.
변경 이벤트
Application Signals의 CloudTrail 이벤트 자동 처리를 통해 애플리케이션 전체에서 변경 이벤트를 추적할 수 있습니다. 서비스 및 해당 서비스의 종속성에 대한 구성 이벤트와 배포 이벤트를 모니터링하면 운영 분석 및 문제 해결을 위한 즉각적인 컨텍스트가 제공됩니다. 변경 이벤트 감지 기능은 CloudWatch 콘솔 또는 StartDiscovery API를 통한 서비스 검색 활성화와 함께 활성화됩니다. EKS 서비스의 경우 배포 감지를 사용하려면 EKS 서비스를 Application Signals 계측 SDK로 계측해야 합니다. Application Signals는 배포 시간과 성능 변화의 상관관계를 자동으로 분석하므로, 최근 배포가 서비스 문제에 영향을 미쳤는지 빠르게 식별하는 데 도움이 됩니다. 추가 구성 또는 설정 요구 사항 없이도 변경 이벤트 기록 및 서비스 전반의 영향을 확인할 수 있습니다.
감사 결과
Application Signals의 감사 결과를 통해 중요한 인사이트를 발견할 수 있습니다. 이 서비스는 애플리케이션을 분석하여 중요한 관찰 결과 및 잠재적 문제를 보고하므로, 근본 원인 분석을 간소화합니다. 이러한 자동화된 조사 결과는 관련 트레이스를 통합하기 때문에 여러 번 클릭하여 탐색하지 않아도 됩니다. 감사 시스템은 작업 팀이 문제와 근본 원인을 빠르게 식별하도록 지원하므로 문제 해결 속도를 단축할 수 있습니다.
애플리케이션 맵의 교차 계정 관찰성
Application Signals는 교차 계정 관찰성을 지원하므로, 단일한 통합 애플리케이션 맵에서 여러 AWS 계정에 분산된 서비스를 모니터링하고 시각화할 수 있습니다. 이 기능은 AWS 모범 사례에 따라 다중 계정 아키텍처를 사용하는 조직에서 필수로 사용해야 합니다.
주요 기능:
통합 보기: 단일 애플리케이션 맵에서 여러 AWS 계정의 서비스를 볼 수 있으므로, 분산 애플리케이션 아키텍처를 전체적으로 파악할 수 있습니다.
계정 식별: 각 서비스 노드에서 계정 ID 및 리전을 명확하게 표시하므로, 서비스 소유권과 위치를 쉽게 식별할 수 있습니다.
중앙 집중식 모니터링: 단일 모니터링 계정에서 모든 연결된 계정의 서비스 상태, 성능, SLO 상태를 모니터링할 수 있습니다.
교차 계정 필터링: 계정 ID별로 서비스를 필터링 및 그룹화하여 특정 계정을 중점적으로 살펴보거나 교차 계정의 상호 작용을 확인할 수 있습니다.
작동 방식:
Application Signals에서는 AWS Organizations 및 교차 계정 공유를 사용하여 다중 계정에서 관찰성을 사용 설정합니다. 교차 계정 관찰성을 설정하려면 CloudWatch 크로스 계정 관찰성 섹션을 참조하세요.