문제 정의

배경

문제 상황

원인 추론

  1. promtail docker 컨테이너 내부에 접속하여 로그 수집 대상 디렉토리를 확인하였을 때, 로그 파일이 존재하지 않음을 확인

  2. 로그 파일이 존재하지 않는 원인을 찾기 위해 EB 배포 과정의 로그를 확인할 수 있는 eb-engine.log 확인 후 해당 로그 식별

    Screenshot 2024-09-27 at 00.46.04.png

  3. 배포 시 EB의 롤링 정책에 의해 새로운 인스턴가 매번 생성되는 상황에서 promtail 컨테이너가 항상 동작해야 하기 때문에 .ebextension 경로의 스크립트를 통해 promtail 도커 컨테이너를 실행하는 과정에서 서버 동작 이전에 미리 /var/app/current/logs를 바인드 마운트 하여 실행하는 방식으로 구성해둔 상황

  4. 도커 컨테이너에 바인드 마운트 된 이후 마운트 대상이었던 호스트 디렉토리가 eb에 의해 삭제 후 재생성 될 경우 도커 컨테이너가 호스트 디렉토리를 인식 못하는 상황 의심

  5. 도커 바인드 마운트 로직 확인

  6. 컨테이너가 작동 한 이후 시점에 기존에 바인드 마운트 되었던 호스트 디렉토리가 재생성 될 경우 해당 디렉토리의 inode가 변경되어 바인드 마운트 시 새로운 호스트 디렉토리를 인식하지 못해 제대로 동작하지 않음으로 가정하고 문제 해결 시도

문제 해결

해결 과제