dev.Log
운영 서버에서 conda 쓰면 실제로 터지는 사례들 본문
“연구용 도구를 운영에 쓰면 왜 문제가 될까?”
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
이 경계만 지켜도
서버 장애의 절반은 사라진다.
'인공지능' 카테고리의 다른 글
| CUDA + PyTorch에서 pip vs conda 차이 (0) | 2026.01.02 |
|---|---|
| ML Docker 이미지 크기 줄이는 법 (0) | 2026.01.02 |
| conda vs venv vs Docker (0) | 2026.01.02 |
| Whisper vs NeMo (EPD) (0) | 2025.12.30 |
| 업스트림 / 다운스트림 뜻이 뭔데 개발자들이 굳이 이렇게 말할까? (0) | 2025.12.30 |
Comments