home
SAA-C03

[Compute] Lambda 컨셉 노트

시험 빈출 Lambda 컨셉 노트

AWS Lambda for SAA-C03

One-Line Summary

Lambda서버를 전혀 관리하지 않고 코드(함수)만 올리면, 이벤트가 올 때마다 실행해주는 서버리스 컴퓨트다. 시험에서는 이벤트 기반 처리 / 서버 관리 제거 / 15분 실행 한계 / 콜드 스타트 해소(Provisioned Concurrency) 가 핵심이다.

Why It Exists

EC2는 요청이 없어도 서버를 켜두고 비용을 내며, OS 패치·스케일링·가용성을 사용자가 관리해야 한다. 이벤트에 잠깐 반응하는 코드에는 과하다.

Lambda는 이 문제를 해결한다.

EC2
  -> 유휴에도 켜둠(비용 발생), 서버 관리 필요

Lambda
  -> 이벤트가 올 때만 실행, 유휴 시 비용 0
  -> 서버 프로비저닝/스케일링/패치/가용성 전부 AWS
  -> 개발자는 코드만

시험 감각:

"run code in response to events, no servers to manage" = Lambda.

Abbreviations

약어풀네임의미
LambdaAWS Lambda코드(함수)만 올리면 실행되는 서버리스 컴퓨트
ServerlessServerless서버 프로비저닝·관리 없이 코드에만 집중하는 모델
Cold StartCold Start유휴 함수 첫 호출 시 실행 환경을 새로 띄우며 생기는 초기 지연
Provisioned ConcurrencyProvisioned Concurrency실행 환경을 미리 예열해 콜드 스타트를 없애는 기능
Reserved ConcurrencyReserved Concurrency특정 함수에 동시 실행 한도를 예약/제한하는 기능
DLQDead-Letter Queue비동기 호출이 재시도까지 실패한 이벤트를 모아두는 큐(SQS/SNS)

동작 방식

이벤트 발생(S3 업로드, API Gateway 요청, SQS 메시지 등)
  -> Lambda 함수 실행
  -> 요청 수에 맞춰 자동 병렬 확장
  -> 실행 시간(ms) + 호출 수에 대해서만 과금 (유휴 시 0)
항목의미
모델서버리스, 이벤트 기반(event-driven)
관리 범위AWS: 서버/스케일링/가용성 전부 / 개발자: 코드만
확장요청 수에 따라 자동 병렬 확장
과금호출 수 + 실행 시간(메모리 설정 기준), 유휴 시 0
최대 실행 시간15분 (초과 장기 작업엔 부적합)
대표 트리거API Gateway, S3, DynamoDB Streams, SQS, EventBridge

Cold Start(콜드 스타트)와 극복

한동안 호출이 없던 함수를 처음 부르면 실행 환경을 새로 띄우는 시간이 붙는데, 이 초기 지연이 콜드 스타트다.

유휴 함수 첫 호출 -> 실행 환경 초기화(콜드 스타트, 수백 ms~) -> 실행
자주 호출되는 함수 -> 환경 재사용(warm) -> 지연 거의 없음
극복 방법설명
Provisioned Concurrency지정한 수만큼 실행 환경을 항상 예열(warm) → 콜드 스타트 제거
결과지연에 민감한 API 등에서 일관된 저지연

시험 감각:

"Lambda 응답 지연이 가끔 튄다 / 일관된 저지연이 필요" = Provisioned Concurrency.

동시성(Concurrency) — Reserved vs Provisioned (빈출)

두 용어가 이름이 비슷해 시험에서 자주 헷갈리게 낸다. 목적이 다르다.

구분Reserved ConcurrencyProvisioned Concurrency
목적함수별 동시 실행 수를 예약/제한실행 환경을 미리 예열(콜드 스타트 제거)
해결하는 문제한 함수가 계정 동시성을 다 써버리는 것 방지 / 다운스트림(RDS 등) 보호첫 호출 지연(콜드 스타트)
과금예약 자체엔 추가 비용 없음예열한 만큼 상시 과금
시험 키워드"limit concurrency", "protect downstream DB", "reserve capacity for a function""consistent low latency", "avoid cold start"
계정 전체 동시 실행 한도(기본 1,000) 를 여러 함수가 공유
  -> Reserved Concurrency: 특정 함수에 한도를 떼어 보장/상한
  -> 한도 초과 호출은 Throttling (429), 비동기는 재시도

Provisioned Concurrency: 지정 수만큼 항상 warm -> 콜드 스타트 없음

시험 감각:

"특정 함수의 동시 실행을 제한해 RDS 연결 폭증을 막아라" = Reserved Concurrency. "지연이 튀지 않게 항상 예열" = Provisioned Concurrency.

호출 방식과 실패 처리 (Invocation Types)

이벤트 소스에 따라 호출 방식이 다르고, 재시도·DLQ 동작도 다르다.

방식대표 소스실패 시
동기(sync)API Gateway, ALB호출자에게 즉시 오류 반환 (재시도는 호출자 몫)
비동기(async)S3, SNS, EventBridgeLambda가 자동 재시도(기본 2회) 후 실패하면 DLQ/온-실패 대상으로
폴링(poll/stream)SQS, DynamoDB Streams, KinesisLambda가 소스를 폴링해 배치로 처리, 실패 시 재처리

시험 감각:

"비동기 Lambda가 실패한 이벤트를 잃지 않게 하라" = DLQ (SQS/SNS) 또는 on-failure destination.

VPC 접근 (프라이빗 리소스)

Lambda는 기본적으로 VPC 밖에서 실행된다. 프라이빗 서브넷의 RDS·ElastiCache 등에 접근하려면 함수를 VPC에 연결(서브넷+보안그룹)해 ENI를 통해 통신한다.

상황구성
프라이빗 RDS/ElastiCache 접근Lambda를 VPC에 연결(subnet + security group)
VPC 연결 상태에서 인터넷/S3 접근NAT Gateway 또는 VPC Endpoint 필요

시험 감각:

"Lambda가 프라이빗 서브넷의 DB에 접근해야 한다" = Lambda를 VPC에 연결.

Layers와 리소스 한도

항목값/의미
Lambda Layers공통 라이브러리/의존성을 분리해 여러 함수가 공유·재사용
배포 패키지zip 50MB(직접 업로드), 압축 해제 250MB / 컨테이너 이미지 10GB
/tmp 임시 스토리지기본 512MB ~ 최대 10GB
메모리128MB~10GB, 메모리를 늘리면 CPU도 비례해 증가(성능 튜닝 포인트)

15분 한계

Lambda 한 번 실행은 최대 15분이다. 이보다 긴 작업은 Lambda 단독으로 안 되고, 아래로 우회한다.

상황대안
여러 단계를 순서/재시도로 조율하며 장기 실행Step Functions로 오케스트레이션
무거운 배치/장시간 연산ECS/AWS Batch/EC2

Common Wrong Directions

오답 방향왜 부족한가
15분 넘는 장기 작업을 Lambda 하나로 처리Lambda는 최대 15분. 장기/다단계는 Step Functions·ECS 등
콜드 스타트 지연을 메모리만 늘려 해결일관된 저지연은 Provisioned Concurrency
상시·고정 부하 워크로드를 전부 Lambda로상시 대량 트래픽은 EC2/컨테이너가 더 경제적일 수 있음
다단계 재시도/오류 처리를 Lambda 코드 안에 다 넣음오케스트레이션은 Step Functions가 정석
RDS 연결 폭증을 막으려 메모리만 조절함수 동시성 상한은 Reserved Concurrency (연결은 RDS Proxy도)
콜드 스타트와 동시성 예약을 같은 기능으로 오해예열=Provisioned, 동시성 예약/제한=Reserved
프라이빗 RDS 접근을 위해 DB를 퍼블릭으로 변경Lambda를 VPC에 연결해 프라이빗 접근
비동기 실패 이벤트가 그냥 사라지게 둠DLQ/on-failure destination로 보존

Exam Triggers

문제에서 이런 표현이 나오면떠올릴 것
"run code in response to events", "no servers to manage"Lambda
"event-driven", "pay only for what you use", "scale to zero"Lambda
"process file on S3 upload / stream records"Lambda (S3·DynamoDB Streams 트리거)
"consistent low latency / avoid cold start"Provisioned Concurrency
"function runs longer than 15 minutes"Lambda 부적합 → Step Functions / ECS
"limit concurrent executions", "protect downstream database"Reserved Concurrency
"Lambda must access private RDS/ElastiCache"Lambda VPC 연결
"capture failed async events", "don't lose events"DLQ / on-failure destination
"share common libraries across functions"Lambda Layers

Memory Sentence

Lambda는 코드만 올리는 서버리스·이벤트 기반 컴퓨트, 유휴 시 비용 0. 한 번 실행 최대 15분·콜드 스타트 존재. 예열은 Provisioned·동시성 예약/제한은 Reserved, 비동기 실패는 DLQ, 프라이빗 DB 접근은 VPC 연결, 15분 초과는 Step Functions.

References

댓글

아직 댓글이 없습니다.