![]()
서버리스로 전환하면서 Lambda 실행 비용만 계산했는데, 첫 달 청구서를 열어보니 예상의 두세 배가 찍혀 있었다는 이야기를 심심치 않게 들을 수 있습니다. 대부분의 비용 시뮬레이션은 함수 호출 수와 실행 시간에만 초점을 맞춥니다. 하지만 실제 운영 환경에서는 API Gateway 요청 수수료, 리전 간 데이터 전송료, CloudWatch 로그 저장 비용 같은 ‘보이지 않는 항목’이 전체 청구 금액의 40~65%를 차지하기도 합니다. 이 글을 끝까지 읽으면 서버리스 아키텍처에서 발생하는 모든 추가 과금 항목을 파악하고, 각 항목별 절감 전략까지 수립할 수 있습니다.
서버리스 ‘숨겨진 비용’이란 정확히 무엇을 말하는가
공식 요금표에 드러나지 않는 비용의 범위
서버리스 아키텍처의 숨겨진 비용이란, 함수 실행(compute) 요금 외에 발생하는 모든 부대 비용을 의미합니다. AWS Lambda 공식 요금 페이지를 보면 요청 수와 GB-초 단위 실행 시간만 눈에 들어옵니다. 그런데 실제 서비스 하나를 구성하려면 API Gateway, NAT Gateway, CloudWatch, X-Ray, S3, DynamoDB 등 최소 5~7개 서비스가 함께 움직입니다.
이런 부수 서비스 각각이 독립적인 과금 체계를 갖고 있다는 점이 핵심입니다. 한 스타트업의 사례를 살펴보면, 월 500만 건 API 호출 서비스에서 Lambda 비용은 $12에 불과했지만 API Gateway가 $17.5, CloudWatch Logs가 $23, 데이터 전송이 $8.5로 총 청구액 $61 중 Lambda 비중은 겨우 19.7%였습니다. 나머지 80%가 바로 숨겨진 비용입니다.
API Gateway와 데이터 전송, 과금 메커니즘은 어떻게 작동하는가
API Gateway 요청당 과금의 함정
API Gateway는 REST API 기준 요청 100만 건당 $3.50을 부과합니다. 단순해 보이지만 함정이 있습니다. 캐시 미스로 인한 재요청, 인증 실패 후 재시도, OPTIONS 프리플라이트 요청까지 전부 과금 대상입니다. CORS를 사용하는 프론트엔드 애플리케이션이라면 실제 비즈니스 요청의 약 2배에 달하는 호출이 발생할 수 있습니다.
리전 간 전송료가 누적되는 구조
데이터 전송 비용은 더 까다롭습니다. 같은 리전 안에서도 VPC를 경유하면 GB당 $0.01이 붙고, 리전을 넘어가면 $0.02, 인터넷으로 나가면 $0.09/GB까지 치솟습니다. 특히 Lambda가 RDS나 ElastiCache에 접근하기 위해 VPC 안에 배치된 경우, NAT Gateway 처리 비용이 GB당 $0.045 추가됩니다. 실제 적용 사례를 살펴보면, 일 평균 50GB 외부 전송을 하는 중소기업 서비스에서 월 NAT Gateway 비용만 $67이 발생했고, 이는 Lambda 실행 비용의 3배를 넘었습니다. 서버리스 과금 구조와 컨테이너 손익분기점 분석에서 다룬 기본 과금 체계 위에 이런 부대 비용이 쌓인다는 점을 기억해야 합니다.

로깅과 모니터링에서 발생하는 추가 과금 항목
CloudWatch Logs, 쌓이는 만큼 과금된다
많은 팀이 처음에는 로깅 비용을 전혀 고려하지 않습니다. Lambda는 기본적으로 모든 실행 로그를 CloudWatch Logs로 전송합니다. 수집(Ingestion) 비용은 GB당 $0.50, 저장(Storage) 비용은 GB당 $0.03/월입니다. 문제는 수집 비용입니다. 함수 하나가 실행당 평균 1KB의 로그를 남긴다고 가정하면, 월 1억 건 호출 시 로그 수집만으로 약 $50이 발생합니다.
여기에 X-Ray 트레이싱을 활성화하면 기록된 트레이스 100만 건당 $5, 검색된 트레이스 100만 건당 $0.50이 추가됩니다. Amazon CloudWatch 공식 문서에서 전체 과금 항목을 확인할 수 있는데, 커스텀 메트릭, 대시보드, 알람까지 포함하면 모니터링 비용이 Lambda 비용을 초과하는 경우도 드물지 않습니다.
Azure와 GCP도 예외는 아니다
Azure Functions는 Application Insights와 연동 시 데이터 수집량 기준으로 과금됩니다. 무료 한도 5GB/월을 넘기면 GB당 약 $2.30이 부과되어 AWS보다 단가가 높습니다. Cloud Run은 Cloud Logging 자체는 월 50GB 무료이지만, 로그 기반 메트릭을 설정하거나 BigQuery로 로그를 내보내면 별도 비용이 발생합니다. 플랫폼마다 과금 구조가 다르기 때문에 단순 비교가 어렵고, 실제 워크로드 패턴으로 시뮬레이션해야 합니다.
서버리스 숨겨진 비용, 어떤 항목이 가장 크고 어떤 항목이 통제 가능한가
비용 비중 순위와 통제 난이도
실제 운영 데이터를 종합해보면 숨겨진 비용 항목의 크기는 대체로 다음과 같은 순서를 따릅니다.
- NAT Gateway — 고정 시간당 과금($0.045/h) + 처리량 과금이 결합되어, VPC 내 Lambda 사용 시 월 $32 이상이 기본으로 깔립니다
- API Gateway — 트래픽에 비례하지만, HTTP API로 전환하면 REST API 대비 71% 절감 가능 (100만 건당 $1.00)
- CloudWatch Logs — 보존 기간 설정과 로그 레벨 조정으로 60~80% 줄일 수 있어 통제 가능성이 높습니다
- 데이터 전송 — CloudFront를 앞에 두면 오리진 전송량이 줄어 비용이 감소하지만, CloudFront 자체 요금이 새로 붙습니다
- 프로비저닝된 동시성 — 콜드스타트 해결을 위해 설정하면 유휴 상태에서도 과금이 발생합니다. 콜드스타트와 프로비저닝 설정 가이드에서 이 부분을 상세히 다루고 있습니다
절감 가능한 비용과 구조적 비용의 차이
중요한 건 모든 숨겨진 비용이 동일하지 않다는 점입니다. 로깅과 모니터링은 설정 변경만으로 큰 폭의 절감이 가능한 ‘소프트 비용’입니다. 반면 NAT Gateway나 데이터 전송료는 아키텍처 자체를 변경해야 줄일 수 있는 ‘구조적 비용’입니다. VPC Lambda를 사용하지 않는 구조로 전환하거나, VPC 엔드포인트를 도입해 NAT를 우회하는 방식이 대표적입니다. 다만 VPC 엔드포인트도 시간당 $0.01 + 데이터 처리 비용이 있으므로, 트래픽 패턴에 따라 오히려 비용이 늘 수 있습니다.

지금 바로 적용할 수 있는 비용 점검 체크리스트
3단계 비용 감사 프로세스
서버리스 비용 최적화의 첫 단계는 현황 파악입니다. AWS Cost Explorer에서 서비스별 비용을 분리하고, Lambda 비용이 전체에서 차지하는 비율을 확인하세요. 30% 미만이라면 숨겨진 비용이 과도하게 발생하고 있다는 신호입니다.
다음은 즉시 실행 가능한 체크리스트입니다.
- CloudWatch Logs 보존 기간을 무기한에서 30일 또는 7일로 변경 — 이것 하나로 저장 비용을 90% 이상 줄일 수 있습니다
- Lambda 함수의 로그 레벨을 DEBUG에서 WARN 이상으로 조정하여 수집량 자체를 감소
- REST API Gateway를 HTTP API로 마이그레이션 검토 — WebSocket이나 API 키 사용량 관리가 필요 없다면 전환이 유리합니다
- VPC 내 Lambda 필요성을 재검토하고, 퍼블릭 서비스 접근만 필요하다면 VPC 밖으로 이전
- AWS Compute Optimizer와 Cost Explorer의 서버리스 권장 사항을 월 1회 이상 점검
비용 알림 자동화
AWS Budgets에서 서비스별 예산을 설정하고 80% 도달 시 알림을 받도록 구성하는 것을 권장합니다. 특히 CloudWatch와 데이터 전송 항목은 별도 예산으로 분리해야 이상 징후를 빠르게 감지할 수 있습니다. 모든 서버리스 프로젝트에 이 방법이 최적인 것은 아니지만, 예측 불가능한 비용 급증을 막는 가장 현실적인 방어선입니다.
결론
서버리스의 진짜 비용은 Lambda 실행 요금이 아니라, API Gateway·NAT Gateway·로깅·데이터 전송 같은 부대 항목에 숨어 있습니다. 이 중 로깅 보존 기간 조정과 API Gateway 타입 전환은 오늘 당장 실행할 수 있는 절감 조치입니다. Cost Explorer에서 서비스별 비용 비율을 한 번 확인하는 것부터 시작해 보세요.