서버리스 컴퓨팅으로 넘어 가고 싶어도 주저하게 만드는 것이 있습니다. 혹시나 비용 폭탄을 맞을까 하는 걱정입니다. 개발과 운영 편의성의 높은 것은 분명한 데 트래픽이 몰리면 비용 폭탄 고지서를 받아 보는 것은 아닌가 하는 우려가 있는 것이죠. 유명 커뮤니티 게시판에 종종 관련 글이 올라오다 보니 이런 걱정은 더 현실적으로 다가옵니다. 하지만 이는 사실이 아닙니다.
서버리스 환경은 빌링 메커니즘을 정확히 이해하고 서비스를 설계하면 VM 환경보다 경제성이 높을 수 있습니다. 관련해 이번 포스팅에서는 구글 클라우드의 Cloud Run의 비용 구조에 대한 이해가 실제 서비스 구현과 운영에 있어 비용을 최적화할 수 있는 지 알아보겠습니다.
팩트 체크!
서버리스가 익숙하지 않은 경우 VM이 더 예측 가능하고 통제 가능한 느낌으로 다가올 수밖에 없습니다. 아무래도 자원 사양과 개수를 직접 결정할 수 있고 월정액이나 연 단위 고정 비용으로 쓰다 보니 안정감이 느껴집니다. 반면에 서버리스 환경은 유입되는 트래픽에 맞춰 자원이 확장되어 관리를 소홀히 하면 감당하기 어려운 요금이 청구될 수 있다는 불안감이 있습니다.
막연한 두려움은 과금 체계에 대한 이해를 바탕으로 서비스를 설계하면 사라집니다. 많은 이들이 우려하는 비용 급증은 중요 설정을 제대로 하지 않아 생기는 경우가 적지 않습니다. 구글 클라우드는 이러한 위험을 원천적으로 제어할 수 있는 여러 가지 물리적·논리적 방어선을 제공합니다. 대표적인 방어선이 최대 인스턴스(max-instances) 설정입니다. 운영자는 특정 서비스가 생성할 수 있는 인스턴스의 최대 개수를 명시적으로 제안해 트래픽이 몰려오거나 코드에 무한 루프가 발생하더라도 비용 상한선 역할을 할 수 있습니다. 이는 응답 지연 같은 위험이 있지만 비용 측면에서는 확실한 안전핀 역할을 합니다.
한편 많은 분들이 간과하는 것 중 하나가 보안입니다. 봇(Bot)이나 공격자가 보내는 의미 없는 요청은 자원을 무의미하게 소모하고 비용을 높이는 주범입니다. 인증 정책을 적용하여 허가받은 사용자만 서비스에 접근하도록 설정하면 인증되지 않은 무단 요청은 클라우드 런 컨테이너에 도달하기 전 구글의 인프라 계층에서 즉시 거절됩니다. 이 경우 Cloud Run은 해당 요청에 대해 어떠한 자원 사용량도 기록하지 않으며 비용 또한 청구하지 않습니다. 더불어 예산 경보 기능을 활용하면 실제 지출액이나 예측 비용이 일정 기준을 넘을 때 즉시 알림을 받아 비정상적인 상황에 신속하게 대응할 수 있습니다.
서비스 특성에 맞는 빌링 모델의 전략적 선택
Cloud Run의 빌링 방식 소개를 시작으로 서버리스 비용 폭탄에 대한 오해를 풀어 보겠습니다. Cloud Run은 사용자의 워크로드 특성에 최적화할 수 있도록 ‘요청 기반 과금’과 ‘인스턴스 기반 과금’이라는 두 가지 모델을 제공합니다. 이렇게 나눈 이유는 워크로드 유형과 특성에 맞게 성능과 비용 최적화를 할 수 있도록 하기 위해입니다.
요청 기반은 Cloud Run의 기본 설정으로 인스턴스가 실제 요청을 처리하는 동안과 기동·종료 시에만 비용을 부과합니다. 요청과 요청 사이의 유휴 시간에는 CPU 할당량이 대폭 낮아지고 비용 청구가 멈춥니다. 이런 이유로 트래픽이 간헐적이고 예측 불가능한 서비스에서 최고의 경제성을 발휘합니다. 하루에 단 몇 번만 실행되는 경량 API나 이벤트성 백엔드, PoC나 파일럿 프로젝트에 유리합니다.
인스턴스 기반은 인스턴스가 생성되어 종료될 때까지의 전체 수명 주기 동안 자원 비용을 청구합니다. 요청 처리 여부와 관계없이 비용을 내야 하므로 언뜻 손해처럼 보일 수 있지만 자원 단가가 요청 기반보다 저렴하고 요청당 수수료가 전혀 없다는 강력한 장점이 있습니다. 트래픽이 꾸준히 유입되는 프로덕션 서비스나 응답을 반환한 후에도 배경에서 후처리 작업을 지속해야 하는 경우라면 이 방식이 잘 맞습니다.
동시성과 자원 최적화를 통한 비용 최적화
빌링 방식 선택만으로는 뭔가 부족함이 느껴질 수도 있습니다. 이런 걱정도 구글 클라우드에서는 하지 않아도 됩니다. 세밀한 설정 옵션을 잘 활용하면 비용 폭탄은 더 이상 걱정 거리가 아닙니다.
- 동시성(Concurrency) 관리: Cloud Run의 차별적인 강점입니다. 인스턴스 하나가 여러 요청을 동시에 처리하게 설정하면 요청당 단가를 낮출 수 있습니다. CPU 사용률이 낮다면 동시성 제한을 과감히 높여보면 효과를 체감할 수 있을 것입니다.
- 리소스 적정 규모 산정(Rightsizing): Cloud Hub의 최적화 메뉴를 통해 실제 CPU·메모리 사용률을 확인할 수 있습니다. 오버 프로비저닝된 자원을 실제 사용량에 맞춰 줄이는 것만으로도 즉각적인 절감 효과를 볼 수 있습니다.
- 지역 내 리소스 배치: Cloud Run과 Cloud SQL, Firestore 같은 데이터베이스를 같은 리전에 두면 리전 간 데이터 전송 비용을 완전히 없앨 수 있습니다.
- 약정 사용 할인(CUD) 활용: 트래픽 하한선이 명확하다면 1년 또는 3년 약정을 통해 할인을 받는 것을 고려할 수 있습니다.
비용 계산기 활용하기
그렇다면 어떤 기준으로 과금 방식과 설정 옵션을 결정해야 할까요? 비용 계산기가 좋은 출발점이 될 수 있습니다. 성공적인 프로젝트는 정확한 비용 예측에서 시작됩니다. 새로운 서비스를 설계할 때는 반드시 구글 클라우드가 제공하는 비용 계산기를 활용하여 시나리오별 시뮬레이션을 수행하는 것을 추천하는 이유입니다.
서버리스 전환을 준비 중인데 비용 최적화 전략을 더 구체화하고 싶다면, 메가존소프트 문의포탈을 통해 궁금한 부분을 남겨주세요.



