ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP 응답코드에 따른 Load balancer 문제 확인 및 해결
    IT/Cloud 2023. 11. 21. 22:33
    반응형

    Http 응답코드에 대해서는 기존 글로 정리했던 사항이 있다. (https://ls-altr.tistory.com/35)

    이는 WEB서버 혹은 WAS 서버 관리시 자주 활용되는 사항인데, Cloud에서는 다른 조치 사항들이 있어 이를 정리하고자 한다.

    오류 코드 / 메시지 원인 해결방안
    400 Bad request 

    -  클라이언트가 HTTP사양을 충족하지 않는 잘못된 형식의 요청을 전송
    - 요청 헤더가 요청 Line당 16K, 단일 헤더당 16K 또는 전체 요청 헤더에서 64K를 초과
    -  클라이언트가 전체 요청 본문을 보내기 전에 연결 종료
    - request 확인 후 조치
    - 헤더 사이즈 확인
    - Timeout 확인

    401 Unauthorized  -  인증되지 않은 사용자를 거부하도록 OnUnauthenticatedRequest를 구성했거나 IdP가 액세스를 거부
    -  IdP에서 반환된 클레임 크기가 로드밸런서 지원 최대 크기 초과
    -  클라이언트가 호스트 헤더 없이 HTTP/1.0 요청을 제출했으며, 로드밸런서가 리디렉션 URL을 생성하지 못함
    -  요청된 범위가 ID 토큰을 반환하지 않음
    -  클라이언트 로그인 제한시간만료 전에 로그인 프로세스 미완료
    - Request 사이즈 확인 
    - Timeout 확인
    - 권한 확인
    403 Forbidden 

    -  Application Load Balancer에 대한 요청을 모니터링하기 위해 AWS WAF 웹 액세스 제어 목록(웹 ACL)을 구성하여 요청이 차단됨

    - 차단된 경우인 건이 많아, SG/방화벽 설정 등 보안 요소 확인
    408 Request timeout  - 클라이언트가 유휴 제한 시간 만료 전에 데이터를 전송하지 않음
    - 각 유휴 제한 시간이 지나기 전에 최소 1바이트의 데이터를 전송
     
    413 Payload too large 

    - 대상이 Lambda 함수이고 요청 본문이 1MB를 초과  
    414 URI too long  - 요청 URL 또는 쿼리 문자열 파라미터가 너무 큼 - 문자열 확인
    460 

    - 로드밸런서가 클라이언트에서 요청을 수신했지만, 유휴 제한 시간이 종료되기 전에 클라이언트가 로드밸런서와의 연결을 종료
    - 클라이언트 제한 시간이 로드밸런서의 유휴 제한 시간보다 큰지 확인
    - 클라이언트 제한 시간이 끝나기 전에 대상이 클라이언트에 응답을 제공하는지 확인하거나, 클라이언트가 제한 시간을 지원할 경우 로드밸런서의 유휴 제한 시간에 맞게 클라이언트 제한 시간 연장
    - 로드밸런서의 유휴 제한 시간에 맞게 클라이언트 제한 시간 연장
    500 Internal server error 

    - AWS WAF 웹 액세스 제어 목록(웹 ACL)을 구성했으며 웹 ACL 규칙을 실행하는 데 오류 발생
    - 로드 밸런서가 IdP 토큰 엔드포인트 또는 IdP 사용자 정보 엔드포인트와 통신 불가
    -  IdP의 DNS를 공개적으로 확인할 수 있는지 확인
    - 로드 밸런서의 보안 그룹과 VPC의 네트워크 ACL이 이러한 엔드포인트에 대한 발신 액세스를 허용하는지 확인
    - VPC에서 인터넷에 액세스할 수 있는지 확인, 내부 로드 밸런서가 있는 경우, NAT 게이트웨이를 사용하여 인터넷 액세스 활성화
    - 액세스 허용요소(SG/Firewall/OS 내부 firewalld 등 확인)
    - Gateway 제한 요소 확인
    502 Bad gateway  - ELB가 대상 그룹의 인스턴스로부터 응답을 받지 못함
    - 대상 그룹 인스턴스의 서비스 상태 확인 및 요청/응답 로그 확인
    - 대상 서비스 기동 여부 확인
    503 Service Unavailable  - 대상 그룹에 등록된 인스턴스가 없거나 클라이언트 요청이 급격히 증가하는 경우
    - 대상 그룹에 인스턴스를 등록
    - ELB의 스케일링 시간 부족 문제로 시간이 지나면 해결될 수 있음
    - Target 그룹 내 어플리케이션 기동 여부 확인 / 실제 WAS 문제일 가능성 많음.
    - ASG 등으로 인해 일시적일 수도 있다.
    504 Gateway Timeout - ELB의 Idle Timeout보다 대상 그룹 인스턴스의 요청을 처리하는 시간이 더 긴 경우
    - 인스턴스가 ELB Connection을 Close한 경우
    - 인스턴스 스케일 아웃 또는 Idle Timeout 상향 조정
    - 대상 그룹 인스턴스의 Keep-alive Timeout을 ELB Timeout보다 높게 조정
    - ELB Timeout 점검

     

    참고 : https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/application/load-balancer-troubleshooting.html

    반응형
Designed by Tistory.