AWS Lambda 함수 지표 작업 - AWS Lambda

AWS Lambda 함수 지표 작업

함수가 이벤트 처리를 마치면 Lambda에서 호출에 대한 지표를 Amazon CloudWatch에 보냅니다. CloudWatch 콘솔에서 이러한 지표를 사용하여 그래프와 대시보드를 작성하고 사용률, 성능 또는 오류율의 변화에 대응하도록 경보를 설정할 수 있습니다. 또한 차원을 사용하여 함수 이름, 별칭 또는 버전별로 함수 지표를 필터링하고 정렬할 수 있습니다.

CloudWatch 콘솔에서 지표를 확인하려면

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

  2. 차원을 선택합니다.

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

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

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

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

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

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

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

CloudWatch에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서 단원을 참조하십시오.

호출 지표 사용

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

Sum 통계와 함께 다음 지표를 확인해야 합니다.

호출 지표

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

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

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

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

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

  • ProvisionedConcurrencyInvocations프로비저닝된 동시성에서 함수 코드가 실행되는 횟수.

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

성능 지표 사용

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

성능 지표

  • Duration – 함수 코드가 이벤트를 처리하는 데 소요되는 시간. 함수 인스턴스에 의해 처리되는 첫 번째 이벤트의 경우 초기화 시간이 여기에 포함됩니다. 요금이 청구되는 호출 소요 시간은 가장 가까운 100밀리초로 반올림된 Duration 값입니다.

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

Duration백분위수 통계도 지원합니다. 평균 및 최대값 통계를 왜곡하는 특이값을 제외하려면 백분위수를 사용합니다. 예를 들어, P95 통계는 가장 느린 5%를 제외하고 95%의 실행에 대한 최대 소요 시간을 표시합니다.

동시성 지표 사용

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

동시성 지표

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

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

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

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