본문 바로가기

Networking

[Tip] Amazon ELB의 다양한 Error 상황 알아보기

반응형

안녕하세요 서후아빠입니다. ^_^

이번 세션은 ELB(ALB, NLB 등)에서 발생하는 다양한 Error에 대해서 필요한 정보들을 정리해 보았습니다.

이 세션은 앞으로도 계속 업데이트 할 예정입니다.


Target group 모니터링에서 Unhealthy Host(count)의 해당하는 Instance 확인 방법?

Unhealthy Host는 AWS 내부 툴을 이용하여 확인 가능하며, AWS 내부 툴은 외부 공유 불가하다는 AWS 답변
또한, UnHealthy Host(Count) 목록 통계도 외부 반출이 불가하다고 함
즉, MSP 업체 통해 Case Open으로 통해서만 일부 내용이 확인 가능

ALB 502 Error (elb_status_code 값 502, target_status_code 값 -1)

elb_status_code 값 502 : 502 에러가 ALB에서 발생했다는 의미
response_processing_time -1 : ALB에서 요청한 패킷이 백엔드에서 응답 헤더가 ALB로 온 상태

즉, ALB에서 어떤 이유로 502에러가 발생했음을 의미하므로 MSP 통해서 해당 ALB에 대한 분석이 필요

ALB 503 Error 발생 원인

로드밸런서 용량 부족 : 일시적인 현상
연결된 인스턴스가 없음 : 모든 인스턴스 장애 (CloudWatch의 "HealthyHostCount" 확인)
인스턴스의 서비스가 unhealthy 상태 : 연결된 모든 인스턴스의 서비스가 장애 (CLoudWatch의 "HealthyHostCount" 확인)
Queue에 남아 있는 요청이 Full인 경우 : CLoudWatch의 "SpillOverCount" 확인

ELB 504 Error 발생 원인

게이트웨이 시간초과 : 서버가 게이트웨이나 프록시 역할을 하고 있거나 or 업스트림 서버에서 제때 요청을 받지 못함

확인 사항

  1) 로드 밸런서의 유휴 제한 시간 확인 

  2) CloudWatch의 Metrics에서 백엔드 대상에 대한 연결 오류 확인하여 분석 : Classic LB는 "BackendConnectionErrors" 확인, ALB는 "TargetConnectionErrorCount" 확인

해결방법 :  HTTP 요청을 유휴 제한 시간 내 처리하도록 조정

  1) 로드 밸런서의 유휴 제한 시간 수정

  2) Application을 조정하여 빠른 응답 처리하거나 연결 유지 제한 시간을 로드 밸런서 유휴 제한시간보다 큰값으로 설정

AWS 참고 URL

502 Error 트러블 슈팅 : https://aws.amazon.com/ko/premiumsupport/knowledge-center/elb-alb-troubleshoot-502-errors/

EKS 504 Error  트러블 슈팅 : https://aws.amazon.com/ko/premiumsupport/knowledge-center/eks-http-504-errors/
HTTP Error 트러블 슈팅 : https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/ts-elb-error-message.html 

 

반응형