Amazon CloudWatch Internet Monitor 쿼리 인터페이스 사용 - Amazon CloudWatch

Amazon CloudWatch Internet Monitor 쿼리 인터페이스 사용

Amazon CloudWatch Internet Monitor 쿼리 인터페이스를 사용하면 AWS 애플리케이션의 인터넷 트래픽을 더 자세히 파악할 수 있습니다. 쿼리 인터페이스를 사용하려면 선택한 데이터 필터를 사용하여 쿼리를 생성한 다음 쿼리를 실행하여 Internet Monitor 데이터의 하위 집합을 반환해야 합니다. 쿼리가 반환하는 데이터를 탐색하면 애플리케이션이 인터넷에서 어떻게 작동하는지 파악할 수 있습니다.

가용성 및 성능 점수, 전송된 바이트, 왕복 시간, 첫 번째 바이트까지 걸리는 시간(TTFB) 등 Internet Monitor가 모니터로 캡처하는 모든 지표를 쿼리하고 탐색할 수 있습니다.

Internet Monitor는 쿼리 인터페이스를 사용하여 Internet Monitor 콘솔 대시보드에서 탐색할 수 있는 데이터를 제공합니다. 대시보드(기록 탐색기 탭 또는 트래픽 인사이트 탭)의 검색 옵션을 사용하여 애플리케이션의 인터넷 데이터를 쿼리하고 필터링할 수 있습니다.

대시보드가 제공하는 것보다 더 유연하게 데이터를 탐색하고 필터링하려면 Internet Monitor API 작업을 AWS Command Line Interface 또는 AWS SDK와 함께 사용하여 쿼리 인터페이스를 직접 사용할 수 있습니다. 이 섹션에서는 쿼리 인터페이스에서 사용할 수 있는 쿼리 유형과 데이터의 하위 집합을 생성하여 애플리케이션의 인터넷 트래픽에 대한 인사이트를 얻기 위해 지정할 수 있는 필터를 소개합니다.

쿼리 인터페이스 사용 방법

쿼리 유형을 선택한 다음 필터 값을 지정하여 쿼리 인터페이스로 쿼리를 생성하고, 로그 파일 데이터의 원하는 특정 하위 집합을 반환합니다. 그런 다음 데이터 하위 집합을 사용하여 추가 필터링 및 정렬, 보고서 생성 등의 작업을 수행할 수 있습니다.

쿼리 프로세스는 다음과 같습니다.

  1. 쿼리를 실행하면 Internet Monitor가 쿼리의 고유한 query ID를 반환합니다. 이 섹션에서는 사용 가능한 쿼리 유형과 쿼리의 데이터를 필터링하는 옵션을 설명합니다. 작동 방식을 이해하려면 쿼리 예제에 대한 섹션을 검토할 수 있습니다.

  2. GetQueryResults API 작업을 통해 모니터 이름과 함께 쿼리 ID를 지정하여 쿼리에 대한 데이터 결과를 반환합니다. 각 쿼리 유형은 서로 다른 데이터 필드 세트를 반환합니다. 자세히 알아보려면 쿼리 결과 가져오기를 참조하세요.

쿼리 인터페이스는 다음과 같은 세 가지 쿼리 유형을 제공합니다. 각 쿼리 유형은 다음과 같이 로그 파일의 트래픽에 대한 다양한 정보 세트를 반환합니다.

  • 측정: 가용성 점수, 성능 점수, 총 트래픽, 왕복 시간을 5분 간격으로 제공합니다.

  • 상위 위치: 모니터링 중인 상위 위치 및 ASN 조합에 대한 가용성 점수, 성능 점수, 총 트래픽, TTFB(첫 번째 바이트까지 시간) 정보를 트래픽 볼륨별로 제공합니다.

  • 주요 위치 세부 정보: Amazon CloudFront용 TTFB, 현재 구성, 최고 성능의 Amazon EC2 구성을 1시간 간격으로 제공합니다.

각 쿼리 유형에서 다음 기준 중 하나 이상을 지정하여 데이터를 더 많이 필터링할 수 있습니다.

  • AWS 위치: AWS 위치의 경우 CloudFront 또는 AWS 리전(us-east-2, us-west-2) 등과 같이 지정할 수 있습니다.

  • ASN: 일반적으로 인터넷 서비스 제공업체(ISP) 인 ASN을 지정합니다.

  • 클라이언트 위치: 위치는 도시, 대도시, 구역 또는 국가를 지정합니다.

  • 지역: 일부 쿼리에서 geo를 지정합니다. 이는 Top locations 쿼리 유형을 사용하는 쿼리에는 필요하지만 다른 쿼리 유형에는 허용되지 않습니다. 필터 파라미터에서 geo 지정 시기를 이해하려면 쿼리 예제 섹션을 참조하세요.

데이터 필터링에 사용할 수 있는 연산자는 EQUALSNOT_EQUALS입니다. 매개 변수 필터링에 대한 자세한 내용은 FilterParameter API 작업을 참조하세요.

쿼리 인터페이스 작업에 대한 자세한 내용은 Amazon CloudWatch Internet Monitor API 참조 안내서의 다음 API 작업을 참조하세요.

  • 쿼리를 생성하고 실행하려면 StartQuery API 작업을 참조하세요.

  • 쿼리를 중지하려면 StopQuery API 작업을 참조하세요.

  • 생성한 쿼리의 데이터를 반환하려면 GetQueryResults API 작업을 참조하세요.

  • 쿼리 상태를 검색하려면 GetQueryStatus API 작업을 참조하세요.

쿼리 예제

모니터의 로그 파일에서 필터링된 데이터 세트를 검색하는 데 사용할 수 있는 쿼리를 생성하려면 StartQuery API 작업을 사용합니다. 쿼리 유형을 지정하고 쿼리의 매개 변수를 필터링합니다. 그런 다음 Internet Monitor 쿼리 인터페이스 API 작업을 사용하여 해당 쿼리를 사용한 쿼리 결과를 가져오면 작업하려는 데이터의 하위 집합이 검색됩니다.

쿼리 유형과 필터 매개변수의 작동 방식을 설명하기 위해 몇 가지 예를 살펴보겠습니다.

예 1

한 도시를 제외하고 특정 국가에 대한 모니터의 모든 로그 파일 데이터를 검색한다고 가정해 보겠습니다. 다음 예제는 이 시나리오의 StartQuery 작업으로 생성하 수 있는 쿼리의 필터 매개변수를 보여줍니다.

{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "MEASUREMENTS" FilterParameters: [ { Field: "country", Operator: "EQUALS", Values: ["Germany"] }, { Field: "city", Operator: "NOT_EQUALS", Values: ["Berlin"] }, ] }

예제 2

또 다른 예로 상위 위치를 대도시별로 확인한다고 가정해 보겠습니다. 이 시나리오에서는 다음 예제 쿼리를 사용할 수 있습니다.

{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "TOP_LOCATIONS" FilterParameters: [ { Field: "geo", Operator: "EQUALS", Values: ["metro"] }, ] }

예 3

이제 로스앤젤레스 대도시 지역의 주요 도시-네트워크 조합을 확인한다고 가정해 보겠습니다. 이렇게 하려면 geo=city을 지정하고 metro을 로스앤젤레스로 설정합니다. 이제 쿼리는 전체 상위 메트로+네트워크 대신 로스앤젤레스 대도시 지역의 상위 도시-네트워크를 반환합니다.

사용할 수 있는 예제 쿼리는 다음과 같습니다.

{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "TOP_LOCATIONS" FilterParameters: [ { Field: "geo", Operator: "EQUALS", Values: ["city"] }, { Field: "metro", Operator: "EQUALS", Values: ["Los Angeles"] } ] }

예 4

마지막으로 특정 세분화(예: 미국의 주)에 대한 TTFB 데이터를 검색한다고 가정해 보겠습니다.

다음은 이 시나리오의 예제 쿼리입니다.

{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "TOP_LOCATION_DETAILS" FilterParameters: [ { Field: "subdivision", Operator: "EQUALS", Values: ["California"] }, ] }

쿼리 결과 가져오기

쿼리를 정의한 후 다른 Internet Monitor API 작업인 GetQueryResults를 실행하여 쿼리와 함께 결과 세트를 반환할 수 있습니다. GetQueryResults를 실행할 때 모니터 이름과 함께 정의한 쿼리의 쿼리 ID를 지정합니다. GetQueryResults가 지정된 쿼리의 데이터를 결과 집합으로 검색합니다.

쿼리 실행 시 GetQueryResults을 사용하여 결과를 확인하기 전에 쿼리 실행이 완료되었는지 확인하세요. GetQueryStatus API 작업을 사용하여 쿼리가 완료되었는지 확인할 수 있습니다. 쿼리의 StatusSUCCEEDED인 경우 결과를 검토할 수 있습니다.

쿼리가 완료되면 다음 정보를 결과를 검토하는 데 사용할 수 있습니다. 쿼리를 생성할 때 사용하는 각 쿼리 유형에는 다음 목록에 설명된 대로 로그 파일의 고유한 데이터 필드 세트가 포함됩니다.

측정

measurements 쿼리 유형은 다음과 같은 데이터를 반환합니다.

timestamp, availability, performance, bytes_in, bytes_out, rtt_p50, rtt_p90, rtt_p95

상위 위치

top locations 쿼리 유형은 위치별로 데이터를 그룹화하고 기간 동안의 평균 데이터를 제공합니다. 반환되는 데이터에는 다음이 포함됩니다.

aws_location, city, metro, subdivision, country, asn, availability, performance, bytes_in, bytes_out, current_fbl, best_ec2, best_ec2_region, best_cf_fbl

참고로 city, metro, subdivisiongeo 필드에서 해당 위치 유형을 선택한 경우에만 반환됩니다. geo에 지정한 위치 유형에 따라 다음과 같은 위치 필드가 반환됩니다.

city = city, metro, subdivision, country metro = metro, subdivision, country subdivision = subdivision, country country = country
상위 위치 세부 정보

top locations details 쿼리 유형은 시간별로 그룹화된 데이터를 반환합니다. 이 쿼리는 다음과 같은 데이터를 반환합니다.

timestamp, current_service, current_fbl, best_ec2_fbl, best_ec2_region, best_cf_fbl

GetQueryResults API 작업을 실행하면 Internet Monitor가 응답으로 다음을 반환합니다.

  • 쿼리가 반환하는 결과를 포함하는 데이터 문자열 배열입니다. 이 정보는 Fields 필드에 따라 정렬된 배열로 반환되며 API 호출에서도 반환됩니다. Fields 필드를 사용하여 Data 리포지토리의 정보를 파싱한 다음 용도에 맞게 추가로 필터링하거나 정렬할 수 있습니다.

  • 쿼리가 (Data 필드 응답에서) 데이터를 반환한 필드를 나열하는 필드 배열입니다. 배열의 각 항목은 이름-데이터 유형 쌍입니다(예: availability_score-float).

문제 해결

쿼리 인터페이스 API 작업을 사용할 때 오류가 반환되는 경우 Amazon CloudWatch Internet Monitor를 사용에 필요한 권한이 있는지 확인하세요. 다음 권한이 활성화되어 있는지 확인하세요.

internetmonitor:StartQuery internetmonitor:GetQueryStatus internetmonitor:GetQueryResults internetmonitor:StopQuery

이러한 권한은 콘솔의 Internet Monitor 대시보드를 사용하기 위한 권장 AWS Identity and Access Management 정책에 포함되어 있습니다. 자세한 내용은 Amazon CloudWatch Internet Monitor에 대한 IAM 권한 단원을 참조하십시오.