자동화 툴인 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)에 별도의 저장 공간을 만듭니다. 나중에 서버를 옮길 때 이 폴더만 백업하면 됩니다.
# 홈 디렉터리로 이동
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을 실행합니다.
docker-compose up -d
- Creating n8n ... done 메시지가 뜨면 정상적으로 실행된 것입니다.
5. AWS 보안 그룹(Security Group) 오픈
서버 내부에서는 돌아가고 있지만, AWS 방화벽 문을 열어줘야 외부에서 접속할 수 있습니다.
- AWS 콘솔 -> EC2 -> 해당 인스턴스 선택
- 보안(Security) 탭 -> 보안 그룹(Security groups) 클릭
- Inbound rules(인바운드 규칙) 편집 클릭
- 규칙 추가:
- 포트 범위: 5678
- 소스: 0.0.0.0/0 (혹은 특정 위치 IP)
- 저장
6. 접속 및 확인
브라우저 주소창에 아래와 같이 입력합니다.
http://[내-EC2-공인-IP]:5678

첫 화면 진입 시 계정정보 생성을 안내합니다. 입력한 뒤 next 를 클릭하세요.
이제 워크플로우를 생성하고 저장해보세요. 저장된 데이터는 아까 만든 /home/ec2-user/n8n/.n8n 폴더 안에 차곡차곡 쌓이게 됩니다.
💡 꿀팁: 나중에 서버를 옮겨야 한다면?
이 방식의 장점은 '이주(Migration)'가 매우 쉽다는 것입니다.
- FileZilla 등을 이용해 현재 서버의 /home/ec2-user/n8n/.n8n 폴더를 통째로 내 컴퓨터로 다운로드합니다.
- 새로운 서버에 Docker를 설치하고 n8n/.n8n 폴더를 업로드합니다.
- docker-compose.yml 파일만 똑같이 작성해서 실행(up -d)하면 예전 작업 환경 그대로 복구됩니다.
함께 보면 좋은 글:
[n8n] n8n "Error connecting to n8n" 에러가 나는경우
n8n 1.109.1 버전 이후부터 HTTP 환경에서 프론트엔드(브라우저)와 백엔드(서버) 간 통신이 실패하는 경우입니다. 기술적 원인n8n은 두 부분으로 구성되어 있어요.┌───────────────
rooftoptaiger.com