본문 바로가기

JanusGraph/JanusGraph 이론

JanusGraph 기초 개념 ⑤ / 스토리지 백엔드 구성과 아키텍처 설계

JanusGraph는 단순한 그래프 저장소가 아니며, 복잡한 실시간 시스템, 분산 환경, 대규모 분석 시스템에서도 유연하게 적용될 수 있는 구조를 갖추고 있습니다. 이번 편에서는 JanusGraph의 스토리지 백엔드(Storage Backend)와 이를 활용한 실무 아키텍처 설계를 알아보겠습니다. / 보다가 지루하시면 이번 장은 넘겨도 될 듯 합니다.

 

✅ 1. JanusGraph는 스토리지 계층을 분리한다

JanusGraph는 자체적으로 데이터를 저장하지 않습니다.
대신, 외부 스토리지 시스템을 백엔드로 구성하여 저장합니다.

📦 즉, JanusGraph는 그래프 처리 레이어이고,
데이터를 저장·관리하는 역할은 스토리지 백엔드에 위임합니다.

 

✅ 2. 지원되는 주요 백엔드 시스템

스토리지 백엔드 설명 및 특징
Apache Cassandra 고가용성 분산형 NoSQL DB. 빠른 쓰기 처리, 수평 확장성
Apache HBase HDFS 기반, 빅데이터 환경에 적합. Google BigTable 모델 기반
BerkeleyDB 임베디드용 경량 DB. 테스트나 단일 서버용으로 적합
Google Cloud Bigtable GCP 기반의 고성능 NoSQL 저장소. HBase와 API 호환
ScyllaDB (비공식) Cassandra보다 빠른 성능을 지향하는 호환 백엔드

 

굳이 모르셔도 될 것 같습니다...

 

✅ 3. 전형적인 실무 아키텍처 예시

[사용자 요청/애플리케이션]
        ↓
[Gremlin Server]
        ↓
[JanusGraph (쿼리 처리)]
        ↓
[Storage Backend: Cassandra, HBase 등]
        ↓
[HDFS or GCP BigTable]

 

  • Gremlin Server는 클라이언트와 JanusGraph 사이의 중간 계층
  • JanusGraph는 요청을 해석하고 최적의 쿼리를 생성
  • 실제 데이터는 스토리지 백엔드에서 조회하거나 저장

✅ 4. 백엔드 선택 기준 / 세팅할때 참고

고려 요소 적합한 백엔드
대규모 분산 환경 Cassandra, HBase, Bigtable
클라우드 환경 중심 Google Bigtable (GCP), Amazon Keyspaces
로컬 테스트용 / 개발용 BerkeleyDB
쓰기 성능 중시 Cassandra
읽기-쓰기 균형 HBase
예산 여유 + 속도 Bigtable (높은 성능, 비용도 있음)

 

 

✅ 5. 백엔드 설정 방식 (간단 예시)

# janusgraph.properties
storage.backend=cassandra
storage.hostname=127.0.0.1
index.search.backend=elasticsearch
index.search.hostname=127.0.0.1

 

  • storage.backend에 원하는 백엔드 입력
  • 설정만 바꾸면 다른 백엔드로 쉽게 전환 가능
  • ElasticSearch와 같은 인덱싱 시스템도 설정 가능

🧩 실무 팁

  • 분산 환경에서는 백엔드 노드 수와 네트워크 레이턴시 고려 필수
  • 인덱싱 기능 (Lucene, ES 등)과 연동하여 성능 향상 가능
  • 모니터링 도구: Prometheus, Grafana 등과 통합해 시스템 상태 시각화
항목 설명
JanusGraph 그래프 처리 전용 레이어
백엔드 실제 데이터 저장소 (Cassandra, HBase 등)
설정 유연성 구성 파일만 수정하면 교체 가능
실무 적용 다양한 환경에 맞춰 조합 가능한 모듈형 구조