스마트재호

반응형

 

 

⏱️ 예상 읽기 시간: 약 9분


📌 n8n 완전정복 시리즈 (고급편)
  중급편 5개 | 완료 ✅
▶️ 고급 1편 | n8n Docker 설치 방법 | VPS 셀프호스팅 완전 정복 가이드
  고급 2편 | n8n + OpenAI 자동화 만들기 | AI 에이전트 워크플로우 실전 가이드
  고급 3편 | n8n 데이터베이스 연동 방법 | MySQL·PostgreSQL 자동화 실전 가이드
  고급 4편 | n8n 자동화 실전 사례 모음 | 업무 효율 10배 만드는 워크플로우 정리


💡 이런 분께 추천해요

  • n8n 클라우드 요금이 부담스러워서 직접 서버에 설치하고 싶은 분
  • 내 데이터를 외부 서버에 두지 않고 직접 관리하고 싶은 분
  • Docker를 써본 적 있고 VPS 셀프호스팅에 도전하고 싶은 분

이 글에서 배우는 것

  • VPS 서버 선택 가이드 (비용·성능 비교)
  • Docker로 n8n 설치하는 방법 단계별 정리
  • docker-compose로 안정적인 운영 환경 구성
  • 도메인 연결 + HTTPS(SSL) 설정 방법
  • 백업·업데이트·모니터링 운영 팁

셀프호스팅, 왜 하는 건가요?

N8N 설치 방법은 여러 가지가 있지만 Docker로 배포하면 워커나 DB 통합도 한 번에 처리할 수 있어 운영이 편해요. 특히 VPS 환경에서는 이미지·컨테이너 단위로 버전을 고정하고, 재현 가능한 환경을 유지하기 쉽다는 장점이 있어요.

셀프호스팅 vs 클라우드 비용 비교

방식 월 비용 실행 횟수 데이터 보안
n8n Cloud €24~ (약 38,000원~) 플랜별 제한 n8n 서버 저장
VPS 셀프호스팅 $515 (약 7,00021,000원) 무제한 내 서버 저장
구글 클라우드 프리티어 무료 무제한 내 서버 저장

STEP 1. VPS 서버 선택하기

추천 VPS 서비스 비교

서비스 월 비용 사양 추천 이유
DigitalOcean $6~ 1GB RAM 안정적, 한국어 지원
Hetzner €3.79~ 2GB RAM 가성비 최고 (유럽)
Vultr $6~ 1GB RAM 서울 리전 있음
구글 클라우드 무료 0.6GB RAM 완전 무료 (프리티어)

n8n 최소 권장 사양

CPU: 1 Core 이상
RAM: 1GB 이상 (2GB 권장)
Storage: 20GB 이상
OS: Ubuntu 22.04 / 24.04 (권장)

STEP 2. VPS에 Docker 설치하기

VPS 생성 후 SSH로 접속해서 아래 명령어를 순서대로 실행하세요.

Ubuntu 기준 Docker 설치

# 1. 기존 Docker 제거 (있다면)
sudo apt-get remove docker docker-engine docker.io containerd runc

# 2. 패키지 목록 업데이트
sudo apt-get update

# 3. 필수 패키지 설치
sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# 4. Docker 공식 GPG 키 추가
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
    sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 5. Docker 저장소 추가
echo "deb [arch=$(dpkg --print-architecture) \
    signed-by=/etc/apt/keyrings/docker.gpg] \
    https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 6. Docker 설치
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io \
    docker-compose-plugin

# 7. Docker 설치 확인
docker --version
docker compose version

📸 [스크린샷: Docker 설치 성공 후 버전 확인 화면]


STEP 3. docker-compose로 n8n 설치하기

단순 docker run 대신 docker-compose로 설치하면 설정 관리와 재시작이 훨씬 편해요.

작업 디렉토리 생성

mkdir ~/n8n-setup
cd ~/n8n-setup

docker-compose.yml 파일 생성

version: '3'

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=${N8N_HOST}
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://${N8N_HOST}
      - GENERIC_TIMEZONE=Asia/Seoul
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
    volumes:
      - n8n_data:/home/node/.n8n
    networks:
      - n8n_network

volumes:
  n8n_data:

networks:
  n8n_network:
    driver: bridge

.env 파일 생성 (환경변수 설정)

# .env 파일 생성
cat > .env << 'EOF'
N8N_HOST=your-domain.com
N8N_ENCRYPTION_KEY=랜덤으로-32자-이상-문자열-생성해서-입력
EOF

⚠️ N8N_ENCRYPTION_KEY는 반드시 고유하고 복잡한 문자열로 설정하세요. 한번 설정하면 변경하면 안 돼요!

n8n 실행

# 백그라운드로 실행
docker compose up -d

# 실행 확인
docker compose ps

# 로그 확인
docker compose logs -f

브라우저에서 http://서버IP:5678 접속하면 n8n이 뜨면 성공! 🎉

📸 [스크린샷: n8n 최초 실행 후 관리자 계정 설정 화면]


STEP 4. 도메인 연결 + HTTPS 설정

IP 주소 대신 도메인으로 접속하고 HTTPS를 활성화해야 안전하게 사용할 수 있어요. (Webhook도 HTTPS가 필수!)

Nginx + Certbot으로 HTTPS 설정

# Nginx 설치
sudo apt-get install -y nginx

# Certbot 설치 (무료 SSL 인증서)
sudo apt-get install -y certbot python3-certbot-nginx

# Nginx 설정 파일 생성
sudo nano /etc/nginx/sites-available/n8n

Nginx 설정 내용

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://localhost:5678;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_cache_bypass $http_upgrade;
        chunked_transfer_encoding on;
        proxy_buffering off;
    }
}
# 설정 활성화
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

# SSL 인증서 발급 (도메인이 서버 IP를 가리켜야 함)
sudo certbot --nginx -d your-domain.com

# SSL 자동 갱신 확인
sudo certbot renew --dry-run

이제 https://your-domain.com으로 n8n에 접속할 수 있어요! 🔒


STEP 5. 운영 관리 팁

n8n 업데이트

cd ~/n8n-setup

# 최신 이미지 다운로드
docker compose pull

# 재시작 (다운타임 최소화)
docker compose down && docker compose up -d

데이터 백업

# n8n 데이터 볼륨 백업
docker run --rm \
    -v n8n_data:/data \
    -v $(pwd)/backup:/backup \
    alpine tar czf /backup/n8n-backup-$(date +%Y%m%d).tar.gz /data

# 자동 백업 스크립트 (crontab에 등록)
# 매일 새벽 2시에 자동 백업
0 2 * * * cd ~/n8n-setup && docker run --rm -v n8n_data:/data -v $(pwd)/backup:/backup alpine tar czf /backup/n8n-backup-$(date +\%Y\%m\%d).tar.gz /data

상태 모니터링

# 컨테이너 상태 확인
docker compose ps

# 실시간 로그 확인
docker compose logs -f --tail=50

# 리소스 사용량 확인
docker stats n8n

📊 VPS 환경별 설치 난이도 비교

환경 난이도 비용 추천
구글 클라우드 프리티어 ⭐⭐⭐ 무료 비용 0원 원하는 분
DigitalOcean ⭐⭐ $6/월 안정성 중시
Hetzner ⭐⭐ €3.79/월 가성비 최고
로컬 PC (미니PC) ⭐⭐⭐⭐ 전기세만 이미 PC 있는 분

⚠️ 셀프호스팅 자주 발생하는 문제

문제 1. 5678 포트로 접속이 안 돼요
→ VPS 방화벽(Security Group)에서 5678 포트 인바운드 허용을 추가하세요. AWS/GCP/DigitalOcean 모두 방화벽 규칙 추가가 필요해요.

문제 2. Webhook URL이 localhost로 설정돼요
→ docker-compose.yml의 WEBHOOK_URLN8N_HOST를 실제 도메인으로 설정했는지 확인하세요.

문제 3. 재부팅 후 n8n이 꺼져요
restart: unless-stopped 설정이 되어 있으면 자동 재시작돼요. 이 설정을 꼭 추가하세요.

문제 4. SSL 인증서 발급이 안 돼요
→ 도메인 DNS가 서버 IP를 가리키고 있는지 확인하세요. nslookup your-domain.com으로 확인 가능해요.


📝 핵심 요약

항목 내용
권장 설치 방법 docker-compose 방식
권장 VPS Hetzner(가성비) 또는 DigitalOcean(안정성)
최소 사양 1 Core, 1GB RAM, 20GB Storage
HTTPS 설정 Nginx + Certbot (무료 Let's Encrypt)
백업 n8n_data 볼륨 정기 백업 필수

🙋 FAQ

Q. 도커를 전혀 모르는데 셀프호스팅이 가능할까요?
명령어 복사·붙여넣기 수준이면 가능해요. 다만 오류가 나면 해결하는 데 시간이 필요해요. 클라우드로 먼저 시작하고 익숙해진 후에 도전하는 걸 권장해요.

Q. n8n 데이터가 날아가면 어떻게 되나요?
워크플로우, Credentials, 실행 기록이 모두 사라져요. 정기 백업이 필수예요! n8n 워크플로우 자동화로 백업까지 자동화하는 게 좋아요.

Q. 셀프호스팅 n8n은 인스턴스를 여러 개 쓸 수 있나요?
동일한 N8N_ENCRYPTION_KEY와 데이터베이스를 공유하면 여러 인스턴스를 큐 모드로 운영할 수 있어요. 대규모 자동화가 필요할 때 고려해보세요.


💬 셀프호스팅 도전해보셨나요? 어떤 VPS를 사용하셨는지 댓글로 공유해 주세요!

🔔 다음 편에서는 n8n + OpenAI 연동으로 AI 에이전트 워크플로우를 만드는 법을 알려드릴게요!


📚 n8n 완전정복 시리즈 전체 보기

🔰 입문편
  입문 1편 | n8n이란 무엇인가? 자동화 시작 전 꼭 알아야 할 핵심 개념 5가지
  입문 2편 | n8n 설치 방법 총정리 | 클라우드 vs 셀프호스팅 현실 비교
  입문 3편 | n8n 워크플로우 만드는 법 | 10분 만에 자동화 시작하기
  입문 4편 | n8n 핵심 노드 5가지 | 이것만 알면 자동화 절반 끝납니다
  입문 5편 | n8n 오류 해결 방법 | 실행 안 될 때 가장 많이 막히는 문제 5가지

⚡ 초급편
  초급 1편 | n8n 구글 시트 자동화 방법 | 업무 시간 줄이는 실전 설정 따라하기
  초급 2편 | n8n Gmail 자동화 설정법 | 조건별 이메일 자동 발송 10분 완성
  초급 3편 | n8n Slack 자동 알림 만들기 | 이벤트 발생 시 바로 받는 설정 방법
  초급 4편 | n8n Webhook 사용법 완전정복 | 외부 서비스 자동 연결하는 방법
  초급 5편 | n8n Cron 예약 자동화 설정 | 매일 자동 실행되는 워크플로우 만들기
  초급 6편 | n8n 조건 분기 설정 방법 | IF·Switch로 자동화 흐름 제어하는 법

🔧 중급편

  중급 1편 | n8n API 연동 방법 | HTTP Request로 외부 서비스 연결하는 법
  중급 2편 | n8n 데이터 변환 방법 | Function 노드로 자동 처리하는 법
  중급 3편 | n8n 에러 핸들링 설정 | 자동화 실패해도 멈추지 않는 구조 만들기
  중급 4편 | n8n 서브워크플로우 활용법 | 복잡한 자동화를 깔끔하게 나누는 방법
    중급 5편 | n8n API 키·환경변수 설정법 | 보안 문제 없이 안전하게 사용하는 방법

🚀 고급편
▶️ 고급 1편 | n8n Docker 설치 방법 | VPS 셀프호스팅 완전 정복 가이드
  고급 2편 | n8n + OpenAI 자동화 만들기 | AI 에이전트 워크플로우 실전 가이드
  고급 3편 | n8n 데이터베이스 연동 방법 | MySQL·PostgreSQL 자동화 실전 가이드
  고급 4편 | n8n 자동화 실전 사례 모음 | 업무 효율 10배 만드는 워크플로우 정리

반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band