[Airflow] Oracle private 환경 Airflow 셋팅 경험

2025. 11. 8. 18:07·엔지니어링

안녕하세요 데이터 분석가 먼지입니다.

 

오늘은 정말 힘들었던 오라클 환경에서의 airflow 구축 경험을 적어보려 합니다. 이전 프로젝트에서의 airflow구축의 경우 사내 Postgre 서버에서 진행했기 때문에 다른 큰 이슈 없이 dag 개발에 집중했었습니다. 하지만 이번 프로젝트의 경우 고객사 private 환경으로 구축된 DB & 서버에서 구축을 하다보니, 포트, 방화벽 문제 등 엔지니어링 측면으로 많은 어려움을 겪었습니다. airflow를 구축하며 어떤 어려움을 겪었는지, 어떤 식으로 해결했는 지 정리해보려 합니다. 

dag에러 로그: cannot connect to database

 

1. 문제 상황

Airflow 설치 자체는 크게 어려운 점이 없었습니다. 파이썬 버전에 맞는 모듈들을 다운 받는 명령어가 있었고 그대로 설치를 진행하니 모듈끼리 충돌이나 그런 점은 없었습니다. 문제는 통신이었습니다. 

 

(1) DB Connection error: Airflow서버에서 DB서버에 연결이 안됨

(2) Airflow Webserver 열리지 않음

 

엔지니어링쪽으로는 익숙치 않아 위 현재 상황이 어떤지를 정확히 전달하기가 어려웠습니다. 회사내 개발자분에게 많이 물어보며 하니씩 정리해 갔고 그제서야 현재 상황에 대해 설명할 수 있게 되었습니다. 

 

서버 환경은 아래와 같았습니다.

  • DB 서버(private)
  • ETL 서버(private)
  • 베스천 서버

2. 서버 통신 상황을 설명하는 3가지

첫번째, Airflow가 DB에 접근하지 못하는 경우는 DB서버와 ETL 서버의 통신 문제입니다. 따라서 DB서버와 ETL서버의 통신이 잘 되는지를 확인했어야 했습니다. 두번째, Airflow Webserver가 띄워지지 않는 문제의 경우 8080 포트가 열려있는지에 대한 문제 였습니다. 뭐가 되었든 통신 상황을 설명하기 위해선 아래 3가지를 모두 고려했어야 했습니다.  

(1) Ping(핑)

Ping이란 "Packet Internet Groper" 의 줄임말로 쉽게 말해 신호를 보내 응답이 돌아오는데 까지 걸린 시간을 뜻한다고 합니다.

통신이 되는지 확인하는 가장 기본적인 테스트라고 볼 수 있습니다. 그래서 응답이 뜬다면 기본적으로 서버가 살아있고, 인터넷 연결이 된다는 걸 확인할 수 있습니다.

# ping test
# Airflow서버에서 실행
ping [DB서버 IP]

 

성공시 아래와 같이 뜹니다.

 

 

(2) Port(포트)

포트란 네트워크에서 특정 애플리케이션이나 서비스와의 통신을 구분하기 위한 ‘논리적 통로’입니다. 쉽게 말해 특정 서비스에 접근할 수 있는지 구분하는 통로라고 보면 됩니다. 저의 경우 Ping 연결은 되는데 DB 포트(1521, 8080, 22) 연결이 안되는 상황이었습니다. 이 경우 서버까지 통신은 되지만, 해당 서비스가 차단되어 있는 상황이었습니다.

# port 오픈 확인
telnet '[서버 IP]' port

 

따라서 connection 확인을 위해 아래 

(1) DB 연결의 경우: ETL 서버에서 DB로 port 연결이 되어있는지 확인

(2) Webserver의경우 : ETL 서버에서 8080 포트에 연결 되어있는지 확인 

# 1.DB연결 확인
# Airflow(ETL) 서버에서 실행
telnet 'DB서버IP' DB서버포트

# 2.8080 포트확인
# SSH로 베스천서버 접속 뒤 실행
telnet 'Airflow서버IP' 8080

 

telnet 실패했을 시 에러.

 

포트가 닫혀있는걸 확인한다면 첫번째로 내 서버에 포트가 열려있는지 확인해야 합니다. 

# 방화벽 상태 확인
# inactive일시 설정으로 열어줘야 함
sudo ufw status

 

만약 결과가 'inactive'라면 아래 명령어들을 통해 포트들을 열어줘야 합니다.

# 방화벽 오픈 명령어
sudo ufw enable
sudo ufw allow 22/tcp       # SSH 유지
sudo ufw allow 8080/tcp     # 웹서버 포트 오픈
sudo ufw enable             # 방화벽 활성화
sudo ufw reload
sudo ufw status verbose # 방화벽 확인

 

이걸 해결하고 나면 아래 이미지처럼 오픈된 결과를 볼 수 있습니다.

 

 

(3) traceroute 명령어 

TCP 프로브를 이용해서 서버의 8080 포트까지 가는 네트워크 경로를 추적하는 명령어입니다. 어디에서 통신이 막혔는지 확인할 수 있습니다.

# traceroute 명령어
traceroute -T -p 포트 [서버IP]

# 당시 결과(대략적)
1. 140.91.245.xx 0.0086ms 140.91.245.xx 0.0078ms 
2. 10.200.xxx.xx 0.266ms !X * *

 

위 결과를 gpt에게 물어본 결과 차단되었다고 나왔습니다.

 

 

 

3. 서버팀과의 커뮤니케이션

저는 방화벽이 막힌거 같다, 서버팀에선 분명 다 열었다 관련 이메일을 2~3번 주고 받은 것 같습니다. 저도 포트나 방화벽에 대해 잘 몰랐기 때문에 어떤 조치를 취해달라 명확하게 말할 수 없던 점이 컸습니다.

 

하지만 위 3가지 결과를 하나 하나씩 정리해 전달하니, 그제서야 서버팀에서 os 내부 상 차단이 풀려있지 않았다고 답변을 받았고 성공적으로 airflow webserver를 띄울 수 있었습니다.

 

제한된 시간내에 해결했어야 하는 문제였는데 잘 해결되어서 다행이었던 것 같습니다.

 

감사합니다.

'엔지니어링' 카테고리의 다른 글

[기타경험] 스타트업 IR 발표회  (0) 2023.05.05
짧은 시계열 예측 경험 정리  (3) 2023.04.15
[OS] 리눅스 개념 정리하기  (0) 2023.01.09
'엔지니어링' 카테고리의 다른 글
  • [기타경험] 스타트업 IR 발표회
  • 짧은 시계열 예측 경험 정리
  • [OS] 리눅스 개념 정리하기
데이터먼지
데이터먼지
데이터분석 및 AI Agent 개발하고 있습니다 :)
  • 데이터먼지
    먼지's Data Analysis
    데이터먼지
  • 전체
    오늘
    어제
    • 분류 전체보기 (49)
      • 데이터분석_ (13)
        • 데이터분석 (2)
        • 데이터 전처리 (6)
        • 데이터시각화 (1)
        • 시계열분석 (3)
        • 환경세팅 (1)
      • AI agent (3)
      • 데이터분석 (13)
      • SQL (7)
      • 엔지니어링 (4)
      • 알고리즘 (3)
      • 수학 (4)
        • 선형대수 (2)
        • 확률&통계 (2)
      • 맛집 (2)
        • 이수&사당 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    stl
    pandas
    짧은 시계열 # 금융시계열
    loess
    pandas # 월말 날짜 # 마지막 주 # 날짜계산 # 시계열 # 마지막 주 금요일
    크롤링자동화
    데이터분석
    시계열
    이수역 양식집
    시간형식
    시간형식변환
    시계열시각화
    음수값 #전처리 #선형보간 #pandas #데이터 #데이터분석
    확률
    adf_test
    응용이 보이는 선형대수
    시계열데이터셋
    시계열분해
    시계열모듈
    오제이튜브
    np.split
    시계열 #reindex #인덱스 확장 #datetime index #index extention # 데이터전처리
    timeseries decomposition
    플로틀리
    seaborn # kdeplot # 데이터분석
    SQL
    Python
    리눅스개념
    빈 데이터프레임 #pandas #데이터전처리
    파이프라인전처리
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데이터먼지
[Airflow] Oracle private 환경 Airflow 셋팅 경험
상단으로

티스토리툴바