GCP 시니어 트러블슈팅 면접

GCP 시니어 (7년+) 트러블슈팅 7문항 조회수 33 · 2026-08-04 (화) 13:14:47
1 GKE 장애 대응
Hard

Q. GKE 클러스터에서 특정 Pod들이 간헐적으로 OOMKilled 상태가 되며 재시작되고 있습니다. 모니터링 결과 메모리 사용량이 점진적으로 증가하다가 limit에 도달하는 패턴이 관찰됩니다. 이 문제의 원인을 파악하고 해결하기 위한 단계별 접근 방법과 재발 방지 전략을 설명해주세요.

메모리 누수와 리소스 설정, 그리고 애플리케이션 레벨과 인프라 레벨의 모니터링을 함께 고려해보세요.

A. 모범답안

먼저 kubectl describe pod와 kubectl logs를 통해 OOM 발생 시점의 로그와 메트릭을 확인합니다. Cloud Monitoring에서 컨테이너별 메모리 사용 추이를 분석하고, heap dump를 수집하여 메모리 누수 지점을 식별합니다. 애플리케이션 코드에서 메모리 누수(unclosed connections, cache 무제한 증가 등)를 찾아 수정하고, resource requests/limits를 실제 사용량 기반으로 적절히 조정합니다. Vertical Pod Autoscaler를 활용해 자동 리소스 조정을 구성하고, Liveness/Readiness probe를 개선하여 비정상 상태를 조기 감지합니다. 재발 방지를 위해 메모리 사용량 임계치 기반 알림을 설정하고, 정기적인 메모리 프로파일링을 CI/CD 파이프라인에 포함시킵니다.

핵심 포인트
  • • kubectl 명령어와 Cloud Monitoring을 활용한 메트릭 수집 및 분석
  • • heap dump 분석을 통한 메모리 누수 지점 식별
  • • 애플리케이션 레벨 수정과 리소스 설정 최적화
  • • VPA와 probe 설정을 통한 자동화 및 조기 감지
  • • 모니터링 알림 및 CI/CD 통합을 통한 재발 방지
답변에 넣으면 좋은 키워드
OOMKilled 메모리 누수 heap dump resource limits VPA Cloud Monitoring
실무에서는

프로덕션 환경에서 트래픽 증가에 따른 메모리 관리 문제를 사전에 방지하고 안정적인 서비스를 유지하는 데 필수적입니다.

Follow-up 질문

만약 메모리 누수가 애플리케이션이 아닌 사이드카 컨테이너에서 발생한다면 어떻게 격리하고 해결하시겠습니까?

2 Cloud SQL 성능 저하
Hard

Q. Cloud SQL PostgreSQL 인스턴스에서 갑자기 쿼리 응답 시간이 평소 대비 10배 이상 느려지는 현상이 발생했습니다. CPU 사용률은 30% 수준이고 메모리도 충분한 상태입니다. 어떤 순서로 원인을 진단하고 해결하시겠습니까? 장애 상황에서의 즉각적인 대응과 근본 원인 분석 방법을 모두 포함해 설명해주세요.

CPU와 메모리가 정상이라면 I/O, 락, 연결 풀 등 다른 병목 지점을 체크해야 합니다.

A. 모범답안

먼저 Cloud SQL Insights와 Query Insights를 확인하여 느린 쿼리와 대기 이벤트를 식별합니다. pg_stat_activity를 조회해 장기 실행 쿼리나 락 대기 상황을 파악하고, 필요시 블로킹 쿼리를 종료합니다. 디스크 I/O 메트릭을 확인하여 IOPS 제한에 도달했는지 검증하고, 연결 수가 max_connections에 근접했는지 체크합니다. 즉각적 완화를 위해 Read Replica로 읽기 트래픽을 분산하고, 필요시 인스턴스를 더 높은 tier로 임시 스케일업합니다. 근본 원인으로 인덱스 부재, 통계 정보 오래됨, 테이블 bloat 등을 확인하여 VACUUM, ANALYZE, 인덱스 추가 등을 수행합니다. 재발 방지를 위해 슬로우 쿼리 로깅을 활성화하고, 쿼리 성능 임계치 기반 알림을 설정합니다.

핵심 포인트
  • • Cloud SQL Insights와 pg_stat_activity를 통한 실시간 진단
  • • 디스크 I/O, 연결 수, 락 상태 등 다각도 메트릭 분석
  • • Read Replica와 스케일업을 통한 즉각적 완화
  • • 인덱스, VACUUM, 통계 정보 업데이트 등 근본 원인 해결
  • • 슬로우 쿼리 로깅과 알림 설정을 통한 예방 체계 구축
답변에 넣으면 좋은 키워드
Query Insights pg_stat_activity 디스크 I/O Read Replica VACUUM 인덱스
실무에서는

데이터베이스 성능 저하는 전체 서비스 가용성에 직접적인 영향을 미치므로 신속한 진단과 대응이 중요합니다.

Follow-up 질문

만약 이 문제가 특정 시간대에만 반복적으로 발생한다면 어떤 추가 조사를 진행하시겠습니까?

3 Cloud Load Balancer 장애
Hard

Q. Global HTTP(S) Load Balancer 뒤의 백엔드 서비스에서 일부 사용자들이 502 Bad Gateway 에러를 간헐적으로 받고 있다는 리포트가 들어왔습니다. 전체 트래픽의 약 5% 정도가 영향을 받고 있으며, 특정 지역이나 시간대에 국한되지 않습니다. 이 문제를 체계적으로 디버깅하고 해결하는 방법을 설명해주세요.

502 에러는 주로 백엔드와 로드밸런서 간의 통신 문제에서 발생하므로 health check, timeout, 백엔드 상태를 중점적으로 봐야 합니다.

A. 모범답안

먼저 Cloud Logging에서 로드밸런서의 502 에러 로그를 필터링하여 패턴을 분석하고, 특정 백엔드 인스턴스나 리전에서 집중 발생하는지 확인합니다. Health check 설정과 실제 백엔드 응답을 비교하여 health check 실패나 flapping이 있는지 점검합니다. 백엔드 서비스의 타임아웃 설정(backend timeout, request timeout)이 실제 애플리케이션 응답 시간보다 짧지 않은지 검증합니다. Cloud Trace를 활용해 요청의 end-to-end 레이턴시를 추적하고, 백엔드 인스턴스의 리소스 사용률과 네트워크 메트릭을 확인합니다. 연결 드레이닝 설정이 적절한지, 백엔드 인스턴스가 graceful shutdown을 제대로 처리하는지 검증하고, 필요시 keep-alive 설정을 조정합니다. 재발 방지를 위해 502 에러율 기반 알림을 설정하고, 카나리 배포와 점진적 롤아웃 전략을 도입합니다.

핵심 포인트
  • • Cloud Logging 분석을 통한 502 에러 패턴 식별
  • • Health check 설정과 실제 백엔드 상태 검증
  • • 타임아웃 설정과 애플리케이션 응답 시간 비교
  • • Cloud Trace를 통한 end-to-end 레이턴시 추적
  • • 연결 드레이닝과 graceful shutdown 검증 및 개선
답변에 넣으면 좋은 키워드
502 Bad Gateway Health check timeout Cloud Trace connection draining graceful shutdown
실무에서는

로드밸런서와 백엔드 간의 통신 문제는 사용자 경험에 직접적인 영향을 미치므로 정확한 원인 파악이 필수적입니다.

Follow-up 질문

만약 502 에러가 배포 직후에만 발생한다면 어떤 부분을 중점적으로 확인하시겠습니까?

4 Cloud Storage 접근 장애
Medium

Q. 애플리케이션에서 Cloud Storage 버킷의 특정 객체들에 접근할 때 403 Forbidden 에러가 발생하고 있습니다. 같은 버킷의 다른 객체들은 정상적으로 접근 가능하며, 문제가 되는 객체들은 최근에 다른 프로젝트에서 복사해온 파일들입니다. 이 문제의 원인을 파악하고 해결하는 방법을 설명해주세요.

객체 레벨의 권한과 소유권, 그리고 프로젝트 간 복사 시 발생할 수 있는 ACL 문제를 고려해보세요.

A. 모범답안

먼저 gsutil ls -L 명령어로 문제가 되는 객체의 ACL과 메타데이터를 확인하여 권한 설정을 검증합니다. Cloud Storage의 IAM 정책과 객체별 ACL을 모두 점검하고, 복사된 객체가 원본 프로젝트의 ACL을 그대로 유지하고 있는지 확인합니다. Cloud Logging에서 storage.objects.get 요청의 실패 로그를 분석하여 정확한 거부 이유를 파악합니다. 문제 해결을 위해 gsutil acl set 또는 gsutil iam ch 명령어로 적절한 권한을 부여하거나, 버킷의 uniform bucket-level access를 활성화하여 일관된 권한 관리를 적용합니다. 향후 프로젝트 간 객체 복사 시 -p 옵션을 사용하지 않거나, 복사 후 자동으로 ACL을 재설정하는 스크립트를 파이프라인에 포함시킵니다.

핵심 포인트
  • • gsutil ls -L을 통한 객체별 ACL 및 메타데이터 확인
  • • IAM 정책과 객체 ACL의 이중 검증
  • • Cloud Logging을 통한 거부 이유 상세 분석
  • • gsutil 명령어 또는 uniform bucket-level access를 통한 권한 수정
  • • 프로젝트 간 복사 시 ACL 자동 재설정 프로세스 구축
답변에 넣으면 좋은 키워드
403 Forbidden ACL IAM gsutil uniform bucket-level access Cloud Logging
실무에서는

멀티 프로젝트 환경에서 리소스를 이동하거나 공유할 때 권한 문제는 자주 발생하는 이슈입니다.

Follow-up 질문

uniform bucket-level access와 fine-grained ACL 중 어떤 방식을 선택할지 결정하는 기준은 무엇입니까?

5 Cloud Functions 타임아웃
Medium

Q. Cloud Functions(2nd gen)로 구현된 이미지 처리 함수가 최대 실행 시간인 60분에 도달하여 타임아웃되는 경우가 발생하고 있습니다. 처리해야 할 이미지 크기와 수량이 증가하면서 문제가 심화되고 있습니다. 이 문제를 해결하기 위한 단기 및 장기 전략을 제시하고, 각 접근법의 트레이드오프를 설명해주세요.

함수의 실행 시간 제한을 우회하려면 아키텍처 레벨의 변경이 필요할 수 있습니다.

A. 모범답안

먼저 Cloud Logging과 Cloud Trace를 통해 함수 내부의 병목 지점을 식별하고, 불필요한 처리나 동기 대기를 최적화합니다. 단기적으로는 함수의 메모리와 CPU 할당을 늘려 처리 속도를 향상시키고, 배치 크기를 줄여 개별 함수 실행 시간을 단축합니다. 중기적으로는 대용량 작업을 여러 개의 작은 태스크로 분할하여 Cloud Tasks나 Pub/Sub를 통해 분산 처리하는 구조로 변경합니다. 장기적으로는 장시간 실행 작업을 Cloud Run이나 GKE의 Job으로 마이그레이션하여 실행 시간 제약을 제거하고, Cloud Workflows로 복잡한 처리 파이프라인을 오케스트레이션합니다. 각 이미지 처리 상태를 Firestore에 저장하여 실패 시 재시작 지점부터 재개할 수 있도록 멱등성을 보장합니다.

핵심 포인트
  • • Cloud Logging과 Trace를 통한 병목 지점 식별 및 최적화
  • • 메모리/CPU 증가와 배치 크기 조정을 통한 단기 개선
  • • Cloud Tasks/Pub/Sub 기반 분산 처리 아키텍처로 전환
  • • Cloud Run/GKE로 마이그레이션하여 실행 시간 제약 제거
  • • 상태 저장과 멱등성 보장을 통한 안정성 확보
답변에 넣으면 좋은 키워드
타임아웃 Cloud Functions 분산 처리 Cloud Tasks Cloud Run 멱등성
실무에서는

서버리스 함수의 실행 시간 제약은 대용량 배치 처리나 장시간 작업에서 흔히 마주치는 제약사항입니다.

Follow-up 질문

Cloud Functions에서 Cloud Run으로 마이그레이션할 때 고려해야 할 주요 아키텍처 변경 사항은 무엇입니까?

6 VPC 네트워크 연결 장애
Hard

Q. VPC Peering으로 연결된 두 개의 VPC 네트워크 간에 통신이 갑자기 불가능해졌습니다. 어제까지는 정상 작동했으며, 양쪽 VPC의 방화벽 규칙이나 라우팅 설정에는 변경사항이 없다고 합니다. 이 문제를 체계적으로 진단하고 해결하는 프로세스를 설명해주세요.

변경사항이 없다고 해도 IP 범위 중복, 라우팅 충돌, 또는 간과된 설정 변경이 있을 수 있습니다.

A. 모범답안

먼저 VPC Peering 상태를 확인하여 ACTIVE 상태인지, 에러 메시지가 있는지 점검합니다. 양쪽 VPC의 서브넷 CIDR 범위가 중복되거나 새로 추가된 서브넷이 충돌하지 않는지 확인합니다. VPC Flow Logs를 활성화하여 패킷이 어디서 드롭되는지 추적하고, Connectivity Tests를 실행하여 네트워크 경로의 문제 지점을 식별합니다. 방화벽 규칙의 우선순위와 타겟 태그, 서비스 계정 필터가 의도대로 적용되고 있는지 재검증하고, 암묵적 거부 규칙이 활성화되지 않았는지 확인합니다. Cloud Audit Logs를 조회하여 최근 24-48시간 내의 모든 네트워크 관련 변경사항을 추적합니다. 문제 해결 후 VPC Peering의 import/export custom routes 설정을 검토하고, 네트워크 변경 시 자동 테스트를 수행하는 파이프라인을 구축합니다.

핵심 포인트
  • • VPC Peering 상태와 서브넷 CIDR 중복 여부 확인
  • • VPC Flow Logs와 Connectivity Tests를 통한 패킷 경로 추적
  • • 방화벽 규칙의 우선순위와 필터 조건 재검증
  • • Cloud Audit Logs를 통한 최근 변경사항 전수 조사
  • • 자동화된 네트워크 테스트 파이프라인 구축
답변에 넣으면 좋은 키워드
VPC Peering CIDR 중복 VPC Flow Logs Connectivity Tests 방화벽 규칙 Cloud Audit Logs
실무에서는

멀티 VPC 환경에서 네트워크 연결 문제는 서비스 간 통신 장애로 이어지므로 신속한 해결이 중요합니다.

Follow-up 질문

만약 VPC Peering 대신 Cloud VPN이나 Cloud Interconnect를 사용했다면 트러블슈팅 접근법이 어떻게 달라지겠습니까?

7 BigQuery 쿼리 성능 저하
Hard

Q. 프로덕션에서 매일 실행되는 BigQuery 쿼리의 실행 시간이 최근 일주일 사이에 평소 5분에서 2시간 이상으로 급격히 증가했습니다. 쿼리 자체는 변경되지 않았고, 처리하는 데이터 볼륨도 일정합니다. 이 성능 저하의 원인을 찾아내고 해결하는 방법을 단계별로 설명해주세요.

쿼리와 데이터 볼륨이 동일하다면 테이블 구조, 파티셔닝, 클러스터링, 통계 정보 등의 변화를 살펴봐야 합니다.

A. 모범답안

먼저 BigQuery의 Query Execution Details에서 각 스테이지별 실행 시간과 슬롯 사용량을 분석하여 병목 구간을 식별합니다. INFORMATION_SCHEMA.JOBS를 조회하여 과거와 현재의 처리된 바이트 수, 슬롯 사용 시간, 캐시 히트율을 비교합니다. 테이블의 파티션 프루닝이 제대로 작동하는지 확인하고, WHERE 절에 파티션 컬럼이 올바르게 사용되고 있는지 검증합니다. 테이블의 스키마 변경이나 클러스터링 컬럼 수정이 있었는지 확인하고, 데이터 스큐나 핫스팟이 발생했는지 분석합니다. 쿼리 플랜에서 불필요한 shuffle이나 broadcast가 발생하는지 점검하고, 필요시 쿼리를 리팩토링하거나 materialized view를 활용합니다. 슬롯 할당량 문제인지 확인하고, reservation을 조정하거나 BI Engine을 활용한 가속화를 고려합니다. 재발 방지를 위해 쿼리 성능 메트릭을 모니터링하고, 데이터 품질과 스키마 변경에 대한 검증 프로세스를 강화합니다.

핵심 포인트
  • • Query Execution Details와 INFORMATION_SCHEMA를 통한 상세 분석
  • • 파티션 프루닝과 클러스터링 효과 검증
  • • 데이터 스큐와 핫스팟 식별
  • • 쿼리 플랜 분석 및 최적화, materialized view 활용
  • • 슬롯 할당량과 reservation 조정, 모니터링 강화
답변에 넣으면 좋은 키워드
BigQuery Query Execution Details 파티션 프루닝 클러스터링 데이터 스큐 슬롯 materialized view
실무에서는

대규모 데이터 분석 파이프라인에서 쿼리 성능 저하는 전체 데이터 처리 지연으로 이어져 비즈니스 의사결정에 영향을 줍니다.

Follow-up 질문

BigQuery의 슬롯 기반 가격 모델과 on-demand 가격 모델 중 어떤 상황에서 어느 것을 선택해야 할까요?

댓글 0

로그인 후 댓글을 작성할 수 있습니다.

아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!