Cloud Run 실무 가이드
Cloud Run은 컨테이너 이미지를 그대로 실행하는 완전관리형 서버리스 플랫폼입니다. 인프라 관리 없이 HTTP 요청/이벤트 기반 워크로드를 초 단위 과금으로 운영할 수 있어, 데모·PoC부터 프로덕션 API까지 가장 먼저 검토하는 컴퓨팅 옵션입니다.
핵심 개념
섹션 제목: “핵심 개념”| 개념 | 설명 |
|---|---|
| Service | HTTP 요청을 처리하는 상시 엔드포인트. 리비전 단위로 배포/롤백 |
| Job | 완료 후 종료되는 배치성 작업 (스케줄 실행은 Cloud Scheduler 연동) |
| Revision | 배포 시마다 생성되는 불변 스냅샷. 트래픽 분할(카나리) 가능 |
| Concurrency | 인스턴스 1개가 동시에 처리할 요청 수 (기본 80, 최대 1000) |
기본 배포
섹션 제목: “기본 배포”# 소스에서 바로 배포 (Cloud Build 자동 사용)gcloud run deploy my-service \ --source . \ --region asia-northeast3 \ --allow-unauthenticated
# 컨테이너 이미지로 배포gcloud run deploy my-service \ --image asia-northeast3-docker.pkg.dev/PROJECT/repo/app:v1 \ --region asia-northeast3Cold Start 대응
섹션 제목: “Cold Start 대응”Cloud Run은 트래픽이 없으면 인스턴스를 0으로 줄입니다. 첫 요청 시 컨테이너 기동 시간만큼 지연이 발생합니다.
- min-instances 설정 — 가장 확실한 방법. 유휴 인스턴스 비용 발생
Terminal window gcloud run services update my-service --min-instances 1 - 경량 이미지 — distroless/slim 베이스, 멀티스테이지 빌드로 이미지 축소
- Startup CPU Boost — 기동 시 CPU를 일시적으로 추가 할당
- 지연 초기화 회피 — 앱 기동 시점에 무거운 초기화(모델 로드 등)를 하지 않도록 설계
데모 환경은 비용 절감을 위해 min-instances 0으로 운영하는 경우가 많습니다. 이 경우 첫 접속 시 1~2분 정도 로딩이 걸릴 수 있음을 사용자에게 안내하는 것이 좋습니다.
비용 최적화 포인트
섹션 제목: “비용 최적화 포인트”- CPU always allocated vs request-based: 백그라운드 작업이 없다면 요청 기반 과금이 저렴
- Concurrency 조정: I/O 바운드 앱은 동시성을 높여 인스턴스 수 절감
- max-instances 상한: 트래픽 급증 시 비용 폭주 방지
- 리전 선택: 서울(asia-northeast3) 기준으로 지연시간과 비용 균형 검토
실무 체크리스트
섹션 제목: “실무 체크리스트”- 서비스 계정 최소 권한 (기본 Compute SA 사용 금지)
- Secret Manager로 민감정보 주입 (환경변수 하드코딩 금지)
- Cloud Armor + LB 연동 (외부 공개 서비스)
- 구조화 로깅 (JSON) → Cloud Logging 자동 수집
- 리비전 트래픽 분할로 카나리 배포