codingstairs
노트에듀라이프연락
⌕검색⌘K
koen

Navigation

  • Intro
  • Blog
  • Life

연락하기

로그인 없이도 보낼 수 있어요. 답변이 필요하면 이메일을 함께 적어 주세요.

  • 익명 폼으로 의견 남기기 →
  • ✉ warragon112@gmail.com
  • 카카오톡 오픈채팅 ↗

© 2026 codingstairs

  • 노트
  • 에듀
  • 검색
  • 라이프
  • 연락
  • 약관
  • RSS
  • GitHub
노트›cloud

Lambda — Function as a Service

2026-04-28 게시· 2026-05-18 갱신·0회 조회

Lambda — Function as a Service

서버를 띄우지 않고 함수 단위로 코드를 실행하는 모델이 있습니다. 이벤트가 들어오면 그 순간 컴퓨트가 깨어나 함수 한 번을 실행하고, 끝나면 사라집니다. AWS 의 그 자리가 Lambda 입니다 — 서버리스라는 단어가 대중화되는 데 큰 역할을 했습니다.

1. Lambda 에 대한 이야기

시기 사건
2014 Lambda GA.
2015 API Gateway 통합 · VPC 접근.
2019 Provisioned Concurrency.
2020 Container Image 지원 (10 GB).
2021 Graviton2 (ARM).
2022 Function URL · SnapStart (Java).

Lambda 의 단위:

  • Function — 핸들러 + 런타임 + 환경 변수 + 메모리.
  • Trigger — 함수를 호출하는 이벤트 소스.
  • Layer — 여러 함수가 공유하는 의존성 묶음.
  • Execution Role — 함수가 다른 AWS 서비스를 호출할 때 IAM Role.

2. 이벤트 트리거

소스 예
API Gateway · ALB · Function URL HTTP 요청
S3 객체 업로드 · 삭제
DynamoDB Stream · Kinesis 테이블 변경 · 스트림
SQS · SNS 큐 메시지 · 알림
EventBridge 스케줄 · 사용자 이벤트
Cognito · IoT · CloudWatch Logs 신원 · 디바이스 · 로그

같은 함수가 여러 트리거에 연결될 수 있습니다. 트리거에 따라 동기/비동기/스트림 모드가 갈립니다.

3. 동시성

기본 한도는 계정·리전당 1000 (요청으로 늘림). 함수별로 reserved concurrency 또는 provisioned concurrency 로 조절.

요청 → Lambda 가 실행 컨테이너 풀 확인 → 가용 컨테이너 있으면 재사용
                                       → 없으면 새로 만들어 콜드 스타트

4. 콜드 스타트

새 컨테이너를 만들 때 일어나는 지연. 런타임·번들 크기·언어에 따라 수백 ms ~ 몇 초.

런타임 콜드 스타트 경향
Node.js · Python 비교적 짧음 (수백 ms)
Go · Rust (커스텀) 짧음
Java · .NET 긴 편 (수 초)

대응:

  • Provisioned Concurrency — 미리 N 개의 컨테이너를 데워 둠. 추가 비용.
  • SnapStart (Java) — 초기화 후 스냅샷으로 부팅 단축.
  • 번들 슬림화 — 의존성 줄이기.
  • 자주 호출 — 5 ~ 15 분 이내 다시 호출되면 같은 컨테이너 재사용.

5. 메모리 · CPU

Lambda 는 메모리만 설정하면 CPU 가 비례적으로 할당됩니다. 128 MB ~ 10240 MB 범위. 메모리를 늘리면 CPU 도 늘어 비용·속도가 함께 변합니다.

같은 비용으로 더 빨라지는 자리가 있습니다 (메모리 1024 MB 가 256 MB 보다 더 빠르고 더 싼 사례 보고).

6. Layer · Container Image

Layer — 여러 함수가 공유하는 의존성 · 런타임. ZIP 으로 올려 함수에 부착. 함수당 최대 5 개.

Container Image — OCI 이미지를 ECR 에 올려 Lambda 함수로 실행. 최대 10 GB. 일반 ZIP 은 250 MB 한계라 큰 의존성 · 바이너리가 필요한 자리.

FROM public.ecr.aws/lambda/python:3.12
COPY app.py ${LAMBDA_TASK_ROOT}
COPY requirements.txt ${LAMBDA_TASK_ROOT}
RUN pip install -r requirements.txt
CMD ["app.handler"]

Graviton2 (ARM) — 같은 메모리에서 가격이 약 20% 낮다는 보고. 호환 의존성 점검 필요.

7. HTTP 진입

  • API Gateway — 매니지드 HTTP API 게이트웨이. REST API 와 HTTP API 두 종류. HTTP API 는 후발 (2020) — 비용 · 지연이 더 낮음.
  • ALB — Application Load Balancer 도 Lambda 를 target 으로.
  • Function URL — 함수에 직접 부여하는 HTTPS 엔드포인트 (2022). API Gateway 없이 HTTP 호출.

8. 다른 FaaS 비교

플랫폼 모델 강점 한계
Lambda (2014) FaaS 풍부한 통합 · IAM · VPC 콜드 스타트 (런타임별 차이)
Cloudflare Workers (2017) V8 isolate 매우 짧은 콜드 스타트 (수 ms) 런타임 제약 (V8 only)
Vercel Functions (2018) Node + Edge Next.js 통합 Vercel 종속
Cloud Run (2019) 컨테이너 기반 자유로운 런타임 · 짧은 콜드 스타트 GCP 종속
Azure Functions (2016) FaaS .NET 통합 · Durable Functions 콜드 스타트
Fly Machines (2022) microVM 빠른 부팅 · 컨테이너 자유도 FaaS 라기보다 microVM

Cloud Run 은 컨테이너 단위 실행, 콜드 스타트가 작고 런타임 제약이 없어 Lambda 와 다른 결의 선택지로 거론됩니다. Cloudflare Workers 는 V8 isolate 기반이라 거의 콜드 스타트가 없는 대신 Node 호환에 제약이 있습니다.

9. Hello World (Python)

# handler.py
def handler(event, context):
    return {
        "statusCode": 200,
        "headers": {"Content-Type": "application/json"},
        "body": '{"hello":"world"}',
    }
zip -j fn.zip handler.py
aws lambda create-function \
  --function-name hello \
  --runtime python3.12 \
  --role arn:aws:iam::123:role/lambda-exec \
  --handler handler.handler \
  --zip-file fileb://fn.zip

10. 가격 구조

  • 요청 수 — 100 만 호출당 단가.
  • GB-초 — 메모리 × 실행 시간 (ms 단위, 최소 1 ms).
  • 데이터 전송 — 일반 AWS 트래픽 규칙.

매월 무료 티어 (100 만 요청 + 40 만 GB-초). 작은 사이드 프로젝트는 무료 안에 들어가는 자리가 흔합니다.

11. 어울리는 자리 · 어울리지 않는 자리

어울리는:

  • 짧은 백엔드 작업 (몇 초 미만).
  • S3 업로드 후 처리.
  • 스트림 처리 (SQS · Kinesis).
  • 스케줄 작업 (EventBridge).
  • 웹훅 수신.

어울리지 않는:

  • 항상 켜져 있어야 하는 long-running.
  • 큰 메모리·GPU 워크로드.
  • WebSocket 서버.
  • 빠른 콜드 스타트 필수인 사용자 대면 (Cloudflare Workers · Cloud Run 검토).

12. 자주 걸리는 자리

VPC 안에서의 콜드 스타트 — VPC 부착 함수는 ENI 생성 때문에 더 긴 콜드 스타트가 보고됐습니다. 2019 후 개선됐지만 여전히 차이가 있습니다.

15 분 한도 — 한 번 실행 최대 15 분. 그 이상은 Step Functions · Fargate · ECS 로 분할.

payload 6 MB / 응답 6 MB 한도 — 큰 파일은 S3 경유.

임시 디스크 /tmp 512 MB ~ 10 GB — 큰 파일 처리 시 한도 점검.

로그 비용 — CloudWatch Logs 가 의외로 비싸집니다. 출력 볼륨 + 보존 기간 점검.

DB 연결 폭주 — 매 호출마다 DB 연결을 만들면 풀이 고갈. RDS Proxy · 외부 풀러 · serverless DB.

idempotency — 비동기 트리거 (SQS · S3) 는 같은 메시지를 두 번 보낼 수 있습니다. 멱등 처리 필요.

하고픈 말

Lambda 는 짧은 이벤트 처리에는 거의 무료에 가까운 자리이지만 long-running · DB 풀 의존이 큰 워크로드에는 부적합합니다. 콜드 스타트 + 15 분 한도 + payload 한도 셋이 기본 제약 — 이 안에 들어맞으면 매우 단순한 답이 됩니다.

Next

  • route53
  • load-balancers

Lambda 사용자 가이드 · Lambda 가격 · SnapStart · Cloudflare Workers · Cloud Run · Vercel Functions · Azure Functions · SAM · CDK 를 참고합니다.

cloud 카테고리의 다른 글

카테고리 전체 보기 →
  • title 템플릿 단일 소스 — 자식 페이지가 박지 않게 한다
  • GitHub Pages — 저장소를 정적 사이트로
  • Replit — 브라우저 기반 개발·배포 통합 플랫폼
  • HTTP API Mocking — WireMock · MockServer · Prism · MSW
  • Firebase Local Emulator Suite — Firebase 한 묶음을 노트북에
  • Supabase Self-Hosted — Postgres 한 통에 BaaS 를 담는 방법