FaaS 종량제 요금 구조와 프리티어 활용법: 서버리스 입문자를 위한 과금 완벽 가이드

서버리스 FaaS 종량제 과금 구조 개념도

서버리스를 처음 접하면 가장 먼저 드는 걱정이 있다. “쓴 만큼 낸다는데, 대체 얼마나 나올까?” 클라우드 요금 폭탄 사례를 한두 번쯤 들어본 터라 선뜻 시작하기 어렵다. 종량제라는 개념은 알겠는데, 실제로 어떤 기준으로 과금되는지, 프리티어는 어디까지 무료인지 감이 잡히지 않는 경우가 대부분이다.

이 글은 서버리스 과금 구조의 기초를 단계별로 풀어낸 입문 가이드다. 끝까지 읽으면 FaaS 종량제 요금이 어떻게 계산되는지 직접 산출할 수 있고, 각 클라우드의 프리티어를 활용해 비용 부담 없이 첫 프로젝트를 시작할 수 있다.

서버리스 과금 구조를 이해하기 전에 꼭 알아야 할 것

전통 서버와 근본적으로 다른 과금 철학

기존 서버 호스팅은 월 정액제에 가깝다. 서버를 켜두는 시간만큼 비용이 발생한다. 트래픽이 없는 새벽 3시에도 요금은 동일하게 청구된다. 반면 서버리스 FaaS는 함수가 실행된 횟수와 시간만 과금 대상이다.

종량제 과금의 핵심 구성 요소는 세 가지로 나뉜다.

  • 요청 수(Invocations) — 함수가 호출된 총 횟수. 100만 건 단위로 과금되는 경우가 많다.
  • 실행 시간(Duration) — 함수가 실제로 돌아간 시간. 밀리초 단위까지 측정하며, 할당한 메모리 크기에 비례해 단가가 올라간다.
  • 할당 메모리 — 128MB부터 10GB까지 선택 가능하며, 메모리를 두 배로 늘리면 비용도 거의 두 배가 된다.

실행 시간이 아무리 짧아도 요청 수 자체가 폭증하면 비용이 커질 수 있다. 반대로 호출 빈도가 낮더라도 함수 하나가 수십 초씩 돌아가면 실행 시간 요금이 누적된다. 두 축을 함께 관리해야 한다.

FaaS 종량제 요금 개념, 실제 계산은 어떻게 할까

AWS Lambda 기준 과금 산출 예시

AWS Lambda 공식 요금 페이지에 따르면, 요청 100만 건당 0.20달러, GB-초당 0.0000166667달러가 부과된다. 이걸 실제 시나리오에 대입해 보자.

128MB 메모리로 평균 200ms 걸리는 함수를 월 50만 회 호출한다고 가정하면 이렇게 된다.

  • 요청 비용: 50만 × $0.20 / 100만 = $0.10
  • 실행 시간: 50만 × 0.2초 × 0.125GB = 12,500 GB-초
  • 실행 비용: 12,500 × $0.0000166667 = 약 $0.21
  • 합계: 월 $0.31 (프리티어 적용 전)

월 400원 수준이다. 사이드 프로젝트나 MVP 검증 단계에서 서버리스가 압도적으로 저렴한 이유가 여기에 있다. 다만 이 금액에는 API Gateway, 데이터 전송 같은 부가 과금 요소가 빠져 있으므로 실제 청구액은 더 높을 수 있다.

Azure Functions와 Cloud Run은 뭐가 다른가

Azure Functions의 소비 요금제도 구조는 비슷하다. 실행 수 100만 건당 0.20달러, GB-초당 0.000016달러를 부과한다. 숫자만 보면 Lambda와 거의 동일해 보이지만, 최소 과금 단위와 콜드스타트 특성에서 차이가 난다.

Cloud Run은 조금 결이 다르다. 컨테이너 기반이라 vCPU-초와 GiB-초를 별도로 과금한다. 함수 단위가 아닌 컨테이너 인스턴스 단위로 과금되기 때문에, 동시 요청을 하나의 인스턴스가 처리하면 비용 효율이 높아진다. 각 플랫폼의 세부 요금 차이가 궁금하다면 플랫폼별 과금 비교 분석 글에서 상세하게 다루고 있다.

FaaS 요청 수 실행 시간 메모리 과금 요소 인포그래픽

프리티어, 정확히 어디까지 무료인가

3대 클라우드 프리티어 한도 비교

“프리티어가 있으니 무료로 쓸 수 있다”는 말은 반만 맞다. 각 클라우드마다 무료 범위가 다르고, 일부는 가입 후 12개월만 적용된다. 정확한 한도를 모르면 예상치 못한 청구서를 받게 된다.

  • AWS Lambda — 월 100만 건 요청 + 40만 GB-초 실행 시간 무료. 계정 생성 후 기간 제한 없이 영구 제공된다.
  • Azure Functions — 소비 요금제 기준 월 100만 건 요청 + 40만 GB-초 무료. 역시 기간 제한 없다.
  • Google Cloud Run — 월 200만 건 요청 + 36만 vCPU-초 + 18만 GiB-초 무료. 요청 수 한도가 가장 넉넉하다.

수치만 놓고 보면 Cloud Run의 프리티어가 가장 관대해 보인다. 하지만 Cloud Run은 네트워킹 비용이 별도로 붙을 수 있어 단순 비교는 위험하다. Google Cloud Run 공식 가격 정책을 반드시 확인해야 한다.

프리티어 내에서 운영 가능한 워크로드 규모

Lambda 프리티어 기준으로 환산하면, 128MB 메모리에 200ms 실행 시간인 함수를 월 약 300만 회까지 무료로 호출할 수 있다. 하루 10만 건 수준이다. 개인 블로그 API, 슬랙 봇, 소규모 웹훅 처리 정도는 프리티어만으로 충분히 커버된다.

많은 사람이 처음에는 프리티어 한도를 넘길까 봐 걱정하지만, 실제 적용 사례를 살펴보면 개인 프로젝트에서 월 100만 건을 넘기는 경우는 드물다. 오히려 프리티어를 다 쓰지 못하고 남기는 경우가 훨씬 많다.

서버리스 입문자를 위한 과금 구조 점검 체크리스트

비용 모니터링 설정은 필수

과금 구조를 이해했다고 안심하면 안 된다. 실수로 무한 루프를 배포하거나, 외부 공격으로 함수 호출이 폭증하는 상황은 누구에게나 일어날 수 있다. 첫 배포 전에 반드시 비용 알림을 설정해야 한다.

  • AWS에서는 Billing AlertsBudget을 설정한다. 예상 비용이 임계값을 넘으면 이메일로 알림이 온다.
  • Azure는 Cost Management + Billing에서 예산 알림을 구성할 수 있다.
  • GCP는 Budget & Alerts 메뉴에서 프로젝트별 한도를 건다.

Lambda에서는 함수별 동시 실행 수 제한(Reserved Concurrency)을 걸어두면, 설령 트래픽이 폭증하더라도 비용이 일정 수준 이상 올라가지 않는다. 입문자에게 가장 효과적인 안전장치다.

과금 단위를 줄이는 실전 팁

메모리 할당량을 무조건 낮추는 것이 답은 아니다. Lambda의 경우 메모리를 올리면 CPU 성능도 비례해서 올라간다. 128MB에서 3초 걸리던 함수가 256MB로 올리면 1.2초에 끝나기도 한다. GB-초 기준으로 환산하면 오히려 256MB가 더 저렴해지는 역전 현상이 발생한다.

실제 적용 사례를 살펴보면, AWS Lambda 메모리 설정 공식 문서에서도 권장하듯 AWS Lambda Power Tuning 도구로 최적 메모리를 찾는 방법이 가장 정확하다. 감으로 정하면 오히려 비용을 낭비하게 된다.

서버리스 비용 모니터링 안전장치 설정 체크리스트

프리티어 활용법과 다음 단계 로드맵

첫 프로젝트, 이렇게 시작하면 된다

가장 현실적인 시작 방법은 하나의 클라우드를 골라 프리티어 안에서 간단한 API를 하나 만들어 보는 것이다. 복잡한 아키텍처를 설계할 필요 없다. HTTP 요청을 받아서 JSON을 반환하는 함수 하나면 충분하다.

  • AWS Lambda + API Gateway 조합으로 REST API 엔드포인트 하나를 만든다
  • 배포 후 CloudWatch에서 실행 횟수, 실행 시간, 메모리 사용량을 관찰한다
  • Billing 대시보드에서 실제 청구 예상액이 $0인지 확인한다

이 과정을 한 번 거치면 종량제 과금이 체감으로 와닿는다. 문서를 백 번 읽는 것보다 직접 대시보드에서 $0.00을 확인하는 경험이 더 강력하다.

프리티어를 넘어서는 시점의 판단 기준

트래픽이 늘어 프리티어 한도를 넘기기 시작하면 두 가지를 점검해야 한다. 첫째, 현재 함수의 메모리와 실행 시간이 최적화되어 있는지 확인한다. 둘째, 월간 호출 수가 지속적으로 수백만 건을 넘긴다면 컨테이너 기반 운영이 더 경제적일 수 있다. 모든 워크로드에 서버리스가 최선은 아니라는 점을 기억해야 한다.

핵심 정리

서버리스 FaaS 과금은 요청 수, 실행 시간, 메모리 세 축으로 결정된다. 3대 클라우드 모두 월 100만 건 이상의 프리티어를 제공하며, 개인 프로젝트 수준이라면 사실상 무료로 운영 가능하다. 비용 알림 설정과 메모리 최적화만 챙기면 요금 폭탄 걱정 없이 시작할 수 있다.

오늘 당장 AWS 콘솔에 접속해서 Lambda 함수 하나를 만들고, Billing Alert를 $1로 설정해 보자. 서버리스 과금 구조가 몸으로 이해되는 첫걸음이 될 것이다.

댓글 남기기