dev.Log

운영 서버에서 conda 쓰면 실제로 터지는 사례들 본문

인공지능

운영 서버에서 conda 쓰면 실제로 터지는 사례들

초코푸딩 2026. 1. 2. 14:14

“연구용 도구를 운영에 쓰면 왜 문제가 될까?”

conda는 ML 연구 환경에서는 거의 필수 도구다.
하지만 운영 서버에서 conda를 쓰는 순간, 문제는 확률이 아니라 시간 문제가 된다.

이 글에서는
운영 환경에서 실제로 자주 발생하는 conda 사고 사례를 정리한다.


1. 서버 재시작 후 서비스가 안 뜬다 (conda activate 문제)

상황

  • systemd 서비스로 Python API 서버 운영
  • 실행 커맨드:
  •  
    ExecStart=/opt/conda/envs/app/bin/python app.py
  • 평소엔 잘 됨

장애 발생

  • 서버 재부팅 후 서비스 실패
  • 로그:
  •  
    ImportError: libstdc++.so.6: version `GLIBCXX_3.4.29' not found

원인

  • conda 환경은 쉘 초기화(.bashrc) 를 전제로 동작
  • systemd는 로그인 쉘이 아님
  • conda activate가 내부적으로 설정하는 환경변수들이 없음

결과

  • 서버는 살아있는데 서비스만 안 뜸
  • “재부팅하면 안 되는 서버” 탄생

2. LD_LIBRARY_PATH 오염으로 다른 서비스 연쇄 장애

상황

  • conda env 안에서 numpy / torch 사용
  • conda가 자체 libc, libstdc++, libgomp 제공

어느 날 발생한 일

  • Python 서비스는 정상
  • 그런데 같은 서버의:
    • nginx
    • ffmpeg
    • 다른 C++ 서비스
      이상 동작 또는 크래시

원인

 
echo $LD_LIBRARY_PATH
 
/opt/conda/envs/app/lib:...
  • conda 라이브러리가 시스템 라이브러리를 우선적으로 가로챔
  • 다른 바이너리들이 의도치 않게 conda libc를 사용

결과

  • “Python 서버 하나 바꿨을 뿐인데”
  • 서버 전체가 불안정해짐

3. Jenkins / cron에서만 실패하는 미스터리 버그

상황

  • 로컬 터미널에서는 정상
  • Jenkins job / cron에서만 실패
 
python script.py

에러

 
ModuleNotFoundError: No module named 'numpy'

원인

  • Jenkins / cron은 비대화형 쉘
  • conda activate 안 됨
  • PATH, PYTHONPATH 미설정

흔한 땜질

 
source /opt/conda/etc/profile.d/conda.sh conda activate app

→ 스크립트마다 추가
→ 누군가는 빼먹음
→ 또 장애


4. OS 업데이트 후 갑자기 전부 깨짐

상황

  • OS 보안 업데이트 수행
 
yum update

이후 발생

  • Python 실행 시:
 
Illegal instruction (core dumped)

또는

 
GLIBC version mismatch

원인

  • OS glibc 업데이트
  • conda env 안의 glibc / libstdc++와 ABI 충돌
  • conda는 OS 업데이트를 전혀 인지하지 못함

결과

  • conda env 재생성 필요
  • 운영 중인 서비스 전부 중단

5. 디스크 폭발 + 백업 실패

상황

  • conda env 하나당 수백 MB ~ 수 GB
  • 개발자마다 env 따로 생성

몇 달 뒤

 
df -h
 
/opt 100% 사용

원인

  • conda 패키지 캐시
  • env 복사본 다수
  • 자동 정리 없음

결과

  • 로그 못 씀
  • DB 죽음
  • 장애 원인이 “디스크 Full”

6. “이 서버에서만 재현 안 돼요” 문제

상황

  • 서버 A: 정상
  • 서버 B: 동일 코드, 동일 설정인데 오류

원인

  • conda env가 완전히 동일하지 않음
  • 미묘한 패키지 빌드 옵션 차이
  • CPU instruction set 차이

결과

  • 운영 이슈 재현 불가
  • 장애 원인 분석 불가
  • 운영자 멘탈 붕괴

7. 왜 이런 일이 conda에서만 자주 터질까?

핵심은 이거다.

conda는 “유저 공간 OS”를 흉내 낸다

  • libc
  • libstdc++
  • OpenMP
  • MKL
  • CUDA stub

이걸 운영 서버 위에 또 하나 얹는 구조

연구 환경에선 장점
운영 환경에선 폭탄


8. 그래서 운영 서버의 정석은?

정답 요약

  • 운영 서버: Docker + venv
  • ML 연구/실험: conda
  • GPU 학습: PyTorch 공식 Docker or conda

추천 구조

 
[OS] └─ Docker └─ Python + venv └─ app

운영 서버에서 conda를 쓰지 말라는 말은
이론이 아니라 경험의 총합이다.


결론

conda는 나쁜 도구가 아니다.
잘못된 자리에 쓰였을 뿐이다.

  • 연구실 → conda
  • 운영 서버 → Docker / venv

이 경계만 지켜도
서버 장애의 절반은 사라진다.

Comments