ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • n8n 셀프호스팅이면 AI도 로컬일까? 데이터가 나가는 지점 찾기
    AI Agent 2026. 9. 12. 18:29
    728x90
    반응형

    작은 집 모형 안에서 고리를 만들고 양쪽 밖으로 이어지는 실

    작은 집 모형 안에서 고리를 만들고 양쪽 밖으로 이어지는 실. 이해를 돕기 위한 AI 생성 개념 이미지입니다.

    n8n을 내 서버에 설치했다고 워크플로의 모든 데이터가 그 서버 안에 머무는 것은 아닙니다. HTTP Request, 클라우드 AI, 메일, 메신저 노드는 각자의 외부 서비스로 요청을 보낼 수 있습니다. 셀프호스팅은 자동화 실행기의 위치를 정할 뿐 각 노드의 처리 위치를 한꺼번에 정하지 않습니다.

    “로컬 AI”라고 부르기 전에 트리거부터 최종 저장까지 각 단계의 입력, 목적지, 인증정보, 실행 로그를 적어야 합니다.

    실행기, 모델, 저장소는 별도 구성 요소입니다

    n8n 공식 self-hosted AI starter kit는 n8n, Ollama, Qdrant, PostgreSQL을 Docker Compose로 묶은 예시를 제공합니다.

    구성 요소역할로컬 여부 확인
    n8n워크플로 실행·연결컨테이너와 호스트 위치
    Ollama모델 추론모델 endpoint 주소
    Qdrant벡터 저장·검색볼륨과 노출 포트
    PostgreSQLn8n 상태·데이터 저장DB 위치와 백업

    같은 Compose 파일에 있다고 모든 트래픽이 외부로 나가지 않는 것은 아닙니다. 이미지 pull, 모델 다운로드, 외부 노드 호출, telemetry, 백업 목적지를 별도로 확인해야 합니다. 공식 README도 모든 처리를 로컬에 두려면 Ollama 노드와 Qdrant를 사용하라고 안내하지만, 그 선택은 다른 HTTP·메일·저장 노드의 목적지까지 바꾸지 않습니다.

    공식 배포 문서는 starter kit가 테스트와 PoC를 위한 출발점이며 운영 전 보안 강화가 필요하다고 안내합니다. .env의 secret과 password를 바꾸는 초기 절차도 포함되어 있습니다. 예제 compose를 그대로 인터넷에 노출하는 것은 운영 설계가 아닙니다.

    PDF 요약 흐름을 한 줄씩 추적합니다

    가상의 공개 PDF 요약 워크플로를 보겠습니다.

    단계들어오는 데이터나가는 목적지
    파일 트리거원본 PDFn8n 실행 데이터
    텍스트 추출PDF 바이트추출 노드 또는 외부 API
    임베딩문단로컬 모델 또는 클라우드 API
    검색벡터·메타데이터Qdrant
    요약선택 문단Ollama 또는 외부 모델
    발송요약 결과이메일·Slack 등

    모델을 Ollama로 바꿔도 메일 발송 단계에서 요약이 외부로 갑니다. 텍스트 추출 노드가 SaaS라면 원문도 이미 외부로 전송됐을 수 있습니다. 워크플로 화면의 “AI” 노드 하나만 보는 대신 모든 화살표를 봐야 합니다.

    실제 설정에서 목적지를 찾는 순서

    1. 각 노드의 base URL과 credential 이름을 내보냅니다.
    2. localhost, 컨테이너 서비스명, 사설 IP, 공인 도메인을 구분합니다.
    3. 환경 변수에 기본 endpoint가 숨어 있지 않은지 봅니다.
    4. 서브워크플로와 community node가 추가 호출을 하는지 확인합니다.
    5. 공개 샘플로 실행해 DNS·프록시·방화벽 로그와 대조합니다.
    6. 실행 데이터, 오류 payload, binary data가 어디에 보관되는지 확인합니다.

    컨테이너 안의 localhost는 대개 호스트가 아니라 그 컨테이너 자신입니다. 예를 들어 공식 starter kit는 Mac에서 호스트에 설치한 Ollama를 컨테이너 n8n이 사용하도록 OLLAMA_HOST=host.docker.internal:11434와 credential의 base URL을 설정하는 경로를 안내합니다. 이 주소가 보인다고 외부 클라우드라는 뜻도, 데이터가 반드시 기기 밖으로 나가지 않는다는 뜻도 아닙니다. 실제 네트워크 namespace와 라우팅을 확인해야 합니다.

    운영 전에 비밀정보와 실행 이력을 정리합니다

    • credential 암호화 키를 고정하고 안전하게 보관
    • 편집자·실행자·관리자 권한 분리
    • webhook 인증과 허용 origin 검토
    • 공개 인터넷에 노출할 포트 최소화
    • 실행 로그의 원문·토큰·응답 보존 기간 설정
    • DB·볼륨 백업과 복구 시험
    • community node의 코드·업데이트 출처 검토
    • 외부 API timeout, retry, 중복 발송 방지 설정
    • 각 서비스의 보관·삭제·지역·하위처리자 정책 확인

    재시도는 특히 중요합니다. 모델 호출이 성공한 뒤 응답 저장에서 timeout이 나면 전체 노드가 다시 실행돼 비용이나 발송이 중복될 수 있습니다. 외부 행동에는 idempotency key나 처리 완료 표식을 설계해야 합니다.

    로컬이라고 말할 수 있는 범위를 좁힙니다

    다음 문장은 증거 수준이 다릅니다.

    • “n8n을 사내 서버에서 실행한다”: 실행기 위치만 확인
    • “모델 추론은 로컬 Ollama에서 수행한다”: 모델 endpoint 확인
    • “워크플로 데이터가 외부로 나가지 않는다”: 모든 노드·로그·백업·다운로드 경로 확인 필요

    조직 문서에는 셋 중 무엇을 확인했는지 그대로 적는 편이 낫습니다.

    정리

    n8n 셀프호스팅과 로컬 AI는 같은 설정이 아닙니다. 워크플로 실행기, 모델 서버, 벡터 DB, 저장소와 외부 노드의 목적지를 각각 추적해야 합니다. starter kit는 구조를 시험하는 출발점이지 운영 보안 완료 상태가 아닙니다.

    자료 확인일은 2026년 9월 7일입니다. 공식 저장소와 배포 문서를 기준으로 작성했으며 실제 설치, 패킷 캡처, 성능·보안 감사를 수행하지 않았습니다.

    728x90
    반응형
Designed by Tistory.