본문 바로가기
카테고리 없음

[n8n] Amazon Linux 2에 Docker로 n8n 설치하기 (데이터 영구 보존 완벽 가이드)

by 즐거운호랭이 2025. 11. 25.
반응형

자동화 툴인 n8n을 AWS EC2(Amazon Linux 2)에 설치하는 방법입니다. 단순 설치뿐만 아니라, 추후 서버 이전이나 백업을 고려하여 데이터를 호스트와 완벽하게 분리하는 설정으로 진행합니다. 이 방식을 사용하면 도커 컨테이너를 지웠다 다시 만들어도 데이터가 안전하게 살아있습니다.

 

 

 

[버튼1|n8n홈페이지 바로가기|https://n8n.io/]

 

사전 준비

  • AWS EC2 인스턴스 (Amazon Linux 2) 생성 완료
  • SSH 접속 가능한 상태 (Putty 또는 터미널)

 

1. Docker 및 Docker Compose 설치

먼저 서버 패키지를 최신으로 업데이트하고 도커 엔진을 설치합니다.

# 1. 시스템 업데이트
sudo yum update -y

# 2. Docker 설치 (Amazon Linux Extras 이용)
sudo amazon-linux-extras install docker -y

# 3. Docker 실행 및 자동 시작 등록
sudo service docker start
sudo systemctl enable docker

# 4. 권한 설정 (sudo 없이 docker 명령어 사용하기 위함)
sudo usermod -a -G docker ec2-user

 

⚠️ 중요: 4번 명령어를 입력한 후에는 반드시 SSH 접속을 끊었다가 다시 로그인해야 권한이 적용됩니다. (재접속 후 docker info를 입력했을 때 에러가 없으면 성공)

 

 

재접속 후, Docker Compose도 설치합니다.

# 5. Docker Compose 다운로드
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 6. 실행 권한 부여
sudo chmod +x /usr/local/bin/docker-compose

 

 

2. 데이터 저장용 폴더 생성 (핵심 단계)

도커 컨테이너가 사라져도 데이터(워크플로우, 계정 정보 등)를 보존하기 위해 호스트(EC2)에 별도의 저장 공간을 만듭니다. 나중에 서버를 옮길 때 이 폴더만 백업하면 됩니다.

Bash
 
# 홈 디렉터리로 이동
cd ~

# 데이터 저장 폴더 생성
mkdir n8n

# 설정저장 폴더 생성
cd n8n

mkdir -p .n8n

sudo chown -R 1000:1000 /APPS/n8n/.n8n

 

이제 우리의 모든 데이터는 /home/ec2-user/n8n/.n8n 경로에 저장됩니다.

 

 

 

3. docker-compose.yml 파일 작성

n8n 실행 설정을 담은 파일을 만듭니다.

cd ~/n8n

vi docker-compose.yml

i 를 눌러 입력 모드로 들어간 후, 아래 내용을 복사해서 붙여넣으세요. (N8N_BASIC_AUTH 부분과 WEBHOOK_URL은 본인 환경에 맞게 수정하세요.)

 
version: "3"

services:
  n8n:
    image: n8nio/n8n:1.108.2
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_SECURE_COOKIE=false
      - N8N_HOST=0.0.0.0
      - N8N_PROTOCOL=http
      - WEBHOOK_URL=http://[내 서버 IP]:5678/
    volumes:
      - /APPS/n8n/.n8n:/home/node/.n8n
  • 입력이 끝났으면 ESC 누르고 :wq 입력 후 엔터 (저장 후 종료).

 

 

 

4. 컨테이너 실행

이제 설정한 내용대로 n8n을 실행합니다.

Bash
 
docker-compose up -d
  • Creating n8n ... done 메시지가 뜨면 정상적으로 실행된 것입니다.

 

 

 

5. AWS 보안 그룹(Security Group) 오픈

서버 내부에서는 돌아가고 있지만, AWS 방화벽 문을 열어줘야 외부에서 접속할 수 있습니다.

  1. AWS 콘솔 -> EC2 -> 해당 인스턴스 선택
  2. 보안(Security) 탭 -> 보안 그룹(Security groups) 클릭
  3. Inbound rules(인바운드 규칙) 편집 클릭
  4. 규칙 추가:
    • 포트 범위: 5678
    • 소스: 0.0.0.0/0 (혹은 특정 위치 IP)
  5. 저장

 

 

 

6. 접속 및 확인

브라우저 주소창에 아래와 같이 입력합니다.

 

http://[내-EC2-공인-IP]:5678

 

 

첫 화면 진입 시 계정정보 생성을 안내합니다. 입력한 뒤 next 를 클릭하세요.

 

이제 워크플로우를 생성하고 저장해보세요. 저장된 데이터는 아까 만든 /home/ec2-user/n8n/.n8n 폴더 안에 차곡차곡 쌓이게 됩니다.

 

 

 


 

 

💡 꿀팁: 나중에 서버를 옮겨야 한다면?

이 방식의 장점은 '이주(Migration)'가 매우 쉽다는 것입니다.

  1. FileZilla 등을 이용해 현재 서버의 /home/ec2-user/n8n/.n8n 폴더를 통째로 내 컴퓨터로 다운로드합니다.
  2. 새로운 서버에 Docker를 설치하고 n8n/.n8n 폴더를 업로드합니다.
  3. docker-compose.yml 파일만 똑같이 작성해서 실행(up -d)하면 예전 작업 환경 그대로 복구됩니다.

 

 

함께 보면 좋은 글:

 

[n8n] n8n "Error connecting to n8n" 에러가 나는경우

n8n 1.109.1 버전 이후부터 HTTP 환경에서 프론트엔드(브라우저)와 백엔드(서버) 간 통신이 실패하는 경우입니다. 기술적 원인n8n은 두 부분으로 구성되어 있어요.┌───────────────

rooftoptaiger.com

 

 

반응형