본문 바로가기
n8n

n8n Queue 모드 아키텍처와 운영 포인트

by simplify-len 2026. 5. 4.

n8n Queue 모드 아키텍처와 운영 포인트

워크플로우 자동화 도구인 n8n을 본격적으로 운영하다 보면, 어느 순간 단일 프로세스만으로는 트래픽과 안정성을 감당하기 어려운 시점이 옵니다. 이 글에서는 n8n의 두 가지 운영 모드(단일 / 큐)를 비교하고, 큐 모드의 아키텍처와 실제 운영에서 챙겨야 할 포인트를 정리합니다.

본 내용은 n8n 1.121.3 기준이며, 운영 중인 환경의 버전과 일부 차이가 있을 수 있습니다.


1. 들어가며

n8n은 다음 두 가지 모드로 운영할 수 있습니다.

  • 단일(regular) 모드 — 하나의 프로세스가 모든 역할 처리
  • 큐(queue) 모드 — 역할을 분리하여 수평 확장 가능

큐 모드는 대규모 트래픽과 높은 안정성이 요구되는 환경에 적합하며, 역할 분리를 통해 확장성을 확보할 수 있습니다. 다만 Redis와 데이터베이스를 경유하는 구조적 특성으로 동기 웹훅 처리 경로에서 지연이 증가할 수 있으므로, 도입 전 아키텍처 설계가 중요합니다.


2. 운영 모드 비교

단일 모드 (regular)

하나의 Main 프로세스가 UI/API, 트리거, 웹훅 수신, 실행까지 모든 기능을 처리합니다. Worker 및 Webhook 프로세서는 자동으로 분리되지 않습니다.

                  ┌──────────────────────────────┐
                  │          Main Process         │
                  │                               │
                  │   UI / API                    │
                  │   Triggers                    │
                  │   Webhook 수신                │
                  │   Workflow 실행               │
                  └───────────────┬───────────────┘
                                  ▼
                              Postgres

특징

  • 구성과 운영이 단순합니다.
  • 확장성에 제약이 있으며, 트래픽 증가 시 처리 안정성이 낮아질 수 있습니다.

3. 큐 모드 아키텍처

역할 분리 구조

큐 모드는 역할별로 프로세스를 분리하고, 그 사이를 Redis 큐가 매개합니다. 일반적인 큐 모드 아키텍처 흐름은 다음과 같습니다.

            ┌────────────────────────────────────────┐
            │                Clients                  │
            └───────────────┬───────────────┬────────┘
                            │               │
                       (1) Webhook       (2) UI/API
                            │               │
                            ▼               ▼
                      ┌──────────┐     ┌──────────┐
                      │ Webhook  │     │   Main   │
                      │ Processor│     │  Process │
                      └─────┬────┘     └────┬─────┘
                            │               │
                            └──────┬────────┘
                                   ▼
                              Redis Queue
                                   │
                                   ▼
                           ┌─────────────┐
                           │   Worker    │  (N개 확장 가능)
                           └──────┬──────┘
                                  ▼
                                Postgres

구성 요소

  • Main 프로세스

    • UI/API 제공
    • 트리거 및 웹훅 수신
    • 실행 ID를 생성해 Redis 큐에 게시
  • Worker 프로세스

    • Redis에서 실행 ID를 받아 워크플로를 실제로 실행
    • 실행 결과는 데이터베이스에 기록
    • 수평 확장이 용이한 계층
  • Webhook Processor (선택 구성)

    • /webhook/* 요청만 수신하는 전용 프로세서
    • 트래픽 급증 시 Main 프로세스의 부하를 줄이고 안정적인 수신을 보장

특징

  • 수평 확장(scaling) 가능한 환경을 만들 수 있습니다.
  • 동기 실행 시 지연이 발생할 수 있습니다. (Redis/DB 경유)
  • 큐 모드에서는 바이너리 데이터(이미지, PDF, ZIP 등)를 로컬 파일시스템에 저장하는 방식을 지원하지 않습니다. S3와 같은 외부 저장소를 사용해야 합니다.

4. 구성 Q&A

Q1. 언제 단일 모드와 큐 모드를 사용해야 할까?

  • 안정성 · 확장성 · 격리가 필요하다면 → 큐 모드
  • 단순함 · 낮은 지연 · 운영 편의성이 우선이라면 → 단일 모드

Q2. Main · Worker · Webhook 프로세스를 모두 함께 사용할 수 있나요?

가능합니다. 각 프로세스를 별도 인스턴스로 구성해 자유롭게 조합할 수 있습니다.

Q3. 단일 모드에서는 자동으로 역할이 분리되나요?

아닙니다. 단일 모드에서는 Main 프로세스 하나가 모든 기능을 수행합니다.

Q4. Auto-scaling 전략은 어떻게?

  • Worker CPU/메모리 사용량 기반 스케일링
  • AWS Auto Scaling으로 트래픽/Burst 상황에서 Worker 수 자동 증가
    • ⚠️ DB 부하를 반드시 함께 고려해야 합니다. 최악의 경우 DB 커넥션 풀 고갈 + I/O 폭증 → 전체 n8n 장애로 이어질 수 있습니다.

5. 운영 포인트

n8n을 확장 운영할 때 고려해야 하는 핵심 요소를 4가지 축으로 정리했습니다.

① 실행 격리 (Execution Isolation)

격리해서 실행할 것인가, 함께 실행하게 할 것인가?

이 판단이 단일 모드와 큐 모드를 가르는 첫 번째 기준입니다.

② 실행 부하 처리 (Workflow Execution Load)

가벼운 워크플로인가, 무거운 워크플로인가?

워크플로가 무겁고 자원 소모가 크다면 큐 모드 + Worker 분리를 고려해야 합니다.

③ 트리거 운영 방식 (Trigger Strategy)

워크플로 시작 방식이 webhook 인가, polling 인가?

  • Webhook 트래픽이 많다면 → Webhook Processor를 분리
  • 로드밸런서에서 /webhook/* 경로를 분리
  • 일정 주기로 외부 API를 조회하는 polling 워크플로가 많아지면 → Worker 분리

④ 인프라 및 고가용성 (HA & Infrastructure)

Redis 운영

  • Redis 장애 시 실행 중단
  • 네트워크 지연이 크면 Worker 처리 속도도 함께 느려짐

Postgres 운영

  • Worker 수 증가 시 → DB Pool Size도 반드시 증가
  • Execution 데이터 자동 삭제(Pruning) 정책 운영 필수
    n8n Docs - Enable Executions Pruning
  • 큐 모드에서는 파일/바이너리 데이터를 로컬에 저장할 수 없으므로 S3 등 외부 스토리지 사용 필수

6. 함께 챙겨볼 만한 것들

다음 버전 업그레이드 확인

Rate Limits 기능

특정 워크플로가 무한 반복될 수 있는 경우 활용할 수 있습니다.
Use Loop Over Items and Wait

참고: Task-Runner

Task-Runner는 워크플로 실행을 별도 프로세스에서 수행하도록 하는 전용 실행 엔진입니다.

  • n8n 1.40+ 이후 본격 제공 (현재 버전: 1.121.3)
  • 각 Task-Runner가 독립된 프로세스로 실행됨
  • Worker와 유사하지만 목적이 다름

핵심 목적은 실행 자체를 메인 프로세스와 완전히 격리해 안정성을 향상시키는 것입니다. 큐 모드보다는 단일 모드의 단점을 해결하는 데 적합합니다.

n8n Docs - Task Runners


마치며

n8n은 단일 모드만으로도 충분히 강력하지만, 트래픽이 늘고 안정성 요구가 높아지면 큐 모드로의 전환이 거의 필연입니다. 다만 큐 모드는 *"켜기만 하면 되는"* 스위치가 아니라, Redis · Postgres · Worker · Webhook Processor가 함께 움직이는 분산 시스템입니다.

도입 전에는

  • 워크플로의 실행 특성(가벼움/무거움, 동기/비동기)
  • 트리거 방식(webhook/polling) 분포
  • DB 커넥션, Redis HA, 외부 스토리지 같은 인프라 준비 상태

를 먼저 점검하시길 권합니다. 큐 모드는 확장성을 얻는 대신 운영 복잡도를 받아들이는 트레이드오프라는 점을 기억하면, 더 단단한 자동화 플랫폼을 만들 수 있을 것입니다.

댓글