ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ AWS ] ELB 운영 이슈(ft. 응답코드)
    Topic/AWS | JENKINS 2022. 9. 3. 16:10
    반응형

    - HTTP 5XX 에러

    유형 HTTP 502 Bad Gateway
    HTTP 503 Service Unavailable
    HTTP 504 Gateway Timeout
    원인 분석 HTTP 502 Bad Gateway

    – 백엔드 인스턴스로부터 온 응답을 ELB가 받지 못할 경우 발생

    HTTP 503 Service Unavailable

    – 인스턴스가 한 대도 등록되어 있지 않을 경우 발생

    – 모든 인스턴스가 Unhealthy 상태일 경우 발생

    – 짧은 시간에 Request가 급격하게 들어온 경우

    HTTP 504 Gateway Timeout

    – 인스턴스의 요청 처리 시간이 ELB Timeout 보다 길 경우 HTTPCode_ELB_5XX 및 Latency Metrics 동시 증가

    – 인스턴스가 ELB 요청을 Close한 경우 발생

    해결 방법 HTTP 502 Bad Gateway

    – 인스턴스의 WAS 로그를 참조하여 정상적으로 응답을 하였는지 확인

    – 응답이 정상이었음에도 불구하고 이슈 발생 시는 Support Center에 Case Open하여 내부 확인 요청

    HTTP 503 Service Unavailable

    – 인스턴스 등록

    – Health Check 점검, 인스턴스 상태를 healthy로 만들어 해결, Security Group 등 VPC 설정을 점검하여 인스턴스가 ELB와 통신 가능한 상태인지 점검

    – 예상된 peak 트래픽일 경우 pre-warming 신청, 일시적으로 ELB의 Scaling 시간이 부족하여 발생할 수 있으며 이 경우에는 수 분 이내로 자동 해결됨, 이슈가 지속될 경우 Support Center에 Case Open하여 내부 확인 요청

    HTTP 504 Gateway Timeout

    – 인스턴스 CPU Utilization이 높을 경우 새 인스턴스를 추가, 프로그램이 DB나 외부 API 등 외부 의존도가 높을 경우 해당 Dependency 점검

    – 백엔드 서버의 Keep-Alive를 활성화, 백엔드 서버의 Keep-Alive Timeout을 ELB Timeout보다 높게 설정

    – 인스턴스 Out Of Service

    원인

    Instance is in stopped state

    Instance registration is still in progress

    Instance has failed at least the Unhealthy Threshold number of health checks consecutively

    해결 방법

    Instance is in stopped state

    – 인스턴스 시작

    Status(!) : OutOfService ç 인스턴스가 정지된 상태

    Instance registration is still in progress

    – 인스턴스가 최근에 추가되었을 경우 등록 진행 중이며, 짧은 시간 이내로 자동으로 해결됨

    – 이슈가 지속될 경우 Support Center에 Case Open

    Status(!) : OutOfService ç 인스턴스 등록이 여전히 진행 중인 상태

    Instance has failed at least the Unhealthy Threshold number of health checks consecutively

    – Health Check 이슈 해결 방법과 동일하게 해결

    – Health Check 실패

    원인 Health Check Target Page가 200 이 외의 응답 코드를 반환할 경우
    Health Check Timeout
    해결 방법 Health Check Target Page가 200 이 외의 응답 코드를 반환할 경우

    – ELB는 Health Check Target Page가 200 이 외의 응답 코드를 반환 시 인스턴스를 Unhealthy 처리, 특히 HTTP 302 Redirect를 반환하여 자주 발생함.

    – HTTP 200 OK 응답 코드를 반환하도록 알맞은 URI를 찾아 등록

    Health Check Timeout

    – 백엔드 서버의 Keep-Alive를 활성화

    – 백엔드 서버의 Keep-Alive Timeout을 ELB Timeout보다 높게 설정

    – Health Check 페이지의 외부 Dependency (DB 등) 점검

    반응형
Designed by LEO.