Firebase Hosting + Cloud Run으로 서버리스 배포 환경 구축하기

zioni ·2026년 8월 10일

공모전

목록 보기
4/4
post-thumbnail

2026 카카오×관광데이터 공모전에 참가하면서 처음으로 GCP를 직접 운영 환경에 도입하게 되었다.
(AWS가 아닌 GCP를 쓴 이유는 프리티어 계정이 없었기 때문이다..)

Spring Boot로 만든 API를 어디에 배포할지 고민하다가 Google Cloud Platform의 여러 서비스를 검토했고, 최종적으로 Cloud Run을 선택했다.


GCP에서 애플리케이션을 배포하는 방식은 여러 가지가 있다. 대표적으로는:

  • Compute Engine
  • App Engine
  • Cloud Run

Compute Engine

Compute Engine은 GCP에서 가장 전통적인 방식으로, Ubuntu 같은 OS가 설치된 VM을 빌려서 직접 운영한다.

AWS의 EC2와 같은 역할을 한다.

Internet
   ↓
Compute Engine
   ↓
Spring Boot
   ↓
Cloud SQL

Cloud Run

Cloud Run은 요청 또는 이벤트를 통해 호출 가능한 컨테이너를 실행할 수 있는 완전 관리형 애플리케이션 플랫폼이다.

Google Cloud 에서는 대표적으로 Cloud Functions 와 Cloud Run 이라는 2가지 Serverless 서비스를 제공하고 있다.

Cloud Run은, Docker 컨테이너를 올리면 Google이 실행 환경을 전부 관리한다!

Internet
   ↓
Cloud Run (컨테이너 실행)
   ↓
Spring Boot (Docker 이미지)
   ↓
Cloud SQL

👩‍💻 왜 선택했을까?

1. 컨테이너로 패키징하고 쉽게 앱을 활성화 할 수 있다.

  • 인프라를 직접 관리 할 필요없이, Docker 이미지를 통해 쉽게 배포할 수 있다.

2. 오토 스케일링을 제공한다.

  • 요청량에 따라 자동으로 인스턴스를 증감한다. 야간에는 0개까지 줄어들어 비용 절감도 가능하다.

3. GCP 서비스와 자연스러운 통합이 이루어진다.

  • Cloud SQL: 관리형 PostgreSQL 데이터베이스
  • Artifact Registry: Docker 이미지 저장소
  • Secret Manager: DB 자격증명 같은 민감 정보 관리
  • VPC 및 IAM: 보안 정책

4. 프로젝트 규모에 맞는 구성

  • 복잡한 인프라를 구축할 이유가 없었다.

💥 한계점

Cloud Run은 리버스 프록시, SSL, 로드밸런싱 기능까지 제공하지만, 커스텀 도메인을 붙이기 위해서는 Cloud Load Balancer를 따로 만들어야 했다. 그런데, 여기서 두가지 비용이 발생한다.

  • 고정 IP 할당 비용: 매월 고정 요금
  • Load Balancer 운영 비용: 트래픽에 따른 요금
  • 설정 복잡도: 자체 서명 인증서 관리, SSL 업데이트 등

해결책 - Firebase Hosting

대신 Firebase Hosting을 프록시로 사용하기로 결정했다.

Internet (dev-api.moodi.kr)
   ↓
Firebase Hosting (무료)
   ↓ (rewrite 설정)
Cloud Run

Firebase Hosting의 장점:

  • 커스텀 도메인 연결
  • SSL 자동 발급/갱신
  • rewrite 기능: firebase.json에서 모든 요청을 Cloud Run으로 포워드
  • 무료!

firebase.json 설정은 간단하다:

json
{
  "hosting": {
    "rewrites": [
      {
        "source": "/**",
        "run": {
          "serviceId": "moodi-api",
          "region": "asia-northeast1"
        }
      }
    ]
  }
}

이 한 줄로 모든 HTTP/HTTPS 요청이 Cloud Run으로 가고, SSL도 자동으로 관리된다.


최종 정리

Cloud Run 선택 이유

  • 서버 관리 부담 없음 - 인프라 관리 비용 절감
  • 자동 스케일링 - 요청에 따른 유동적 운영
  • GCP 서비스 통합 - Cloud SQL, Secret Manager 등과 자연스럽게 연결
  • 배포 자동화 - GitHub Actions + Workload Identity Federation
  • 비용 효율성 - 작은 프로젝트 규모에 맞는 선택

참고: https://docs.cloud.google.com/run/docs/overview/what-is-cloud-run?hl=ko

profile
꾸준히 기록하기

0개의 댓글