「내 작은 앱(파이썬 봇·Node.js 서비스 등)을 24/7 운영」할 때, Docker·K8s까지 가지 않아도 systemd로 충분합니다.
「가벼운 운영」의 표준.
단순함의 가치.
「Docker 컨테이너 안의 또 다른 systemd」 같은 복잡함 없이 호스트 systemd가 직접 관리.
자원 사용 적고 디버깅 쉬움.
단일 호스트 + 작은 서비스에 최적.
기본 패턴.
/etc/systemd/system/myapp.service에 [Unit][Service][Install] 섹션 정의.
ExecStart로 실행 명령, Restart=always로 자동 재시작.
sudo systemctl enable --now myapp으로 등록 + 시작.
장점.
1) 자동 시작(부팅 후) + 자동 재시작(크래시 시).
2) journalctl로 통합 로그.
3) systemd의 모든 기능(의존성·타이머·소켓).
4) 의존성 그래프 — 「DB 시작 후 앱 시작」 같은.
5) 자원 제한(MemoryMax·CPUWeight).
모두 무료.
한계.
단일 호스트만 — 여러 서버 분산은 K8s 영역.
또 시스템 패키지로 설치 안 되는 SW의 의존성 관리 — 가상환경(파이썬 venv)이나 nvm(Node) 같은 도구와 결합 필요.
「작게 시작 → 필요 시 Docker → 더 필요 시 K8s」가 자연스러운 진화.
한 줄 요약
systemd로 앱 운영 — 단일 호스트·작은 서비스에 단순·강력.
.service 파일 + Restart=always + enable.
journalctl 로그·자원 제한·의존성 모두 무료.
Docker·K8s까지 안 가도 됨.
더 알아볼 것
- systemd MemoryMax·CPUWeight
- --user 사용자 단위 서비스
- DynamicUser로 임시 사용자