본문으로 건너뛰기
aws검색
컴퓨트

AWS Lambda (동시성, 콜드 스타트, Durable Functions, Managed Instances)

Lambda 의 실행 모델과 꼭 외울 할당량(15 분, 6MB, 10GB), 예약 동시성과 프로비저닝된 동시성, 콜드 스타트 줄이기(SnapStart), 2025-08 의 INIT 과금 변화, re:Invent 2025 에 나온 Durable Functions 와 Lambda Managed Instances 를 언제 쓰는지 정리합니다.

Lambda동시성콜드 스타트Durable FunctionsLambda Managed Instances2026-10 기준, 약 7분상태 표시 설명

실행 모델

Lambda 는 이벤트가 오면 실행 환경(격리된 마이크로 VM 안의 런타임)을 하나 잡아 핸들러를 실행합니다. 실행 환경이 없으면 새로 만드는데, 이때 런타임 시작과 초기화 코드(핸들러 밖 코드)를 도는 시간이 콜드 스타트입니다. 끝난 실행 환경은 한동안 남아 다음 요청을 받습니다(웜 스타트). 기본 모델에서는 실행 환경 하나가 한 번에 한 요청만 처리합니다.

호출 방식예실패 처리
동기API Gateway, ALB, 함수 URL, SDK Invoke호출자가 에러를 받고 재시도를 결정
비동기S3 이벤트, SNS, EventBridgeLambda 가 최대 2 번 재시도, 실패는 대상(on-failure destination)이나 DLQ 로
이벤트 소스 매핑SQS, Kinesis, DynamoDB Streams, MSKLambda 가 폴링. 배치 실패 처리와 부분 실패 보고 설정이 핵심

꼭 외울 할당량

항목값
최대 실행 시간900 초 (15 분). Managed Instances 는 비동기, 이벤트 소스 매핑 호출에 최대 90 분
메모리128 MB 부터 10,240 MB. CPU 는 메모리에 비례해 배정
동기 페이로드요청, 응답 각각 6 MB. 응답 스트리밍은 200 MB
비동기 페이로드1 MB
/tmp512 MB 부터 10,240 MB
배포 패키지zip 50 MB(직접 업로드), 압축 해제 250 MB(레이어 포함), 컨테이너 이미지 10 GB
환경 변수합계 4 KB
리전 동시 실행기본 1,000. 신규 계정은 더 낮게 시작해 사용량에 따라 자동으로 오름

6 MB 를 넘는 응답(큰 파일, 보고서)은 S3 에 올리고 미리 서명된 URL 을 돌려주거나, 응답 스트리밍을 씁니다. API Gateway REST API 는 자체 통합 시간 제한이 있어서 Lambda 를 15 분 돌려도 앞단이 먼저 끊을 수 있습니다. 시간 초과 문제는 Lambda 타임아웃 트러블슈팅에 따로 정리했습니다.

동시성 다루기

  • 예약 동시성(reserved concurrency): 함수에 동시 실행 몫을 떼어 줍니다. 그 함수의 상한이기도 해서, 다운스트림 DB 를 보호하려고 일부러 낮게 걸기도 합니다. 0 으로 두면 함수가 멈춥니다(비상 차단 스위치).
  • 프로비저닝된 동시성: 실행 환경을 미리 데워 둡니다. 콜드 스타트가 없어지는 대신 켜 둔 시간만큼 요금이 나옵니다. Application Auto Scaling 으로 시간대별 조절이 가능합니다.
  • 확장 속도: 함수마다 10 초에 1,000 개씩 동시 실행을 늘릴 수 있습니다. 갑자기 몰리는 트래픽은 SQS 로 받아 완충하는 편이 안전합니다.
aws lambda put-function-concurrency --function-name order-sync --reserved-concurrent-executions 50
aws lambda put-provisioned-concurrency-config --function-name api-handler \
  --qualifier live --provisioned-concurrent-executions 20

콜드 스타트 줄이기

  1. 초기화 코드 다이어트: 큰 SDK 전체 대신 필요한 클라이언트만 가져오고, 무거운 설정 읽기는 지연 로딩합니다.
  2. 메모리 올리기: 메모리를 올리면 CPU 도 같이 늘어 초기화가 빨라집니다. Lambda Power Tuning 같은 도구로 비용과 시간의 균형점을 찾습니다.
  3. SnapStart: 초기화가 끝난 실행 환경의 스냅숏을 떠 두고 거기서 재개합니다. Java, Python, .NET 런타임에서 쓸 수 있습니다. 스냅숏에 담긴 난수 시드, 네트워크 연결은 재개 후 다시 만들어야 합니다.
  4. Arm(Graviton): arm64 아키텍처는 GB-초 단가가 x86 보다 낮고 대개 성능도 비슷하거나 낫습니다.

주의 2025-08-01 부터 Lambda 는 관리형 런타임의 zip 함수도 INIT 단계 시간을 과금합니다. 예전에는 사실상 무료였던 초기화 시간이 이제 청구서에 잡히므로, 초기화가 긴 함수는 비용 면에서도 다이어트할 이유가 생겼습니다.

Durable Functions (2025-12)

re:Invent 2025 에서 나온 Lambda Durable Functions 는 여러 단계로 된 워크플로를 함수 코드 안에서 씁니다. 각 단계(step)의 결과를 체크포인트로 저장하고, 기다림(wait)을 걸면 실행이 멈춘 동안에는 컴퓨팅 요금이 나오지 않습니다. 실행은 최대 1 년까지 멈췄다가 이어 갈 수 있습니다.

  • 사람 승인 대기, 외부 웹훅 대기, 긴 AI 에이전트 작업처럼 "대부분 기다리는" 흐름에 맞습니다.
  • 출시 때 Python 과 Node.js SDK 로 시작했고, .NET SDK 는 2026-07 에 GA 됐습니다.
  • 재개할 때 코드가 처음부터 다시 실행(replay)될 수 있으므로 단계 밖의 코드는 부작용 없이 결정적이어야 합니다.

Step Functions 와 겹치는 영역이지만, 시각적 워크플로와 수백 개 서비스 직접 연동이 필요하면 Step Functions, 코드 한 곳에 흐름을 두고 싶으면 Durable Functions 가 편합니다.

Lambda Managed Instances (2025-11)

Lambda Managed Instances 는 Lambda 함수를 내 계정의 EC2 인스턴스에서 돌립니다. 인스턴스 수명 주기, OS 와 런타임 패치, 라우팅, 확장은 Lambda 가 맡습니다.

비교Lambda (기본)Lambda Managed Instances
요금요청 수 + GB-초EC2 인스턴스 요금 + EC2 요금의 15% 관리 수수료
할인Compute Savings PlansEC2 의 Savings Plans, RI 가 인스턴스 부분에 적용
동시 처리실행 환경당 1 요청실행 환경 하나가 여러 요청을 동시에 처리
확장0 까지 줄어듦, 콜드 스타트 있음설정한 최소치까지만 줄어듦, CPU 기준 비동기 확장
맞는 곳들쭉날쭉한 트래픽꾸준하고 많은 트래픽, VPC 와 배치 제어가 필요한 곳

먼저 용량 공급자(capacity provider) 를 VPC 설정과 인스턴스 조건으로 만들고 함수를 붙입니다. 버전을 게시하면 AZ 복원력을 위해 기본 3 대가 뜹니다. 한 실행 환경이 여러 요청을 동시에 받으므로 전역 변수에 요청별 상태를 두는 코드는 고쳐야 합니다.

그 밖의 2025 년 변화

  • 테넌트 격리 모드(2025-11): 멀티 테넌트 SaaS 에서 테넌트별로 실행 환경을 분리합니다.
  • Node.js 24, Python 3.14 같은 새 런타임이 추가됐습니다. 오래된 런타임은 지원 종료 일정이 정해지면 새 함수 생성, 업데이트가 차례로 막히니 런타임 사용 현황을 Trusted Advisor 나 list-functions 로 정기 점검합니다.

비용과 설계 팁

  • 요금은 요청 수와 GB-초(메모리 × 실행 시간)입니다. 메모리를 두 배로 올려 시간이 절반 이하로 줄면 오히려 쌉니다.
  • VPC 에 붙인 함수는 하이퍼플레인 ENI 를 써서 예전 같은 VPC 콜드 스타트 지연은 거의 없습니다. 대신 인터넷이 필요하면 NAT Gateway 가 필요하고, AWS 서비스만 부르면 VPC 엔드포인트로 NAT 비용을 아낍니다.
  • 이벤트 소스 매핑의 배치 크기와 배치 창을 키우면 호출 수와 비용이 크게 줄어듭니다.
  • 재시도가 있으니 핸들러는 멱등하게 씁니다. 같은 이벤트가 두 번 와도 결과가 같아야 합니다. Powertools for AWS Lambda 의 멱등성 유틸리티가 DynamoDB 로 이것을 도와줍니다.

이 문서에서