-
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 점검 반응형'IT > Cloud' 카테고리의 다른 글
EC2 인스턴스에서 ec2-user에게 crontab 권한 부여하기 (0) 2024.08.04 IMDS v2 에 대한 정보(v1 과 v2 차이) (0) 2024.07.17 SSM 에이전트를 통한 EC2 접속이 안될 경우 대응 방법 (0) 2023.05.21 docker_로컬 환경 구성 (0) 2023.02.01 AWS 자격증 시험 응시 (0) 2022.10.03