아무도 설정한 적 없는 기본 리소스 값 때문에 클라우드 비용이 새고 있었다

2026/08/08클라우드 인프라 구축·전환GKE Autopilot · Kubernetes · Helm

GKE Autopilot과 같은 서버리스 컨테이너 환경에서는 노드 단위가 아니라 파드가 선언한 리소스 요청량(Resource Requests)에 비례하여 과금됩니다.

따라서 매니페스트에 리소스 요청량을 명시하지 않으면 무료가 되는 것이 아니라, 클라우드 플랫폼이 정한 넉넉한 기본값(CPU 500m / 메모리 2GiB 등)이 강제로 주입되어 과금됩니다.

문제 발견: 실사용량의 500배로 잡혀있던 리소스

인증서 관리 도구(cert-manager)를 배포했을 때, 차트에 리소스 요청량이 비어 있어 파드 3대에 총 1.5 vCPU / 6 GiB 메모리가 할당되어 매달 비용이 청구되고 있었습니다.

실제 부하를 프로파일링한 결과, 세 파드가 실제로 사용하는 자원은 다 합쳐도 CPU 1m(0.001 vCPU), 메모리 20MB 남짓(요청량의 0.2%)에 불과했습니다.

최적화 및 안정화 방안

  1. 플랫폼 최소 지원 단위로 최적화: Autopilot이 허용하는 최소 파드 요청량 규격에 맞추어 0.75 vCPU / 1.5 GiB 수준으로 대폭 축소하여 불필요한 비용 누수를 차단했습니다.
  2. GitOps 형상 불일치 해결: 플랫폼이 임의로 주입한 기본값 때문에 ArgoCD에서 항상 'OutOfSync(설정 불일치)' 상태로 나타나던 문제를 명시적 리소스 선언을 통해 해결했습니다.
  3. 일반 노드 풀(Standard GKE)의 우선순위 보장: 반대로 일반 노드 풀에서는 요청량이 비어 있으면 과금은 안 되지만 노드 리소스 부족 시 파드가 강제 퇴거(Eviction)될 위험이 있으므로, 실사용량 기반의 적정 요청량을 명시해 안정성을 확보했습니다.

요약

클라우드 비용 최적화의 출발점은 우리가 사용하는 인프라 모드의 정확한 과금 단위와 기본 동작 메커니즘을 명확히 이해하는 것입니다.