구글 클라우드 플랫폼 + Docker 를 사용해 무료로 n8n 서버 구축하기

복잡한 업무를 자동화하고 싶지만 유료 서비스의 비용이 부담되셨다면, 이제 n8n을 GCP에서 무료로 설치해보세요. n8n은 오픈소스로 제공되는 강력한 자동화 도구로, Zapier나 Make와 유사한 기능을 갖추고 있으면서도 완전 무료로 셀프 호스팅

이 글에서는 GCP VM에서 n8n을 Docker로 설치하는 방법과 외부 접속을 위한 5678 포트 방화벽 설정 방법까지 자세히 설명합니다. 단계별 설명을 따라 하면 누구나 쉽게 자동화 서버를 만들 수 있습니다.

GCP 콘솔에서 방화벽 설정하는 방법

1단계. GCP 콘솔에서 VPC 네트워크 > 방화벽 클릭

Google Cloud Platform(GCP)의 콘솔에 접속한 후, 왼쪽 메뉴에서 VPC 네트워크를 선택하고 그 안의 방화벽 항목을 클릭합니다. 이 단계는 외부에서 GCP 서버로 접근할 수 있도록 설정하기 위한 시작점입니다.

2단계. 방화벽 규칙 만들기 클릭

방화벽 페이지에서 상단의 방화벽 규칙 만들기 버튼을 클릭합니다. 새로운 규칙을 생성함으로써, 원하는 포트에 대한 인바운드(외부→서버) 트래픽을 허용할 수 있게 됩니다.

3단계. 방화벽 규칙 내용 입력

이제 방화벽 규칙의 이름, 설명, 트래픽 방향(INGRESS), 프로토콜 및 포트 번호(TCP:5678), 허용 대상(0.0.0.0/0) 등을 설정합니다. 이 규칙을 통해 n8n이 사용하는 5678 포트에 외부에서 접속이 가능해집니다.

Google Cloud SDK Shell 사용해서 방화벽 설정하기

1단계. VM 인스턴스에 네트워크 태그 추가

먼저 GCP에서 n8n을 실행할 VM 인스턴스에 네트워크 태그를 추가해야 합니다. 이 태그는 방화벽 규칙의 적용 대상을 식별하는 데 사용됩니다. 예를 들어, n8n-server라는 태그를 사용하면 나중에 이 태그를 가진 인스턴스에만 포트 허용 규칙을 적용할 수 있습니다.

gcloud compute instances add-tags [YOUR_VM_INSTANCE_NAME] --tags=n8nserver --zone=[YOUR_VM_ZONE]

2단계. 방화벽 규칙 생성

다음으로, Google Cloud SDK (gcloud CLI)를 사용하여 방화벽 규칙을 생성합니다. 이 규칙은 모든 IP 주소(0.0.0.0/0)로부터 n8n-server 태그가 적용된 VM의 TCP 5678 포트로의 접속을 허용합니다. 즉, 브라우저나 외부 서비스에서 n8n에 접속할 수 있도록 만들어주는 핵심 설정입니다.


gcloud compute firewall-rules create allow-n8n-5678 ^
    --description="Allow TCP traffic on port 5678 for n8n" ^
    --direction=INGRESS ^
    --priority=1000 ^
    --network=default ^
    --action=ALLOW ^
    --rules=tcp:5678 ^
    --source-ranges=0.0.0.0/0 ^
    --target-tags=n8n-server

 

Docker로 n8n 설치하기

1단계. GCP 서버에 접속

Google Cloud SDK Shell에서 아래 GCP VM 서버 접속하기 위한 명령어를 입력해서 SSH로 접속합니다. 


gcloud compute ssh --zone "서버위치" "서버이름" --project "프로젝트id"

Google Cloud SDK 설치가 처음이라면, 아래 블로그 링크를 참고해 자세한 설정 방법을 확인할 수 있습니다.

google cloud sdk 설치하기

2단계. n8n 디렉토리 구조 생성

서버에 접속한 후 n8n 서비스를 위한 디렉토리를 생성합니다. 이 디렉토리 안에 docker-compose.yml 파일을 만들어 Docker 기반으로 n8n을 실행할 수 있도록 설정할 예정입니다.


mkdir docker
cd docker
mkdir n8n
cd n8n

3단계. docker-compose.yml 파일 생성

docker-compose.yml은 n8n 컨테이너의 설정을 정의하는 파일입니다. 여기에는 이미지 정보, 포트 연결, 볼륨 마운트, 환경 변수 등이 포함됩니다. 아래 설정 예시는 가장 기본적이고 안전한 구성으로, 실무 환경에서 바로 사용할 수 있습니다.


sudo vi docker-compose.yml

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    container_name: n8n
    restart: always
    ports:
      - "5678:5678"
    volumes:
      - n8n_data:/home/node/.n8n
    environment:
      - N8N_SECURE_COOKIE=false
      - N8N_DATA_FOLDER=/home/node/.n8n
      - NODE_ENV=production
    pull_policy: always

volumes:
  n8n_data:

networks:
  default:
    driver: bridge

4단계. n8n 컨테이너 시작

구성이 완료되었으면 아래 명령어로 n8n 컨테이너를 실행합니다. 이 명령어는 Docker Compose를 기반으로 지정된 설정에 따라 n8n 서비스를 시작하며, 정상적으로 동작하면 포트 5678에서 웹 UI를 사용할 수 있습니다.


sudo docker compose up -d

vm 서버의 ip 를 사용해

http://ip주소:5678 로 웹브라우저에서 이동하면 n8n을 사용할 수 있습니다.

마무리: 비용 걱정 없이 n8n으로 나만의 자동화 시스템 구축

n8n은 설치만 잘 해두면 거의 모든 반복 작업을 자동화할 수 있는 강력한 도구입니다. GCP의 무료 VM 인스턴스와 Docker를 활용하면 완전 무료로 안정적인 n8n 환경을 구축할 수 있습니다. 특히 개발 지식이 많은 분들은 다양한 API와 연동하여 나만의 자동화 플로우를 자유롭게 설계할 수 있어 그 가치가 더욱 큽니다.

처음엔 어렵게 느껴질 수 있지만, 이 글의 순서를 따라 설정해보면 생각보다 간단합니다. 이제 더 이상 유료 자동화 도구에 의존하지 말고, 무료로 나만의 자동화 서버를 만들어보세요. 반복 작업에서 해방되고, 효율적인 시간 활용을 경험할 수 있을 것입니다.