IT/DevOps

[DevOps] - Apache NiFi

justdo2t 2025. 3. 18. 10:50

Apache NiFi란

  Apachi NiFi데이터 플로우 자동화 및 관리를 위한 워크플로우 오케스트레이션 도구이다. 쉽게 말해서, 다양한 데이터 소스로부터 데이터를 가져오고, 가공한 후, 원하는 목적지로 전송하는 역할을 한다.

 

Apache NiFi의 구성

위 이미지의 구성에 대한 특징은 아래와 같다.

 

Web Server

  • NiFi의 웹 UI를 제공하는 서버
  • 사용자는 웹 UI를 통해 데이터 플로우를 관리 및 모니터링할 수 있다

Flow Controller

  • NiFi의 핵심 관리 엔진
  • 데이터 플로우를 조정하며, Processor 및 데이터 저장소를 제어한다.

Processor

  • 데이터 ETL(수집, 변환 ,전송 등)의 역할을 수행하는 핵심 컴포넌트이다.
  • 여러 개의 Processor가 연결되어 데이터 흐름을 처리한다(예: HTTP 요청 처리, 데이터 변환 등).

FlowFile Repository

  • FlowFile 메타데이터 저장소이다.
  • 각 FlowFile의 경로 및 상태 정보를 저장하여 데이터 흐름을 추적한다.

Content Repository

  • FlowFile의 실제 데이터(content)를 저장하는 공간이다.
  • 파일 시스템 또는 분산 저장소(HDFS, S3 등)에 저장 가능하다.

Provenance Repository

  • 데이터의 이동 경로 및 변경 이력을 저장한다.
  • 데이터 추적 및 감사(Auditing)를 위한 핵심 구성 요소이다.

 

언급된 주요 특징들을 종합하면 다음과 같다:

→ 데이터 수집, 변환, 전송을 GUI 기반으로 쉽게 관리 가능

실시간 스트림이 및 배치 데이터 처리 지원

→ 다양한 데이터 소스(데이터베이스, 파일 시스템, 메시징 시스템 등)와 연동 가능

→ 고가용성과 확장성을 고려한 분산 처리 지원


Apache NiFi의 강점

1. GUI 기반의 직관적인 데이터 흐름 관리 용이

  • 드래그 앤 드롭 방식으로 데이터 파이프라인을 구성할 수 있어 비개발자도 활용 가능
  • 복잡한 코드 없이 데이터 이동, 변환, 필터링을 수행할 수 있음

      → 웹 UI에서 Processor(데이터 처리 요소)를 추가하고 선을 연결하는 것만으로도 데이터를 흐르게 할 수 있다!

 

2. 실시간 데이터 스트리밍 & 이벤트 처리 가능

  • Kafka, MQTT, JMS 등 다양한 메시징 시스템과 연동 가능
  • 데이터가 들어오는 즉시 변환 및 필터링 후 전송 가능
  • 배치(Batch)와 실시간(Streaming) 처리를 모두 지원

3. 고성능 & 확장 가능한 분산 아키텍처 지원

  • 단일 노드 실행 가능 + 클러스터링(다중 노드) 지원 → 대규모 데이터 처리 가능
  • 병렬 데이터 처리 최적화로 고속 데이터 처리 가능

4. 다양한 데이터 소스와의 연동 지원

  • 파일 시스템, 데이터베이스, API, 클라우드 스토리지(AWS S3, Google Cloud)다양한 입력과 출력을 지원
  • 300개 이상의 기본 내장 Processor 제공 (HTTP 요청, JSON 변환, DB 연결 등)

   → 예) SQL 데이터 베이스 → JSON 변환 → Kafka로 전송


타 솔루션과의 비교

기존에 존재하는 솔루션들과의 차별점은 다음과 같다

기능 Apache NiFi Apache Airflow Logstash
실시간 스트리밍 처리 지원 X (배치 중심) 지원
GUI 기반 워크플로우 디자인 지원 X (코드 기반 DAG) X
데이터 흐름 추적 (Provenance) 지원 X X
파일, API, DB, 메시징 시스템 연동 매우 쉬움 가능 가능
배치 데이터 처리 지원 강력 지원

 

요약하자면 각 솔루션의 강점은 다음과 같이 정리할 수 있다

솔루션 내용
Apache NiFi 실시간 데이터 이동, 변환, 스트리밍 (Kafka, S3, IoT, 로그 처리)
Apache Airflow 데이터 파이프라인 배치 스케줄링 (ETL, ML Workflow)
Logstash 로그 수집 및 가공 중심 (ELK 스택)