Python 대시보드 사이트 운영기

매주 받는 모니터링 Excel을 매번 손으로 그래프 그리던 일이 있었어요. Drag & Drop으로 파일을 올리면 알아서 그래프와 대시보드를 그려주는 사이트를 만들어서 띄워뒀어요.

기능

  • Excel 파일 Drag & Drop
  • 출력 디렉터리를 선택하면 그래프 PNG가 자동으로 떨어짐
  • 티켓 통계 시각화 / 월간 추이 차트 등 미리 정의된 템플릿
  • 운영 중 외부 도메인 + 내부 IP 양쪽에서 접근 가능

인프라 구성

  • 컴퓨팅 — 클라우드 서버 1대 (광주 리전)
  • 로드 밸런서 — HTTP:80 리스너
  • 웹 서버 — Nginx (80 포트), 후단 Python API는 8081 포트
  • SSH 터널 — 로컬에서 디버깅할 때 쓰는 포트 포워딩

진행 기록

Week 3 — 504 오류 수정 + 코드 작성

운영 중 갑자기 504 Gateway Timeout이 떠서 확인해보니, 후단 서버의 보안그룹이 로드밸런서의 내부망 대역을 막고 있었어요.

이건 신입 TAM이 가장 자주 보는 패턴 중 하나예요 — 보안그룹 한 줄 추가하면 끝나는 일인데, 모르면 몇 시간씩 헤매는 그런 종류.

Nginx 기본 설정 패턴

이 사이트에서 쓴 Nginx 설정 핵심만 옮겨두면:

server {
    listen 80;
    server_name your-domain.com;
 
    location / {
        proxy_pass http://127.0.0.1:8081;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
        # 큰 파일 업로드 대응
        client_max_body_size 100m;
        proxy_read_timeout 300s;
    }
}

client_max_body_sizeproxy_read_timeout을 명시하지 않으면, Excel 파일이 커질 때마다 묵묵히 잘립니다. 한 번 데이고 나서 추가한 옵션들이에요.

다음 단계

  • 운영 모니터링·알람 자동화 추가
  • 메신저 봇과 통합 — 사이트가 죽으면 즉시 알림

마무리

내부용 도구라도 한 번 띄워두면 *“내가 자주 받는 요청을 자가 해결”*시킬 수 있어서 점점 시간이 늘어나요. 처음에는 본인만 쓰던 도구가, 차차 동료들도 쓰기 시작하면서 “왜 이걸 진작 안 만들었지?” 라는 후회가 든 케이스였어요.