Lambda 함수 타임아웃 구성

Lambda 함수 타임아웃 구성

Lambda는 정해진 시간 동안 코드를 실행한 뒤 타임아웃됩니다. 타임아웃은 Lambda 함수가 실행될 수 있는 최대 시간(초)입니다. 이 설정의 기본값은 3초이며, 1초 단위로 조정해 최대 900초(15분)까지 설정할 수 있습니다.

출처: AWS Lambda 개발자 안내서

본문

AWS Lambda Managed Instances를 사용하는 함수는 비동기 호출과 이벤트 소스 매핑 호출(Amazon MQ와 Amazon DocumentDB 제외)에서 최대 5,400초(90분) 값을 지원합니다.

이 문서는 Lambda 함수의 타임아웃 설정을 언제, 어떻게 갱신하는지 설명합니다.

이 페이지의 내용:

  • Lambda 함수에 적절한 타임아웃 값 결정
  • 타임아웃 구성(콘솔)
  • 타임아웃 구성(AWS CLI)
  • 타임아웃 구성(AWS SAM)

Lambda 함수에 적절한 타임아웃 값 결정

타임아웃 값이 함수의 평균 실행 시간에 가까우면 함수가 예상 밖으로 타임아웃될 위험이 더 높습니다. 함수의 실행 시간은 데이터 전송·처리량, 함수가 상호작용하는 서비스의 지연 시간에 따라 달라질 수 있습니다. 타임아웃의 흔한 원인은 다음과 같습니다.

  • Amazon Simple Storage Service(S3)에서의 다운로드가 평균보다 크거나 오래 걸리는 경우.
  • 함수가 다른 서비스에 요청을 보냈는데 응답이 더 오래 걸리는 경우.
  • 함수에 제공된 파라미터가 함수에서 더 많은 계산 복잡성을 요구해 호출이 더 오래 걸리는 경우.

애플리케이션을 테스트할 때는 테스트가 데이터의 크기·양과 현실적인 파라미터 값을 정확히 반영하는지 확인하세요. 테스트는 편의를 위해 작은 샘플을 쓰는 경우가 많지만, 워크로드에서 합리적으로 예상되는 상한 수준의 데이터셋을 사용해야 합니다.

타임아웃 구성(콘솔)

Lambda 콘솔에서 함수 타임아웃을 구성할 수 있습니다.

  1. Lambda 콘솔의 Functions 페이지를 엽니다.
  2. 함수를 선택합니다.
  3. Configuration 탭을 선택한 뒤 General configuration을 선택합니다.
  4. General configuration 아래에서 Edit을 선택합니다.
  5. Timeout에서 1~900초(15분) 사이의 값을 설정합니다.
  6. Save를 선택합니다.

타임아웃 구성(AWS CLI)

update-function-configuration 명령으로 타임아웃 값(초)을 구성할 수 있습니다. 다음 예제 명령은 함수 타임아웃을 120초(2분)로 늘립니다.

aws lambda update-function-configuration \
  --function-name my-function \
  --timeout 120

타임아웃 구성(AWS SAM)

AWS Serverless Application Model(SAM)로 함수 타임아웃 값을 구성할 수 있습니다. template.yaml 파일의 Timeout 속성을 갱신한 뒤 sam deploy를 실행하세요.

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: An AWS Serverless Application Model template describing your function.
Resources:
  my-function:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: .
      Description: ''
      MemorySize: 128
      Timeout: 120
      # Other function properties...

더 알아보기 (Learn more)