문제
Jenkins Trigger를 통해 스케줄 Job을 실행 하던 중 Job이 일부는 성공 하고 일부는 실패하는 현상이 발생
원인
ALB 설정 중 AZ 중 하나가 private 설정으로 되어 있어, 요청 중 일부는 TG에 도달하지 못함
해결
- 요청 구조 확인 (Jenkins -> CF -> ALB -> TG)
- 요청 누락 확인을 위해 Nginx Access Log를 키고 Post man으로 요청 테스트 진행
- 일부 요청이 Nginx까지 도달하지 않는 것을 확인 (Access log, Error log 기록 없음)
- 그 다음 구간(ALB-TG) 확인을 위해 ALB 매트릭 정보 확인
- 매트릭 정보 중 Client TLS Negotation Error가 빈번히 나타나는 것을 확인
- TLS 문제는 다양한 원인이 있겠지만, 얼마전 요청 도메인에 대한 인증서 교체 작업이 이뤄졌고, 그 과정에서 TLS 버전에 대한 업그레이드 언급이 있었던 걸로 미뤄보아 TLS 버전 문제일 가능성을 염두해두고 확인
- ALB TLS 버전은 1.3, CF TLS 버전은 1.2로 확인됨.
- CF의 TLS 버전이 1.3이라면 하위 호환성을 지원하기 때문에 정상 동작 했겠지만, 1.2버전이기 때문에 이 부분을 의심하고, 해당 버전에 대한 수정을 진행 함.
- 수정 했음에도 요청이 정상적으로 인입되지 않음.
- 이후 ALB 설정을 확인 하던 중 AZ 중 하나가 private 설정으로 되어 있는 것을 확인함
- private -> public으로 변경 하고, 정상유입 되는 것을 확인.