[AWS] Https 로드밸런서 대상 그룹의 Healthy Check 문제

jinni·2022년 12월 23일
0

에러

목록 보기
3/4

문제 상황

미니 프로젝트를 진행하면서, 시큐리티와 jwt를 적용했다. 근데 위 사진 처럼 1번 에러가 30초에 한 번씩 무한루프처럼 로그에 계속 찍히는 상태가 발생한 것이다. 해당 사진은 디버그 할 때, 찍은 거라 저렇게 나왔지만 초반에는 1번만 계속 올라왔다.

원인

로드 밸런서등록된 대상으로 요청을 주기적으로 전송해 상태(Healthy) 체크를 진행한다. 그래서 대상 그룹의 정해진 디폴트 경로로 요청을 받아 상태 코드를 응답을 보내주어야 한다. 이를 처리해주지 않았던 것이 근본적인 문제였다.


(대상 그룹의 정보 및 health check 속성)

대상 그룹의 경로와 상태코드는 변경 가능

해결

  • Exception 클래스의 printStackTrace() 내장 메서드를 사용한 에러 추적
  • IntelliJ 디버그 모드@EnableWebSecuritydebug = true 옵션을 추가해서 Security의 모든 JwtFilter 로그 추적
  • 로드밸런서의 대상 그룹에 대한 상태(healthy) 확인 요청이 발생한다는 것을 파악(2번 이슈 - 디버그, 로깅으로 알게 됨)
  • 해당 요청이 지속적으로 Security의 JwtFilter 를 통과하지 못 하여, 1번 에러가 계속해서 발생하는 것을 파악

따라서, security의 JwtFilter 에서 해당 요청의 uri는 토큰 검사와 다른 인증 과정 없이 컨트롤러에 도착할 수 있게 하였다. 그 후 아래 사진과 같이 요청 받을 controller를 추가해 요청을 받고 응답해주어 문제를 해결할 수 있다.

전체적인 코드는 아래 깃허브에서 확인할 수 있습니다.

https://github.com/hangj97/HaeLog-BE

profile
조금씩 천천히 꾸준하게

0개의 댓글