9. EKS 활용 사례 3 (Troubleshooting)

Update : 2025.08.07

EKS 디버깅 워크샵 – Amazon Q 기반 Kubernetes 문제 해결

이 가이드는 Amazon Q와 함께 마이크로서비스 기반 Kubernetes 애플리케이션에서 자주 발생하는 문제들을 어떻게 진단하고 수정하는지를 실습 중심으로 설명합니다.

각 시나리오는 다음 요소로 구성됩니다:

  • 초기 정상 상태

  • 문제를 의도적으로 유발하는 방법

  • 증상 및 에러 메시지

  • 문제 해결을 위한 Amazon Q 프롬프트

  • kubectl을 통한 결과 검증

1. Kubernetes 문제 해결 시나리오

1.1 Scenario 1: 잘못된 Service Selector

  • 초기 상태

UI 서비스가 정상적으로 Catalog 서비스에 연결되어 상품 목록을 불러옵니다.

  • 문제 유발 프롬프트:

cd ~/environment/eks-workshop-v2/
# 현재 catalog 서비스 정의 추출
kubectl get service catalog -n catalog -o yaml > catalog-service.yaml

# selector 값을 잘못된 값으로 변경
sed -i 's/app.kubernetes.io\/name: catalog/app.kubernetes.io\/name: catalog-wrong/g' catalog-service.yaml

# 변경된 서비스 적용
kubectl apply -f catalog-service.yaml
  • 증상

    • UI에서 상품 목록을 로드할 때 오류 발생

    • UI 파드 로그에서 catalog 서비스 연결 거부 메시지

    • catalog 서비스는 존재하지만, 트래픽이 파드로 전달되지 않음

  • Amazon Q 프롬프트 예시 :

실행 결과는 아래와 같습니다:

markdown 예시arrow-up-right

  • 문제 검증 및 복구

1.2 Scenario 2: 리소스 제약 (Resource Constraints)

  • 초기 상태 : Carts 서비스가 충분한 CPU 및 메모리 리소스를 갖고 정상적으로 동작함.

  • 문제 유발 프롬프트:

  • 증상

    • carts 파드가 CrashLoopBackOff 상태로 반복 재시작됨

    • 이벤트에 OOMKilled(메모리 부족으로 종료) 로그 발생

    • 애플리케이션 응답 지연 또는 중단

  • 실행 결과는 아래와 같습니다:

  • Amazon Q 프롬프트 예시 :

  • 실행 결과는 아래와 같습니다:

markdown 에시arrow-up-right

  • 검증 명령어

  • 결과 확인

1.3 Scenario 3: 의존성 누락 (Missing Dependencies)

  • 초기 상태

Orders 서비스는 RabbitMQ 서비스에 의존하여 메시지 큐 기능을 수행.

  • 문제 유발

  • 증상

    • checkout 서비스와 Redis연결 이슈 발생

  • Amazon Q 프롬프트 예시:

  • 실행 결과는 아래와 같습니다:

markdown 결과 예시arrow-up-right

  • 검증 명령어:

  • 실행 결과는 아래와 같습니다:

Last updated