우분투 서버에서 파이썬 스크립트 24시간 돌리기 완벽 가이드

🐍 우분투 서버에서 파이썬 스크립트 24시간 돌리기 완벽 가이드

🎯 이 가이드의 목표: 오라클 클라우드에서 평생 무료 서버를 만들고, 파이썬 프로그램을 24시간 무중단으로 실행하는 전체 과정을 단계별로 완벽하게 안내합니다.

📋 전체 프로세스 개요

1

오라클 클라우드 서버 생성

평생 무료 플랜을 이용해 우분투(Ubuntu) 서버 인스턴스를 생성하고 비밀키를 발급받습니다.

2

프로젝트 준비 및 파일 업로드

서버에 프로젝트 폴더를 만들고, FileZilla를 이용해 로컬의 파이썬 파일들을 업로드합니다.

3

PuTTY로 SSH 접속

터미널 접속으로 서버에 직접 명령어를 입력할 수 있도록 준비합니다.

4

파이썬 환경 설정

가상환경 생성, 라이브러리 설치 등 서버에서 코드를 실행할 환경을 구축합니다.

5

24시간 무중단 실행

nohup, screen, systemd, cron 등 목적에 맞는 방법을 활용해 프로그램을 실행합니다.

🔧 1단계: 오라클 클라우드 서버 생성

평생 무료 인스턴스 만들기

1. 인스턴스 생성 시작
오라클 클라우드 대시보드에서 ‘인스턴스 생성’을 클릭하고, 인스턴스 이름을 자유롭게 지정합니다.
2. 이미지 및 구성 선택 (중요)
이미지: ‘Canonical Ubuntu’ 최신 LTS 버전 선택
구성: ‘Ampere’ 기반의 ‘Always Free’ eligible(평생 무료 적격) VM.Standard.A1.Flex 선택
3. SSH 키 저장 (필수)
‘SSH 키’ 섹션에서 **’키 쌍 생성’**을 선택하고, **’비공개 키 저장’** 버튼을 눌러 `.key` 확장자의 비밀키 파일을 PC에 반드시 저장합니다.
⚠️ 중요: 여기서 다운로드한 비공개 키(`.key` 파일)는 서버에 접속하기 위한 유일한 열쇠입니다. 안전한 곳에 보관하고 절대 잃어버리면 안 됩니다.

생성 후 확인 사항

인스턴스 생성이 완료되면, 인스턴스 정보 페이지에서 **’공용 IP 주소’**를 복사해 둡니다. 이 주소로 서버에 접속하게 됩니다.

📁 2단계: 프로젝트 준비 및 파일 업로드

1. 서버에 작업 폴더 만들기 (PuTTY)

먼저 PuTTY로 서버에 접속해서, 앞으로 우리 프로젝트 파일들을 담아둘 전용 폴더를 만들어 줍니다. 이렇게 파일을 깔끔하게 관리하는 것이 좋은 습관입니다.

# ‘myproject’ 라는 이름의 폴더 생성 # (이미 접속해있는 홈 디렉토리 /home/ubuntu/ 안에 생성됩니다) mkdir myproject

2. 프로젝트 파일 업로드 (FileZilla)

이제 FileZilla로 서버에 접속해서, 방금 만든 `myproject` 폴더 안에 내 컴퓨터의 파이썬 파일들을 업로드합니다.

FileZilla 접속 및 업로드 순서
1. FileZilla로 서버에 접속합니다. (초기 위치: /home/ubuntu)
2. 방금 만든 `myproject` 폴더를 더블클릭해서 들어갑니다.
3. 왼쪽(내 PC)의 파일들을 오른쪽(서버의 myproject 폴더)으로 드래그 앤 드롭하여 업로드합니다.

🖥️ 3단계: PuTTY로 SSH 접속

윈도우 사용자 팁: 오라클에서 받은 `.key` 파일을 PuTTY에서 사용하려면, PuTTYgen 프로그램을 이용해 `.ppk` 파일로 변환해야 합니다.

PuTTY 설정 및 접속

기본 설정
Host Name: 서버 공용 IP 주소
Port: 22
인증 설정
Connection → SSH → Auth → Credentials
Private key file에 변환한 `.ppk` 파일 경로 입력

🐍 4단계: 파이썬 환경 설정

가상환경 생성 및 라이브러리 설치

이제 PuTTY로 서버에 접속한 상태에서, 우리가 업로드한 프로젝트 폴더 안으로 들어가 파이썬 실행 환경을 만들어 줍니다.

# 2단계에서 만든 프로젝트 폴더로 이동 cd myproject # ‘myenv’라는 이름의 가상환경 생성 python3 -m venv myenv # 가상환경 활성화 source myenv/bin/activate # requirements.txt 파일로 필요한 라이브러리 한번에 설치 pip install -r requirements.txt

⚡ 5단계: 24시간 무중단 실행

서버에서 24시간 동안 프로그램을 실행하는 방법은 여러 가지가 있습니다. 각 방법의 장단점을 이해하고 상황에 맞게 선택하는 것이 중요합니다.

방법 1: `nohup` (가장 간단한 방법)

터미널 접속을 끊어도 프로그램이 종료되지 않게 하는 가장 간단하고 기본적인 방법입니다.

# nohup으로 백그라운드 실행 (로그는 my_app.log 파일에 저장) nohup python3 my_script.py > my_app.log 2>&1 &

💡 다른 방법들 (참고용)

screen, tmux
접속을 끊어도 유지되는 가상 터미널입니다. 나중에 다시 접속해 실행 화면을 보거나 직접 조작해야 할 때 사용합니다.
systemd
스크립트를 시스템 서비스로 등록합니다. 프로그램 오류 시 자동 재시작, 서버 재부팅 시 자동 실행 등 24시간 안정적인 운영이 필요할 때 가장 좋습니다.
cron (크론)
리눅스의 스케줄러입니다. ’24시간 내내’ 실행하는 것이 아니라, “매일 새벽 3시에”, “매시간 정각에” 와 같이 정해진 시간에 명령어를 반복 실행할 때 사용합니다.

🔧 문제 해결 가이드

자주 발생하는 문제와 해결법

문제원인해결법
SSH 접속 실패키 파일 권한 문제PuTTYgen으로 .ppk 변환 확인
패키지 설치 실패가상환경 활성화 안됨`source myenv/bin/activate` 실행 확인
프로그램 자동 종료메모리 부족 또는 코드 오류`htop`으로 리소스 확인, 로그 파일 점검
`./script.py` 실행 시 ‘Permission denied’파일에 실행 권한이 없음`chmod +x script.py` 명령어로 권한 부여
“`