TL;DR
Flutter WebView 위의 Next.js 15 앱을 Cloud Run에 올렸는데, 사용자는 평소 수준인데 인스턴스가 과도하게 증설되는 현상 발생. 원인은
next/image가 Vercel 인프라를 전제로 설계되어 Cloud Run에선 SSR과 동일 프로세스에서 이미지 변환이 일어나기 때문.unoptimized: true+Cache-Control+ Cloud CDN 조합으로 해결.
🏷️ 태그: #Next.js #Cloud Run #GCP #이미지 최적화 #트러블슈팅 #성능
📅 일시: 2026-05-19
🎯 환경: Next.js 15 (App Router, standalone) / Cloud Run / Flutter WebView
특정 시간대(약 1시간 15분)에 약 132명의 사용자가 유입되었는데, Cloud Run 인스턴스가 사용자 규모 대비 과도하게 증설됨.
핵심 단서: CPU·메모리는 안정적이었음. 즉 리소스가 부족해서가 아니라 뭔가 다른 이유로 스케일아웃이 일어나고 있음.
수치로 보면:
/_next/image 408건, /favicon.ico 322건, lottie 159건선행 분석 1에서 Dockerfile의 EACCES 결함을 발견하고 수정. 하지만 이번 현상은 그와 별개로 계속됨.
요청 로그를 까보니 절반 이상이 정적 자산(이미지·아이콘) 요청. 진짜 SSR 페이지 요청은 얼마 안 됨. 그런데 Cloud Run은 인스턴스를 계속 띄우고 있음.
여기서 의문: CPU도 메모리도 멀쩡한데 왜 인스턴스가 늘어나지?