콘텐츠로 이동

AWS ELB

스크립트 마켓의 「Guance 클라우드 동기화」 시리즈 스크립트 패키지를 사용해 클라우드 모니터링 및 클라우드 자산 데이터를 Guance로 동기화합니다.

설정

Func 설치

Guance 통합 - 확장 - 호스티드 Func 개통을 권장합니다: 모든 사전 조건이 자동으로 설치되어 있으니 스크립트 설치를 계속 진행하세요

직접 배포한 Func는 Func 직접 배포를 참고하세요

스크립트 설치

안내: 요구 사항을 충족하는 Amazon AK를 미리 준비하세요. (간단히 하려면 전역 읽기 전용 권한 ReadOnlyAccess를 직접 부여해도 됩니다)

호스티드 버전 개통 스크립트

  1. Guance 콘솔에 로그인합니다.
  2. [통합] 메뉴를 클릭하고 [클라우드 계정 관리]를 선택합니다.
  3. [클라우드 계정 추가]를 클릭하고 [AWS]를 선택한 뒤 화면에 필요한 정보를 입력합니다. 이전에 클라우드 계정 정보를 이미 설정했다면 이 단계는 건너뜁니다.
  4. [테스트]를 클릭합니다. 테스트가 성공하면 [저장]을 클릭하세요. 테스트에 실패하면 관련 설정이 올바른지 확인한 뒤 다시 테스트하세요.
  5. [클라우드 계정 관리] 목록에서 추가된 클라우드 계정을 확인할 수 있습니다. 해당 클라우드 계정을 클릭해 상세 페이지로 들어갑니다.
  6. 클라우드 계정 상세 페이지의 [통합] 버튼을 클릭한 뒤 미설치 목록에서 AWS ELB를 찾아 [설치] 버튼을 클릭하면 설치 화면이 뜨고, 그곳에서 설치하면 됩니다.

수동 개통 스크립트

  1. Func 콘솔에 로그인한 뒤 [스크립트 마켓]을 클릭해 Guance 스크립트 마켓으로 들어가 integration_aws_elb, integration_aws_applicationelb, integration_aws_networkelb, integration_aws_gatewayelb를 검색합니다.

  2. [설치]를 클릭한 뒤 다음 파라미터를 입력합니다: AWS AK ID, AK Secret 및 계정명.

  3. [배포 시작 스크립트]를 클릭하면 시스템이 자동으로 Startup 스크립트 세트를 생성하고, 해당 시작 스크립트를 자동으로 설정합니다.

  4. 활성화한 후에는 「관리 / 자동 트리거 구성」에서 해당 자동 트리거 구성을 확인할 수 있습니다. [실행]을 클릭하면 주기 실행을 기다리지 않고 즉시 한 번 실행할 수 있습니다. 잠시 후 실행 작업 기록과 해당 로그를 확인할 수 있습니다.

검증

  1. 「관리 / 자동 트리거 구성」에서 해당 작업의 자동 트리거 구성이 존재하는지 확인하고, 작업 기록 및 로그를 함께 확인해 이상이 있는지 점검합니다.
  2. Guance의 「기반 시설 / 사용자 정의」에서 자산 정보가 있는지 확인합니다.
  3. Guance의 「지표」에서 해당 모니터링 데이터가 있는지 확인합니다.

지표

Amazon CloudWatch를 설정하면 기본 지표 집합은 다음과 같습니다. 설정을 통해 더 많은 지표를 수집할 수 있습니다:

Amazon CloudWatch Application Load Balancer 지표 상세

Amazon CloudWatch Network Load Balancer 지표 상세

Amazon CloudWatch Gateway Load Balancer 지표 상세

Amazon CloudWatch Classic Load Balancer 지표 상세

Application Load Balancer 지표

지표 설명
ActiveConnectionCount 클라이언트에서 로드 밸런서 및 로드 밸런서에서 대상까지의 동시 활성 TCP 연결 총수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. Statistics: 가장 유용한 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
ClientTLSNegotiationErrorCount TLS 오류로 인해 로드 밸런서와 세션을 수립하지 못한 클라이언트가 시작한 TLS 연결 수입니다. 가능한 원인으로는 암호 또는 프로토콜 불일치, 또는 서버 인증서를 검증할 수 없어 클라이언트가 연결을 종료한 경우가 있습니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. Statistics: 가장 유용한 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
ConsumedLCUs 로드 밸런서가 사용한 로드 밸런서 용량 단위(LCU) 수입니다. 시간당 사용한 LCU 수에 대해 과금됩니다. 자세한 내용은 Elastic Load Balancing 가격을 참조하세요. 보고 기준: 항상 보고합니다. 통계: 전체. 차원 LoadBalancer
DesyncMitigationMode_NonCompliant_Request_Count RFC 7230 표준을 준수하지 않는 요청 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. Statistics: 가장 유용한 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
DroppedInvalidHeaderRequestCount 로드 밸런서가 요청을 라우팅하기 전에 잘못된 헤더 필드를 가진 HTTP 헤더를 삭제한 요청 수입니다. routing.http.drop_invalid_header_fields.enabled 속성이 true로 설정된 경우에만 로드 밸런서가 이러한 헤더를 삭제합니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 전체. 차원 AvailabilityZone, LoadBalancer
ForwardedInvalidHeaderRequestCount 로드 밸런서가 라우팅한, 잘못된 HTTP 헤더 필드를 가진 HTTP 헤더 요청 수입니다. routing.http.drop_invalid_header_fields.enabled 속성이 false로 설정된 경우에만 로드 밸런서가 이러한 헤더가 포함된 요청을 전달합니다. 보고 기준: 항상 보고합니다. 통계: 전체. 차원 AvailabilityZone, LoadBalancer
GrpcRequestCount IPv4 및 IPv6를 통해 처리된 gRPC 요청 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. Minimum, Maximum, Average는 모두 1을 반환합니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
HTTP_Fixed_Response_Count 고정 응답 작업이 성공한 횟수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
HTTP_Redirect_Count 리다이렉트 작업이 성공한 횟수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
HTTP_Redirect_Url_Limit_Exceeded_Count 응답 위치 헤더의 URL이 8K보다 커서 완료할 수 없었던 리다이렉트 작업 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
HTTPCode_ELB_3XX_Count 로드 밸런서에서 발생한 HTTP 3XX 리다이렉트 코드 수입니다. 이 카운트에는 대상이 생성한 응답 코드는 포함되지 않습니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
HTTPCode_ELB_4XX_Count 로드 밸런서에서 발생한 HTTP 4XX 클라이언트 오류 코드 수입니다. 이 카운트에는 대상이 생성한 응답 코드는 포함되지 않습니다. 요청이 잘못되었거나 불완전하면 클라이언트 오류가 생성됩니다. 로드 밸런서가 HTTP 460 오류 코드를 반환하는 경우를 제외하면 대상은 이러한 요청을 받지 않습니다. 이 카운트에는 대상이 생성한 어떤 응답 코드도 포함되지 않습니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. Minimum, Maximum, Average는 모두 1을 반환합니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
HTTPCode_ELB_5XX_Count 로드 밸런서에서 발생한 HTTP 5XX 서버 오류 코드 수입니다. 이 카운트에는 대상이 생성한 응답 코드는 포함되지 않습니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. Minimum, Maximum, Average는 모두 1을 반환합니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
HTTPCode_ELB_500_Count 로드 밸런서에서 발생한 HTTP 500 오류 코드 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
HTTPCode_ELB_502_Count 로드 밸런서에서 발생한 HTTP 502 오류 코드 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
HTTPCode_ELB_503_Count 로드 밸런서에서 발생한 HTTP 503 오류 코드 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
HTTPCode_ELB_504_Count 로드 밸런서에서 발생한 HTTP 504 오류 코드 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
IPv6ProcessedBytes 로드 밸런서가 IPv6를 통해 처리한 총 바이트 수입니다. 이 카운트는 ProcessedBytes에 포함됩니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. Statistics: 가장 유용한 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
IPv6RequestCount 로드 밸런서가 받은 IPv6 요청 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. Minimum, Maximum, Average는 모두 1을 반환합니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
NewConnectionCount 클라이언트에서 로드 밸런서 및 로드 밸런서에서 대상으로 새로 수립된 TCP 연결 총수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. Statistics: 가장 유용한 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
NonStickyRequestCount 기존 스티키 세션을 사용할 수 없어 로드 밸런서가 새 대상을 선택한 요청 수입니다. 예를 들어 요청이 새 클라이언트의 첫 번째 요청이어서 스티키 쿠키가 없거나, 스티키 쿠키는 제공되었지만 이 대상 그룹에 등록된 대상을 지정하지 않았거나, 스티키 쿠키 형식이 잘못되었거나 만료되었거나, 내부 오류로 인해 로드 밸런서가 스티키 쿠키를 읽지 못한 경우가 해당됩니다. 보고 기준: 대상 그룹에서 스티키가 활성화되어 있어야 합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
ProcessedBytes 로드 밸런서가 IPv4 및 IPv6를 통해 처리한 총 바이트 수입니다. 여기에는 HTTP 헤더와 HTTP 페이로드가 포함됩니다. 이 카운트에는 클라이언트와 Lambda 함수로 오가는 트래픽, 그리고 사용자 인증이 활성화된 경우 IdP로부터의 트래픽이 포함됩니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. Statistics: 가장 유용한 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
RejectedConnectionCount 로드 밸런서가 연결 수 한도에 도달하여 거부한 연결 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. Statistics: 가장 유용한 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
RequestCount IPv4 및 IPv6를 통해 처리된 요청 수입니다. 이 지표는 로드 밸런서 노드가 대상을 선택할 수 있는 요청에 대해서만 증가합니다. 대상을 선택하기 전에 거부된 요청은 이 지표에 반영되지 않습니다. 보고 기준: 항상 보고합니다. Statistics: 가장 유용한 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, TargetGroup, LoadBalancer
RuleEvaluations 주어진 1시간 평균 요청 속도에서 로드 밸런서가 처리한 규칙 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. Statistics: 가장 유용한 통계는 Sum입니다. 차원 LoadBalancer

AWS/ApplicationELB 네임스페이스에는 대상의 다음 지표가 포함됩니다.

지표 설명
HealthyHostCount 정상으로 간주되는 대상 수입니다. 보고 기준: 상태 확인이 활성화된 경우 보고합니다. 통계: 가장 유용한 통계는 Average, Minimum, Maximum입니다. 차원 TargetGroup, LoadBalancer``TargetGroup, AvailabilityZone, LoadBalancer``AvailabilityZone, TargetGroup, LoadBalancer
HTTPCode_Target_2XX_Count, HTTPCode_Target_3XX_Count, HTTPCode_Target_4XX_Count, HTTPCode_Target_5XX_Count 대상이 생성한 HTTP 응답 코드 수입니다. 로드 밸런서가 생성한 응답 코드는 포함되지 않습니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. Minimum, Maximum, Average는 모두 1을 반환합니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer``TargetGroup, LoadBalancer``TargetGroup, AvailabilityZone, LoadBalancer
RequestCountPerTarget 대상 그룹의 각 대상이 받은 평균 요청 수입니다. TargetGroup 차원으로 대상 그룹을 지정해야 합니다. 대상이 Lambda 함수인 경우 이 지표는 적용되지 않습니다. 보고 기준: 항상 보고합니다. 통계: 유일하게 유효한 통계는 Sum입니다. 이는 합계가 아니라 평균을 의미합니다. 차원 TargetGroup``AvailabilityZone, TargetGroup, LoadBalancer
TargetConnectionErrorCount 로드 밸런서와 대상 간 연결 수립이 성공하지 못한 횟수입니다. 대상이 Lambda 함수인 경우 이 지표는 적용되지 않습니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. Statistics: 가장 유용한 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer``TargetGroup, LoadBalancer``TargetGroup, AvailabilityZone, LoadBalancer
TargetResponseTime 요청이 로드 밸런서를 떠난 시점부터 대상의 응답을 받은 시점까지 걸린 시간(초)입니다. 액세스 로그의 target_processing_time 필드와 동일합니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. Statistics: 가장 유용한 통계는 AveragepNN.NN(백분위)입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer``TargetGroup, LoadBalancer``TargetGroup, AvailabilityZone, LoadBalancer
TargetTLSNegotiationErrorCount 대상과 세션을 수립하지 못한 로드 밸런서가 시작한 TLS 연결 수입니다. 가능한 원인으로는 암호 또는 프로토콜 불일치가 있습니다. 대상이 Lambda 함수인 경우 이 지표는 적용되지 않습니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. Statistics: 가장 유용한 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer``TargetGroup, LoadBalancer``TargetGroup, AvailabilityZone, LoadBalancer
UnHealthyHostCount 비정상으로 간주되는 대상 수입니다. 보고 기준: 상태 확인이 활성화된 경우 보고합니다. 통계: 가장 유용한 통계는 Average, Minimum, Maximum입니다. 차원 TargetGroup, LoadBalancer``TargetGroup, AvailabilityZone, LoadBalancer``AvailabilityZone, TargetGroup, LoadBalancer

AWS/ApplicationELB 네임스페이스에는 대상 그룹 상태에 대한 다음 지표가 포함됩니다. 자세한 내용은 대상 그룹 상태를 참조하세요.

지표 설명
HealthyStateDNS DNS 정상 상태 요구 사항을 충족하는 영역 수입니다. Statistics: 가장 유용한 통계는 Min입니다. 차원 LoadBalancer, TargetGroup``AvailabilityZone, LoadBalancer, TargetGroup
HealthyStateRouting 라우팅 정상 상태 요구 사항을 충족하는 영역 수입니다. Statistics: 가장 유용한 통계는 Min입니다. 차원 LoadBalancer, TargetGroup``AvailabilityZone, LoadBalancer, TargetGroup
UnhealthyRoutingRequestCount 라우팅 장애 조치 작업(실패 시 열기)으로 라우팅된 요청 수입니다. Statistics: 가장 유용한 통계는 Sum입니다. 차원 LoadBalancer, TargetGroup``AvailabilityZone, LoadBalancer, TargetGroup
UnhealthyStateDNS DNS 정상 상태 요구 사항을 충족하지 못해 DNS에서 비정상으로 표시된 영역 수입니다. Statistics: 가장 유용한 통계는 Min입니다. 차원 LoadBalancer, TargetGroup``AvailabilityZone, LoadBalancer, TargetGroup
UnhealthyStateRouting 라우팅 정상 상태 요구 사항을 충족하지 못해 로드 밸런서가 해당 영역의 모든 대상(비정상 대상 포함)으로 트래픽을 분산하는 영역 수입니다. Statistics: 가장 유용한 통계는 Min입니다. 차원 LoadBalancer, TargetGroup``AvailabilityZone, LoadBalancer, TargetGroup

AWS/ApplicationELB 네임스페이스에는 대상으로 등록된 Lambda 함수에 대한 다음 지표가 포함됩니다.

지표 설명
LambdaInternalError 로드 밸런서 또는 AWS Lambda 내부 문제로 인해 실패한 Lambda 함수 요청 수입니다. 오류 원인 코드는 액세스 로그의 error_reason 필드를 확인하세요. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 TargetGroup``TargetGroup, LoadBalancer
LambdaTargetProcessedBytes Lambda 함수 대상으로 향한 요청과 그 함수로부터의 응답에 대해 로드 밸런서가 처리한 총 바이트 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer
LambdaUserError Lambda 함수 문제로 인해 실패한 Lambda 함수 요청 수입니다. 예를 들어, 로드 밸런서에 해당 함수를 호출할 권한이 없거나, 로드 밸런서가 형식이 잘못되었거나 필수 필드가 누락된 JSON을 받거나, 요청 본문 또는 응답 크기가 최대 1 MB를 초과한 경우입니다. 오류 원인 코드는 액세스 로그의 error_reason 필드를 확인하세요. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 TargetGroup``TargetGroup, LoadBalancer

AWS/ApplicationELB 네임스페이스에는 사용자 인증에 대한 다음 지표가 포함됩니다.

지표 설명
ELBAuthError 인증 작업 설정 오류, 로드 밸런서가 IdP와 연결을 수립하지 못한 경우, 또는 로드 밸런서가 내부 오류로 인증 흐름을 완료하지 못한 경우로 인해 사용자 인증을 완료하지 못한 횟수입니다. 오류 원인 코드는 액세스 로그의 error_reason 필드를 확인하세요. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
ELBAuthFailure IdP가 사용자 접근을 거부했거나 인증 코드가 여러 번 사용되어 사용자 인증을 완료하지 못한 횟수입니다. 오류 원인 코드는 액세스 로그의 error_reason 필드를 확인하세요. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
ELBAuthLatency IdP에 ID 토큰과 사용자 정보를 조회하는 데 걸린 시간(밀리초)입니다. 이러한 작업 중 하나 이상이 실패하면 이는 실패 시간을 나타냅니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 모든 통계가 의미 있습니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
ELBAuthRefreshTokenSuccess 로드 밸런서가 IdP가 제공한 새로 고침 토큰으로 사용자 클레임을 성공적으로 갱신한 횟수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
ELBAuthSuccess 성공한 인증 작업 수입니다. 로드 밸런서가 IdP에서 사용자 ID 클레임을 검색하면 검증 워크플로우의 마지막에서 이 지표가 증가합니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. Statistics: 가장 유용한 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer
ELBAuthUserClaimsSizeExceeded 구성된 IdP가 반환한 사용자 클레임 크기가 11K 바이트를 초과한 횟수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 유일하게 의미 있는 통계는 Sum입니다. 차원 LoadBalancer``AvailabilityZone, LoadBalancer

Network Load Balancer 지표

지표 설명
ActiveFlowCount 클라이언트에서 대상으로 향하는 동시 흐름(또는 연결) 총수입니다. 이 지표에는 SYN_SENT 및 ESTABLISHED 상태의 연결이 포함됩니다. TCP 연결은 로드 밸런서에서 종료되지 않으므로, 대상에 열린 TCP 연결을 가진 클라이언트는 하나의 흐름으로 계산됩니다. 보고 기준: 항상 보고합니다. 통계: 가장 유용한 통계는 Average, Maximum, Minimum입니다. 차원: LoadBalancer``AvailabilityZone, LoadBalancer
ActiveFlowCount_TCP 클라이언트에서 대상으로 향하는 동시 TCP 흐름(또는 연결) 총수입니다. 이 지표에는 SYN_SENT 및 ESTABLISHED 상태의 연결이 포함됩니다. TCP 연결은 로드 밸런서에서 종료되지 않으므로, 대상에 열린 TCP 연결을 가진 클라이언트는 하나의 흐름으로 계산됩니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Average, Maximum, Minimum입니다. 차원: LoadBalancer,AvailabilityZone LoadBalancer
ConsumedLCUs 로드 밸런서가 사용한 로드 밸런서 용량 단위(LCU) 수입니다. 시간당 사용한 LCU 수에 대해 과금됩니다. 보고 기준: 항상 보고합니다. 통계: 전체. 차원: LoadBalancer
ConsumedLCUs_TCP 로드 밸런서가 TCP에 사용한 로드 밸런서 용량 단위(LCU) 수입니다. 시간당 사용한 LCU 수에 대해 과금됩니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 전체. 차원: LoadBalancer
NewFlowCount 해당 기간에 수립된 클라이언트에서 대상으로 향하는 새 흐름(또는 연결) 총수입니다. 보고 기준: 항상 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. 차원: LoadBalancer,AvailabilityZone LoadBalancer
NewFlowCount_TCP 해당 기간에 수립된 클라이언트에서 대상으로 향하는 새 TCP 흐름(또는 연결) 총수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. 차원: LoadBalancer,AvailabilityZone LoadBalancer
PeakPacketsPerSecond 샘플링 창 동안 10초마다 계산되는 최고 평균 패킷 속도(초당 처리된 패킷 수)입니다. 이 지표에는 상태 확인 트래픽이 포함됩니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Maximum입니다. 차원: LoadBalancer,AvailabilityZone LoadBalancer
ProcessedBytes TCP/IP 헤더를 포함하여 로드 밸런서가 처리한 총 바이트 수입니다. 이 카운트에는 대상과의 왕복 트래픽이 포함되며, 상태 확인 트래픽은 제외됩니다. 보고 기준: 항상 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. 차원: LoadBalancer,AvailabilityZone LoadBalancer
ProcessedBytes_TCP TCP 리스너가 처리한 총 바이트 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. 차원: LoadBalancer,AvailabilityZone LoadBalancer
ProcessedPackets 로드 밸런서가 처리한 총 패킷 수입니다. 이 카운트에는 대상과의 왕복 트래픽과 상태 확인 트래픽이 포함됩니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. 차원: LoadBalancer,AvailabilityZone LoadBalancer
TCP_Client_Reset_Count 클라이언트에서 대상으로 전송된 리셋(RST) 패킷 총수입니다. 이 리셋은 클라이언트가 생성하고 로드 밸런서가 전달합니다. 보고 기준: 항상 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. 차원: LoadBalancer,AvailabilityZone LoadBalancer
TCP_ELB_Reset_Count 로드 밸런서가 생성한 리셋(RST) 패킷 총수입니다. 보고 기준: 항상 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. 차원: LoadBalancer,AvailabilityZone LoadBalancer
TCP_Target_Reset_Count 대상에서 클라이언트로 전송된 리셋(RST) 패킷 총수입니다. 이 리셋은 대상이 생성하고 로드 밸런서가 전달합니다. 보고 기준: 항상 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. 차원: LoadBalancer,AvailabilityZone LoadBalancer
UnhealthyRoutingFlowCount 라우팅 장애 조치 작업(실패 시 열기)으로 라우팅된 흐름(또는 연결) 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. 차원: LoadBalancer,AvailabilityZone LoadBalancer

Gateway Load Balancer 지표

지표 설명
ActiveFlowCount 클라이언트에서 대상으로 향하는 동시 흐름(또는 연결) 총수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Average, Maximum, Minimum입니다. 차원: LoadBalancer``AvailabilityZone, LoadBalancer
ConsumedLCUs 로드 밸런서가 사용한 로드 밸런서 용량 단위(LCU) 수입니다. 시간당 사용한 LCU 수에 대해 과금됩니다. 보고 기준: 항상 보고합니다. 통계: 전체. 차원: LoadBalancer
HealthyHostCount 정상으로 간주되는 대상 수입니다. 보고 기준: 상태 확인이 활성화된 경우 보고합니다. 통계: 가장 유용한 통계는 Maximum과 Minimum입니다. 차원: LoadBalancer``TargetGroup,AvailabilityZone``LoadBalancer``TargetGroup
NewFlowCount 해당 기간에 수립된 클라이언트에서 대상으로 향하는 새 흐름(또는 연결) 총수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. 차원: LoadBalancer``AvailabilityZone, LoadBalancer
ProcessedBytes 로드 밸런서가 처리한 총 바이트 수입니다. 이 카운트에는 대상과의 왕복 트래픽이 포함되지만 상태 확인 트래픽은 포함되지 않습니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. 차원: LoadBalancer``AvailabilityZone, LoadBalancer
UnHealthyHostCount 비정상으로 간주되는 대상 수입니다. 보고 기준: 상태 확인이 활성화된 경우 보고합니다. 통계: 가장 유용한 통계는 Maximum과 Minimum입니다. 차원: LoadBalancer``TargetGroup,AvailabilityZone``LoadBalancer``TargetGroup

Classic Load Balancer 지표

지표 설명
BackendConnectionErrors 로드 밸런서와 등록된 인스턴스 간 연결 수립이 성공하지 못한 횟수입니다. 로드 밸런서는 오류 발생 시 연결을 재시도하므로, 이 카운트는 요청 속도를 초과할 수 있습니다. 이 카운트에는 상태 확인과 관련된 모든 연결 오류도 포함됩니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. Average, Minimum, Maximum은 각 로드 밸런서 노드별로 보고되므로 일반적으로 유용하지 않습니다. 다만 Minimum과 Maximum(또는 피크 대비 평균, 평균 대비 최저) 간 차이는 로드 밸런서 노드 이상 여부를 판별하는 데 사용할 수 있습니다. 예시: 로드 밸런서가 us-west-2a와 us-west-2b에 각각 2개 인스턴스를 가지고 있고, us-west-2a의 1개 인스턴스에 대한 연결 시도에서 백엔드 연결 오류가 발생했다고 가정합니다. us-west-2a의 sum 값에는 이러한 연결 오류가 포함되지만 us-west-2b의 sum 값에는 포함되지 않습니다. 따라서 로드 밸런서의 sum 값은 us-west-2a의 sum 값과 같습니다.
DesyncMitigationMode_NonCompliant_Request_Count [HTTP 리스너] RFC 7230 표준을 준수하지 않는 요청 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. 차원: LoadBalancer``AvailabilityZone, LoadBalancer
HealthyHostCount 로드 밸런서에 등록된 정상 인스턴스 수입니다. 새로 등록된 인스턴스는 첫 번째 상태 확인을 통과하면 정상으로 간주됩니다. 교차 가용 영역 로드 밸런싱이 활성화된 경우 LoadBalancerName 차원에 대해 모든 가용 영역에서 정상 인스턴스 수가 계산됩니다. 그렇지 않으면 각 가용 영역별로 계산됩니다. 보고 기준: 등록된 인스턴스가 있을 때 보고합니다. 통계: 가장 유용한 통계는 Average와 Maximum입니다. 이 통계는 로드 밸런서 노드가 결정합니다. 일부 로드 밸런서 노드는 잠시 동안 특정 인스턴스를 비정상으로 볼 수 있지만, 다른 노드는 해당 인스턴스를 정상으로 볼 수 있습니다. 예시: 로드 밸런서가 us-west-2a와 us-west-2b에 각각 2개 인스턴스를 가지고 있고, us-west-2a의 1개 인스턴스가 비정상이며 us-west-2b에는 비정상 인스턴스가 없다고 가정합니다. AvailabilityZone 차원에서 us-west-2a는 평균적으로 정상 1개, 비정상 1개 인스턴스를 가지며, us-west-2b는 평균적으로 정상 2개, 비정상 0개 인스턴스를 가집니다.
HTTPCode_Backend_2XX, HTTPCode_Backend_3XX, HTTPCode_Backend_4XX, HTTPCode_Backend_5XX [HTTP 리스너] 등록된 인스턴스가 생성한 HTTP 응답 코드 수입니다. 로드 밸런서가 생성한 응답 코드는 포함되지 않습니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. Minimum, Maximum, Average는 모두 1입니다. 예시: 로드 밸런서가 us-west-2a와 us-west-2b에 각각 2개 인스턴스를 가지고 있고, us-west-2a의 1개 인스턴스로 전송된 요청이 HTTP 500 응답을 발생시켰다고 가정합니다. us-west-2a의 sum 값에는 이러한 오류 응답이 포함되지만 us-west-2b의 sum 값에는 포함되지 않습니다. 따라서 로드 밸런서의 sum 값은 us-west-2a의 sum 값과 같습니다.
HTTPCode_ELB_4XX [HTTP 리스너] 로드 밸런서가 생성한 HTTP 4XX 클라이언트 오류 코드 수입니다. 요청이 잘못되었거나 불완전하면 클라이언트 오류가 생성됩니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. Minimum, Maximum, Average는 모두 1입니다. 예시: 로드 밸런서가 us-west-2a와 us-west-2b에서 활성화되어 있고, 클라이언트 요청에 잘못된 요청 URL이 포함되어 있다고 가정합니다. 그 결과 모든 가용 영역에서 클라이언트 오류가 증가할 수 있습니다. 로드 밸런서의 sum 값은 각 가용 영역 값의 총합입니다.
HTTPCode_ELB_5XX [HTTP 리스너] 로드 밸런서가 생성한 HTTP 5XX 서버 오류 코드 수입니다. 이 카운트에는 등록된 인스턴스가 생성한 응답 코드는 포함되지 않습니다. 정상 인스턴스가 로드 밸런서에 등록되어 있지 않거나, 요청 속도가 인스턴스 또는 로드 밸런서의 용량을 초과하면(스필오버) 이 지표가 보고됩니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. Minimum, Maximum, Average는 모두 1입니다. 예시: 로드 밸런서가 us-west-2a와 us-west-2b에서 활성화되어 있고, us-west-2a의 인스턴스 지연이 높아 요청 응답이 느리다고 가정합니다. 그 결과 us-west-2a의 로드 밸런서 노드 서지 큐가 가득 차서 클라이언트가 503 오류를 받습니다. us-west-2b가 계속 정상적으로 응답하면 로드 밸런서의 sum 값은 us-west-2a의 sum 값과 같습니다.
Latency [HTTP 리스너] 로드 밸런서가 요청을 등록된 인스턴스로 보낸 시점부터 해당 인스턴스가 응답 헤더 전송을 시작할 때까지 걸린 총 시간(초)입니다. [TCP 리스너] 로드 밸런서가 등록된 인스턴스와 연결을 성공적으로 수립하는 데 걸린 총 시간(초)입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Average입니다. Maximum은 일부 요청이 평균보다 훨씬 오래 걸리는지 확인하는 데 사용할 수 있습니다. Minimum은 일반적으로 유용하지 않습니다. 예시: 로드 밸런서가 us-west-2a와 us-west-2b에 각각 2개 인스턴스를 가지고 있고, us-west-2a의 1개 인스턴스로 전송된 요청의 지연이 높다고 가정합니다. us-west-2a의 average 값은 us-west-2b의 average 값보다 높게 나타납니다.
RequestCount 지정된 기간(1분 또는 5분) 동안 완료된 요청 또는 발신 연결 수입니다. [HTTP 리스너] 등록된 인스턴스의 HTTP 오류 응답을 포함하여 수신 및 라우팅된 요청 수입니다. [TCP 리스너] 등록된 인스턴스로 발신한 연결 수입니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. Minimum, Maximum, Average는 모두 1을 반환합니다. 예시: 로드 밸런서가 us-west-2a와 us-west-2b에 각각 2개 인스턴스를 가지고 있고, 로드 밸런서로 100개의 요청이 전송되었다고 가정합니다. 60개의 요청이 us-west-2a로 전송되어 각 인스턴스가 30개씩 받았고, 40개의 요청이 us-west-2b로 전송되어 각 인스턴스가 20개씩 받았습니다. AvailabilityZone 차원에서는 us-west-2a가 총 60개 요청, us-west-2b가 총 40개 요청입니다. LoadBalancerName 차원에서는 총 100개 요청입니다.
SpilloverCount 서지 큐가 가득 차서 거부된 요청 총수입니다. [HTTP 리스너] 로드 밸런서가 HTTP 503 오류 코드를 반환합니다. [TCP 리스너] 로드 밸런서가 연결을 종료합니다. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Sum입니다. Average, Minimum, Maximum은 각 로드 밸런서 노드별로 보고되므로 일반적으로 유용하지 않습니다. 예시: 로드 밸런서가 us-west-2a와 us-west-2b에서 활성화되어 있고, us-west-2a의 인스턴스 지연이 높아 요청 응답이 느리다고 가정합니다. 그 결과 us-west-2a의 로드 밸런서 노드 서지 큐가 가득 차서 오버플로가 발생합니다. us-west-2b가 계속 정상적으로 응답하면 로드 밸런서의 sum 값은 us-west-2a의 sum 값과 같습니다.
SurgeQueueLength 정상 인스턴스로 라우팅되기를 기다리는 요청(HTTP 리스너) 또는 연결(TCP 리스너) 총수입니다. 큐의 최대 크기는 1024입니다. 큐가 가득 차면 추가 요청 또는 연결은 거부됩니다. 자세한 내용은 SpilloverCount를 참조하세요. 보고 기준: 0이 아닌 값이 있을 때 보고합니다. 통계: 가장 유용한 통계는 Maximum입니다. 이는 대기 중인 요청의 피크를 나타냅니다. Average 통계를 Minimum, Maximum과 함께 사용하면 대기 중인 요청 범위를 확인할 수 있습니다. Sum은 유용하지 않습니다. 예시: 로드 밸런서가 us-west-2a와 us-west-2b에서 활성화되어 있고, us-west-2a의 인스턴스 지연이 높아 요청 응답이 느리다고 가정합니다. 그 결과 us-west-2a의 로드 밸런서 노드 서지 큐가 가득 차서 클라이언트 응답 시간이 증가할 가능성이 큽니다. 이런 상황이 계속되면 로드 밸런서가 오버플로할 수 있습니다(SpilloverCount 지표 참조). us-west-2b가 계속 정상적으로 응답하면 로드 밸런서의 max 값은 us-west-2a의 max 값과 같습니다.
UnHealthyHostCount 로드 밸런서에 등록된 비정상 인스턴스 수입니다. 인스턴스가 상태 확인에 대해 구성된 비정상 임계값을 초과하면 비정상으로 간주됩니다. 비정상 인스턴스는 상태 확인에 대해 구성된 정상 임계값을 충족하면 다시 정상으로 간주됩니다. 보고 기준: 등록된 인스턴스가 있을 때 보고합니다. 통계: 가장 유용한 통계는 Average와 Minimum입니다. 이 통계는 로드 밸런서 노드가 결정합니다. 일부 로드 밸런서 노드는 잠시 동안 특정 인스턴스를 비정상으로 볼 수 있지만, 다른 노드는 해당 인스턴스를 정상으로 볼 수 있습니다. 예시: HealthyHostCount를 참조하세요.

로드 밸런서의 지표 차원

Application / Network / Gateway 로드 밸런서의 지표를 필터링하려면 다음 차원을 사용하세요.

차원 설명
AvailabilityZone 가용 영역별로 지표 데이터를 필터링합니다.
LoadBalancer 로드 밸런서별로 지표 데이터를 필터링합니다. 다음 형식으로 로드 밸런서를 지정합니다: app/load-balancer-name/1234567890123456 (로드 밸런서 ARN의 끝부분).
TargetGroup 대상 그룹별로 지표 데이터를 필터링합니다. 다음 형식으로 대상 그룹을 지정합니다: targetgroup/target-group-name/1234567890123456 (대상 그룹 ARN의 끝부분).

Classic 로드 밸런서의 지표를 필터링하려면 다음 차원을 사용하세요.

차원 설명
AvailabilityZone 가용 영역별로 지표 데이터를 필터링합니다.
LoadBalancerName 지정한 로드 밸런서별로 지표 데이터를 필터링합니다.

로그

ELB 로그는 직접적으로 외부에 수집 방식을 노출하지 않으므로, 먼저 로그를 S3 버킷에 저장한 다음 Lambda를 통해 로그 데이터를 가져와 플랫폼에 보고해야 합니다.

Application ELB 로그 활성화

  1. 해당 로드 밸런서를 선택해 상세 페이지로 들어갑니다.
  2. 상세 페이지에서 「작업」을 클릭한 뒤 「로드 밸런서 속성 편집」을 선택합니다.
  3. 「모니터링」 항목에서 「액세스 로그」를 활성화하고, 해당 S3 버킷을 선택합니다. alt text
  4. 저장합니다.

Lambda 설정

참고: Lambda가 S3 로그 데이터를 가져오기

로그 Pipeline

grok(_, "%{NOTSPACE:protocal} %{TIMESTAMP_ISO8601:timestamp} %{NOTSPACE:LoadBalancer} %{IP:client}:%{POSINT:client_port} %{IP:target}:%{POSINT:target_port} %{NUMBER:request_processing_time} %{NUMBER:target_processing_time} %{NUMBER:response_processing_time} %{NUMBER:elb_status_code} %{NUMBER:target_status_code} %{NUMBER:received_bytes} %{NUMBER:sent_bytes} \"%{NOTSPACE:http_method} %{NOTSPACE:uri} HTTP/%{NUMBER:http_version}\" \"%{DATA:user_agent}\" %{NOTSPACE:ssl_cipher} %{NOTSPACE:ssl_protocol} %{NOTSPACE:target_group_arn} \"%{NOTSPACE:x_amzn_trace_id}\" \"%{DATA:domain_name}\" \"%{DATA:chosen_cert_arn}\" %{NUMBER:matched_rule_priority} %{TIMESTAMP_ISO8601:request_creation_time} \"%{WORD:actions_executed}\" \"%{DATA:redirect_url}\" \"%{DATA:error_reason}\" \"%{IP:target_host}:%{POSINT:target_host_port_list}\" \"%{NUMBER:target_status_code_list}\" \"%{DATA:classification}\" \"%{DATA:classification_reason}\" %{NOTSPACE:conn_trace_id}")

status = "info"

cast(elb_status_code,"int")

if elb_status_code >=400 {
  status = "error"
}

add_key("aws_log_type","access_log")
add_key(status,status)
aws_json=load_json(aws)

lambda_func_data = aws_json["invoked_function_arn"]

add_key(s3_bucket,aws_json["s3"]["bucket"])

grok(lambda_func_data, "arn:aws:lambda:%{DATA:region}:%{NUMBER:account_id}:function:%{NOTSPACE:lambda_func}")

객체

수집된 AWS ELB 객체 데이터 구조입니다. 「인프라-사용자 정의」에서 객체 데이터를 확인할 수 있습니다.

{
  "measurement": "aws_aelb",
  "tags": {
    "name"                 : "app/openway/8e8d762xxxxxx",
    "RegionId"             : "cn-northwest-1",
    "LoadBalancerArn"      : "arn:aws-cn:elasticloadbalancing:cn-northwest-1:588271xxxxx:loadbalancer/app/openway/8e8d762xxxxxx",
    "State"                : "active",
    "Type"                 : "application",
    "VpcId"                : "vpc-2exxxxx",
    "Scheme"               : "internet-facing",
    "DNSName"              : "openway-203509xxxx.cn-northwest-1.elb.amazonaws.com.cn",
    "LoadBalancerName"     : "openway",
    "CanonicalHostedZoneId": "ZM7IZAIxxxxxx"
  },
  "fields": {
    "CreatedTime"         : "2022-03-09T06:13:31Z",
    "ListenerDescriptions": "{JSON 데이터}",
    "AvailabilityZones"   : "{가용 영역 JSON 데이터}",
    "message"             : "{인스턴스 JSON 데이터}"
  }
}

주의: tagsfields의 필드는 이후 업데이트에 따라 변경될 수 있습니다*

팁 1: AWS ELB 지표 집합은 로드 밸런서 유형에 따라 네 가지로 나뉩니다:

  1. Application ELB에 해당하는 지표 집합은 aws_aelb
  2. Network ELB에 해당하는 지표 집합은 aws_nelb
  3. Gateway ELB에 해당하는 지표 집합은 aws_gelb
  4. Classic ELB에 해당하는 지표 집합은 aws_elb

팁 2: tags.name 값은 두 가지 방식으로 나뉩니다:

  1. Classic Load Balancers는 LoadBalancerName 필드를 사용합니다.
  2. Application, Network, Gateway 세 유형의 Load Balancers는 로드 밸런서 ARN의 끝부분(LoadBalancerArn)을 사용합니다.

Network Load Balancer 예시는 다음과 같습니다:

`LoadBalancerArn`는`arn:awS-cn:elasticloadbalancing:cn-northwest-1:xxxx1335135:loadbalancer/net/k8s-forethou-kodongin-xxxxa46f01/xxxxe75ae81d08c2`입니다.

이에 대응하는 tags.namenet/k8s-forethou-kodongin-xxxxa46f01/xxxxe75ae81d08c2입니다.

팁 3:

  • fields.message, tags.AvailabilityZones는 JSON 직렬화 후의 문자열입니다.
  • tags.state 필드는 Load Balancers 상태를 나타내며, 값은 active, provisioning, active_impaired, failed입니다. (classic 유형의 로드 밸런스 인스턴스에는 이 필드가 없습니다.)
  • tags.Type 필드는 Load Balancers 유형을 나타내며, 값은 application, network, gateway, classic입니다.
  • tags.Scheme 필드는 Load Balancers 모드를 나타내며, 값은 internet-facing, internal입니다.
  • fields.ListenerDescriptions 필드는 해당 로드 밸런스의 리스너 목록입니다.
  • fields.AvailabilityZones 필드는 로드 밸런서가 연관된 Amazon Route 53 가용 영역 정보를 나타냅니다.

문서 평가

이 페이지가 도움이 되었나요?