본문 바로가기

블로그

내 PC 전원을 뽑아도 파이썬 봇은 24시간 운영

[4편] 내 PC 전원을 뽑아도 파이썬 봇은 24시간 돌아간다 (클라우드 독립 배포)

(대표 이미지: 플러그가 뽑힌 낡은 PC 뒤로, 클라우드 상에서 스스로 빛나며 돌아가는 톱니바퀴 그래픽)

클라우드 제공자(AWS, Oracle, GCP 등)를 아직 결정하지 못해 방황하고 계시더라도 전혀 문제 될 것이 없습니다. 완벽한 현실 탈출(VULL)을 위한 자동화 배포의 핵심은 '어떤 클라우드를 쓰든 똑같이 돌아가는 격리된 환경'을 구축하는 것이기 때문입니다.

Why (왜 클라우드 선택보다 도커화가 먼저인가)
공들여 만든 devbj_seed_hunter.pyagent.py 같은 RSS 수집 및 LLM 파이프라인 스크립트를 특정 클라우드의 순정 리눅스에 그대로 올리는 것은 위험합니다. 나중에 AWS 요금 폭탄을 피해 오라클이나 다른 저렴한 호스팅으로 야반도주를 감행할 때, 파이썬 버전 충돌과 라이브러리 의존성 에러(Dependency Hell)를 처음부터 다시 디버깅해야 하기 때문입니다. Docker를 컨테이너로 감싸면, 인프라가 무엇이든 코드는 무조건 동일하게 동작합니다.

How (어디서든 돌아가는 백그라운드 배포 로직)

  • 환경의 패키징 (Dockerfile): 파이썬 스크립트와 requirements.txt를 하나의 박스(컨테이너)로 포장합니다. 스크립트가 필요로 하는 운영체제와 파이썬 버전을 명시하여 묶어버리면, 클라우드의 종류는 껍데기에 불과해집니다.
  • 클라우드 이식 및 빌드: AWS든 오라클이든 상관없이 리눅스 터미널에 접속해 깃허브에서 코드를 당겨옵니다(git pull). 그리고 docker build -t my-auto-bot . 명령어 한 줄이면 서버에 내 스크립트가 실행될 완벽한 환경이 1분 만에 세팅됩니다.
  • 백그라운드 영구 실행 (Detach 모드): SSH 터미널 창을 닫아도 봇이 죽지 않도록 하는 것이 핵심입니다. 단순히 python agent.py를 치는 대신, nohup python agent.py &를 사용하거나 Docker의 데몬 모드인 docker run -d my-auto-bot을 실행합니다.

Result (완벽한 플러그아웃 상태의 완성)
이제 터미널을 종료하고 로컬 PC의 전원 플러그를 뽑아도 좋습니다. 내가 선택한 클라우드의 허공에서 파이썬 에이전트가 24시간 내내 묵묵히 GeekNews와 Hacker News의 피드를 긁어오고, 글을 생성해 낼 것입니다. 서버를 옮기고 싶다면 그저 새 서버에서 도커 이미지를 다시 띄우기만 하면 그만입니다.

🔥 Vullean의 삽질 방지 체크리스트

  • 타임존(Timezone) 동기화 오류: 클라우드 서버의 기본 시간은 보통 UTC(세계 표준시)로 맞춰져 있습니다. 봇이 한국 시간(KST) 아침 8시에 글을 발행하도록 스케줄링을 걸어두었다면, 컨테이너 환경 변수에 TZ=Asia/Seoul을 반드시 추가해야 엉뚱한 새벽에 글이 올라가는 참사를 막을 수 있습니다.
  • 로그 파일 분리 (dev/null 방지): 백그라운드에서 돌아가는 봇은 에러가 나도 터미널에 보이지 않습니다. 무작정 에러를 삼키게 두지 말고, python agent.py > bot_log.txt 2>&1 처럼 실행하여 최소한의 디버깅 기록은 남겨두는 것이 좋습니다.