AWS Client TLS Negotiation Error

0

문제

Jenkins Trigger를 통해 스케줄 Job을 실행 하던 중 Job이 일부는 성공 하고 일부는 실패하는 현상이 발생


원인

ALB 설정 중 AZ 중 하나가 private 설정으로 되어 있어, 요청 중 일부는 TG에 도달하지 못함


해결

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

0개의 댓글