Project/회고

2025_04_28 프로젝트 에러 회고

hi_i 2025. 4. 28. 13:01

문제상황

도커환경의 fastapi에서 elasticsearch의 데이터를 가져오지 못하는 문제 발생

원인 분석

  1. 로컬 환경 테스트 진행시 문제없이 elasticsearch의 데이터 접근 가능
  2. 도커 환경 테스트 진행시 elasticsearch의 데이터에 아예 접근 불가능 -> 기존 예외 처리해놨던 elasticsearch 조회 실패 에러 반환

해결

  1. host 주소
    로컬 환경에서는 HOST가 localhost로 실행되지만 도커 환경에서는 docker 네트워크 내에서 실행되기때문에 도커 컨테이너 내부에서 접근 가능한 네트워크 주소를 사용해야함. (도커내부 접근 가능 주소 -> container_name으로 설정한 이름)
#local
#ES_HOST=http://localhost:9200
# docker
ES_HOST=http://elasticsearch:9200
  1. 도커 netwoks 연결 설정
    기본적으로 docker compose를 사용하면 한 네트워크로 묶이지만 networks를 명시적 정의하면 직접 연결 시켜줘야함.
    fastapi에 elasticsearch networks 를 등록해주지 않았음. -> fastapi는 elasticsearch를 인식하지 못함.
    fastapi의 networks에 elasticsearch networks 설정해주고 서로 같은 네트워크로 묶어서 찾을 수 있게 변경.

docker에 대한 세부적인 지식 부족으로 인한 오류..
처음에는 명확한 오류가 보여지지 않고 그냥 엘라스틱서치에 접근할 수 없다는 에러만 존재해서 해결하는데 어려움이 있었음.
기본적인 지식이 중요하다는걸 다시 느낌, 새로운 기술을 적용할때 기초적인 부분을 탄탄하게 쌓은 뒤 적용해야함을 느낌.