Home 개발 서버 네트워크 문제
Post
Cancel

개발 서버 네트워크 문제

문제 상황

프로젝트를 진행하면서 로컬 환경에서는 문제없이 작동하던 키클락(Keycloak)을 이용한 로그인 테스트가 개발 서버에서는 연결 실패로 작동하지 않는 문제가 있었다. 로컬에서는 키클락 인증이 문제없이 통과되었지만, 개발 서버에서는 connection timeout 오류가 발생하였다.

환경 설정

  • 로컬 환경: 내부 네트워크
  • 의뢰측 서버 환경: VPN을 통해서만 접근 가능
  • 개발 서버: 특정 URL을 통해 80포트 열림

진단 과정

  1. 로컬 서버 테스트:

    • POSTMAN과 코드로 구현된 키클락 인증 모두 성공.
  2. 개발 서버 테스트:

    • 동일한 코드에서 connection timeout.
  3. 추가 네트워크 테스트:

    • 로컬에서 nmap을 사용하여 키클락 요청 주소 `키클락 인증 url’의 443포트: 성공.
    • 개발 서버에서 동일 주소의 443포트: 실패
    • agent 서버에서 443포트: 성공
  4. 컬(curl) 명령어 테스트:

    • 개발 서버에서 curl https://www.naver.com: 성공
    • 개발 서버에서 curl 키클락 인증 url: 실패. 이는 네트워크 문제로 확인

해결 조치

  • 네트워크 전문가와 협업: 키클락 인증 url로의 접속 실패를 캡처하여 의뢰측에 문제를 보고하고 해결을 요청.
  • 호스트 파일 확인 및 수정: 이전 통신에서 제안된 호스트 파일 수정이 제대로 적용되지 않았을 가능성이 있음. 해당 내용을 재확인하여 정상적으로 수정.

학습 포인트

  • 환경 간 차이 인식: 개발 환경과 실제 배포 환경 사이에서 발생할 수 있는 네트워크 설정 차이를 인식하고, 이를 체계적으로 검토하는 과정 필요.
  • 문제 해결을 위한 체계적 접근: 문제 발생 시 단계별 접근과 체계적인 로깅 및 보고를 통해 원인을 식별하고 해결 방안을 도출.

앞으로의 조치

  • 정기적인 환경 검토 및 테스트: 개발 환경과 비슷하게 구성된 테스트 환경을 정기적으로 검토하고, 네트워크 구성을 포함한 기타 설정을 확인.
  • 문서화 및 지식 공유: 경험한 문제와 해결 과정을 문서화하고, 팀 내외로 공유하여 비슷한 문제 발생 시 빠르게 대응할 수 있도록 합니다.

API는 여러번 사용해봤고, 완벽하진 않지만 어느정도 알고 있지만, 서버와 port 특히 Docker compose, nginx등을 처음 사용해보는 입장에서 모르는 미지의 영역들이 많아 의심 포인트를 줄여나가기 쉽지 않았다.

비록 하루를 날렸지만 이 사례를 통해 실제 배포 환경에서 발생할 수 있는 예상치 못한 문제를 사전에 발견하고 해결하는 데 필요한 과정이라 생각한다. 이러한 경험은 향후 유사한 상황에서 신속하고 효과적으로 대처하는 데 중요한 자산이 될 것 같다.

This post is licensed under CC BY 4.0 by the author.

GenAI Hack for Public Good in Korea

Ceph 정리