컨테이너·워크플로우 자동화/Airflow로 워크플로우 자동화하기

[트러블슈팅] Airflow FileSensor 실행 실패: fs_default Connection이 없을 때

Data Jun 2026. 1. 21. 14:56

Docker Compose로 Airflow 환경을 구성한 뒤 FileSensor를 실행했는데,
파일이 존재하지도 않았는데 기다리기는커녕 즉시 실패하는 문제가 발생했다.

 

처음에는
“파일 경로가 잘못됐나?”,
“컨테이너 안에서 파일이 안 보이나?”
같은 의심을 했지만, 실제 원인은 파일이 아니라 파일시스템 설정이었다.

 

1. 발생한 에러 핵심

로그의 핵심 메시지는 아래였다.

The conn_id 'fs_default' isn't defined

이 메시지는
**“파일을 못 찾는다”**가 아니라
**“어디서 파일을 찾아야 할지 모르겠다”**는 의미였다.

 

2. 왜 이런 문제가 생겼나

Airflow에서 FileSensor는 단순히 경로만 보고 파일을 확인하지 않는다.

  • filepath → 어디를 볼지
  • fs_conn_id → 어떤 파일시스템을 통해 볼지

즉, Airflow는 먼저

“이 경로는 어떤 파일시스템에 속해 있지?”
를 알아야 한다.

 

로컬 파일시스템조차도 Airflow 입장에서는
명시적으로 정의된 파일시스템 중 하나일 뿐이다.

그런데 기본 파일시스템으로 쓰이는
fs_default Connection이 등록되어 있지 않았기 때문에
Sensor는 파일을 확인하기도 전에 실패했다.

 

3. 해결 방법: 로컬 파일시스템을 Connection으로 명시

Airflow UI에서 다음 Connection을 추가했다.

  • Conn Id: fs_default
  • Conn Type: File (path)
  • Extra
{
  "path": "/"
}

이 설정의 의미는 단순하다.

“로컬 파일시스템을 사용하고,
루트(/)부터 경로를 해석하겠다”

설정 후 다시 DAG를 실행하자
FileSensor는 정상적으로 대기 상태에 들어갔고,
파일 생성 시 성공으로 전환되었다.

 

4. 이 트러블슈팅에서 얻은 핵심 교훈

FileSensor는 파일 존재 여부만 보는 도구다
하지만 그 전에 어떤 파일시스템을 볼지가 먼저 정의되어야 한다
Airflow는 경로를 추측하지 않고, Connection을 기준으로만 동작한다

 

 

5. 정리하면

FileSensor가 실패했다면 “파일이 있냐”보다
“Airflow가 볼 파일시스템을 알고 있냐”를 먼저 확인하자.