View a markdown version of this page

Lambda 지속성 함수 구성 - AWS Lambda

Lambda 지속성 함수 구성

지속성 실행 설정은 Lambda 함수가 실행되는 기간과 서비스에서 실행 기록을 유지하는 기간을 제어합니다. 함수의 지속성 실행을 활성화하도록 이러한 설정을 구성합니다.

지속성 실행 활성화

실행 제한 시간 및 기록 보존을 설정하도록 함수를 생성할 때 DurableConfig 객체를 구성합니다. 함수를 생성할 때만 지속성 실행을 활성화할 수 있습니다. 기존 함수에서는 활성화할 수 없습니다.

AWS CLI
aws lambda create-function \ --function-name my-durable-function \ --runtime nodejs24.x \ --role arn:aws:iam::123456789012:role/my-durable-role \ --handler index.handler \ --zip-file fileb://function.zip \ --durable-config '{"ExecutionTimeout": 3600, "RetentionPeriodInDays": 30}'
CloudFormation
Resources: MyDurableFunction: Type: AWS::Lambda::Function Properties: FunctionName: my-durable-function Runtime: nodejs24.x Handler: index.handler Code: ZipFile: | // Your durable function code DurableConfig: ExecutionTimeout: 3600 RetentionPeriodInDays: 30

구성 파라미터:

  • ExecutionTimeout - Lambda가 실행을 중지하기 전에 지속성 실행이 실행될 수 있는 최대 시간(초)입니다. 이 제한 시간은 개별 함수 간접 호출이 아니라 전체 지속성 실행에 적용됩니다. 유효 범위: 1~31,622,400.

  • RetentionPeriodInDays - 지속성 실행이 완료된 후 실행 기록을 유지하는 기간(일)입니다. 이 기간이 지나면 GetDurableExecutionHistory API를 통해 실행 기록을 더 이상 사용할 수 없습니다. 유효 범위: 1~90.

전체 API 참조는 Lambda API 참조의 DurableConfig를 참조하세요.

구성 모범 사례

프로덕션용으로 지속성 함수 구성 시 다음 모범 사례를 따릅니다.

  • 적절한 실행 제한 시간 설정 - 워크플로의 최대 예상 기간에 따라 ExecutionTimeout을 구성합니다. 제한 시간이 불필요하게 길면 비용 및 리소스 할당에 영향을 미치므로 너무 길게 설정하지 마세요.

  • 보존과 스토리지 비용의 균형 유지 - 디버깅 및 감사 요구 사항에 따라 RetentionPeriodInDays를 설정합니다. 보존 기간이 길수록 스토리지 비용이 증가합니다.

  • 상태 크기 모니터링 - 상태 객체가 크면 스토리지 비용이 증가하고 성능에 영향을 미칠 수 있습니다. 상태 크기를 최소화하고 대용량 데이터에는 외부 스토리지를 사용하세요.

  • 적절한 로깅 구성 - 장기 실행 워크플로 문제를 해결하기 위해 세부 로깅을 활성화하되, 로그 볼륨과 비용에 대한 영향을 고려합니다.

프로덕션 구성 예제:

{ "ExecutionTimeout": 86400, "RetentionPeriodInDays": 7 }

이 예제에서는 24시간(86,400초) 실행 제한 시간(보존 기간은 7일)을 설정하여 대부분의 프로덕션 워크로드에 대한 스토리지 비용과 디버깅 가시성의 균형을 맞춥니다.