Lambda 함수 지표 작업 - AWS Lambda

Lambda 함수 지표 작업

AWS Lambda 함수가 이벤트 처리를 마치면 Lambda는 호출에 대한 지표를 Amazon CloudWatch로 전송합니다. 이러한 지표에 대해서는 요금이 부과되지 않습니다.

CloudWatch 콘솔에서 이러한 지표를 사용하여 그래프와 대시보드를 빌드할 수 있습니다. 경보를 설정하여 사용률, 성능 또는 오류율의 변화에 대응할 수 있습니다. Lambda는 1분 간격으로 지표 데이터를 CloudWatch로 보냅니다. Lambda 함수에 대한 보다 즉각적인 인사이트를 원하는 경우, 고해상도로 사용자 지정 지표를 생성할 수 있습니다. 사용자 지정 지표 및 CloudWatch 경보에는 요금이 부과됩니다. 자세한 내용은 CloudWatch 요금을 참조하세요.

이 페이지에서는 CloudWatch 콘솔에서 사용할 수 있는 Lambda 함수 호출, 성능 및 동시성 지표를 설명합니다.

CloudWatch 콘솔에서 지표 보기

또한, CloudWatch 콘솔을 사용하여 함수 이름, 별칭 또는 버전별로 함수 지표를 필터링하고 정렬할 수 있습니다.

CloudWatch 콘솔에서 지표 보기
  1. CloudWatch 콘솔의 지표 페이지(AWS/Lambda 네임스페이스)를 엽니다.

  2. 차원을 선택합니다.

    • 함수 이름별(FunctionName) – 함수의 모든 버전 및 별칭에 대한 집계 지표를 봅니다.

    • 리소스별(Resource) – 함수의 버전 또는 별칭에 대한 지표를 봅니다.

    • 실행된 버전별(ExecutedVersion) – 별칭과 버전의 조합에 대한 지표를 봅니다. ExecutedVersion 차원을 사용하여 가중치 기반 별칭의 두 대상인 함수의 두 버전에 대한 오류율을 비교합니다.

    • 전체 함수(없음) – 현재 AWS 리전의 모든 함수에 대한 집계 지표를 봅니다.

  3. 지표를 선택하여 그래프에 추가합니다.

기본적으로 그래프는 모든 지표에 대해 Sum 통계를 사용합니다. 다른 통계를 선택하고 그래프를 사용자 지정하려면 그래프로 표시된 지표 탭의 옵션을 사용합니다.

참고

지표의 타임스탬프는 함수가 호출된 시기를 반영합니다. 호출 기간에 따라 지표를 내보내기까지 몇 분이 걸릴 수 있습니다. 예를 들어, 함수에 10분의 제한 시간이 있는 경우 정확한 지표를 위해 이전의 10분 이상을 살펴보세요.

CloudWatch에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서를 참조하세요.

지표의 유형

다음 섹션에서는 CloudWatch 콘솔에서 사용할 수 있는 지표의 유형을 설명합니다.

호출 지표 사용

호출 지표는 호출 결과의 이진 표시기입니다. 예를 들어, 함수가 오류를 반환하면 Lambda에서 값이 1인 Errors 지표를 보냅니다. 1분마다 발생한 함수 오류의 수를 확인하려면 1분의 기간에 대한 Sum 지표의 Errors를 확인합니다.

Sum 통계로 다음 지표를 확인합니다.

호출 지표
  • Invocations – 성공적인 호출 및 함수 오류를 유발하는 호출을 포함하여 함수 코드가 호출된 횟수입니다. 호출 요청이 제한되거나 다른 방식으로 호출 오류가 발생하는 경우 호출이 기록되지 않습니다. 이는 요금이 청구된 요청 수와 동일합니다.

  • Errors – 함수 오류가 발생하는 호출 수. 함수 오류에는 코드에서 발생하는 예외와 Lambda 런타임에서 발생하는 예외가 포함됩니다. 런타임은 시간 초과 및 구성 오류와 같은 문제에 대한 오류를 반환합니다. 오류율을 계산하려면 Errors의 값을 Invocations의 값으로 나눕니다. 오류 지표의 타임스탬프는 오류가 발생한 시기가 아니라 함수가 호출된 시기를 반영합니다.

  • DeadLetterErrors비동기 호출의 경우 Lambda에서 배달 못한 편지 대기열에 이벤트를 보내려고 시도하지만 실패하는 횟수입니다. 배달 못한 편지 오류는 권한 오류, 잘못 구성된 리소스 또는 크기 제한으로 인해 발생할 수 있습니다.

  • DestinationDeliveryFailures – 비동기 호출의 경우 Lambda에서 대상에 이벤트를 보내려고 시도하지만 실패하는 횟수입니다. 전송 오류는 권한 오류, 잘못 구성된 리소스 또는 크기 제한으로 인해 발생할 수 있습니다.

  • Throttles – 제한된 호출 요청 수. 모든 함수 인스턴스가 요청을 처리 중이고 확장할 수 있는 동시성이 없는 경우 Lambda는 TooManyRequestsException 오류를 통해 추가 요청을 거부합니다. 제한된 요청 및 기타 호출 오류는 Invocations 또는 Errors로 간주되지 않습니다.

  • ProvisionedConcurrencyInvocations프로비저닝된 동시성에서 함수 코드가 호출되는 횟수입니다.

  • ProvisionedConcurrencySpilloverInvocations – 모든 프로비저닝된 동시성을 사용 중인 경우, 표준 동시성에서 함수 코드가 호출되는 횟수입니다.

성능 지표 사용

성능 지표는 단일 호출에 대한 성능 세부 정보를 제공합니다. 예를 들어, Duration 지표는 함수가 이벤트를 처리하는 데 소요되는 시간(밀리초)을 나타냅니다. 함수가 이벤트를 처리하는 속도를 확인하려면 Average 또는 Max 통계와 함께 이러한 지표를 살펴봅니다.

성능 지표
  • Duration – 함수 코드가 이벤트를 처리하는 데 소요되는 시간. 요금이 청구되는 호출 소요 시간은 가장 가까운 밀리초로 반올림된 Duration 값입니다.

  • PostRuntimeExtensionsDuration – 함수 코드가 완료된 후 런타임이 확장을 위해 코드를 실행하는 데 소비하는 누적 시간입니다.

  • IteratorAge – 스트림에서 읽는 이벤트 소스 매핑의 경우 이벤트의 마지막 레코드의 경과 시간. 경과 시간은 스트림이 레코드를 수신하는 시점과 이벤트 소스 매핑이 이벤트를 함수에 보내는 시점 사이의 시간입니다.

  • OffsetLag - 자체 관리형 Apache Kafka 및 Amazon Managed Streaming for Apache Kafka(Amazon MSK) 이벤트 소스의 경우 주제에 작성된 마지막 레코드와 Lambda 함수의 소비자 그룹이 처리한 마지막 레코드 간의 오프셋 차이입니다. Kafka 주제에는 여러 개의 파티션이 있을 수 있지만, 이 지표는 주제 수준에서 오프셋 지연을 측정합니다.

Duration백분위수 통계도 지원합니다. 평균 및 최대값 통계를 왜곡하는 특이값을 제외하려면 백분위수를 사용합니다. 예를 들어, p95 통계는 가장 느린 5%를 제외하고 호출의 최대 지속 시간 95%를 보여줍니다.

동시성 지표 사용

Lambda는 동시성 지표를 함수, 버전, 별칭 또는 AWS 리전에서 이벤트를 처리하는 인스턴스 수의 집계로 보고합니다. 동시성 제한에 얼마나 근접했는지 확인하려면 Max 통계와 함께 이러한 지표를 살펴봅니다.

동시성 지표
  • ConcurrentExecutions – 이벤트를 처리 중인 함수 인스턴스의 개수. 이 수가 리전의 동시 실행 할당량 또는 함수에 대해 구성한 예약된 동시성 제한에 도달하면 Lambda가 추가 호출 요청을 제한합니다.

  • ProvisionedConcurrentExecutions프로비저닝된 동시성에서 이벤트를 처리 중인 함수 인스턴스의 개수. 프로비저닝된 동시성이 있는 별칭 또는 버전을 호출할 때마다 Lambda는 현재 개수를 내보냅니다.

  • ProvisionedConcurrencyUtilization – 버전 또는 별칭의 경우 ProvisionedConcurrentExecutions 값을 할당된 총 프로비저닝된 동시성 양으로 나눈 값. 예를 들어, .5는 할당된 프로비저닝된 동시성의 50%가 사용 중임을 나타냅니다.

  • UnreservedConcurrentExecutions – 리전의 경우 예약된 동시성이 없는 함수에서 처리 중인 이벤트의 수입니다.