Nanuq 2.0: Kafka, Redis, RabbitMQ, AWS 및 Azure를 위한 통합 관리 플랫폼
Source: Dev.to
여러 개발 환경에서 다양한 메시징 및 캐싱 시스템을 관리하는 것은 흔히 겪는 어려움입니다. 각 플랫폼마다 고유한 CLI 도구, 서로 다른 인증 메커니즘, 그리고 독특한 관리 인터페이스가 필요합니다. Kafka 토픽, Redis 캐시, RabbitMQ 익스체인지, AWS SQS 큐, Azure Service Bus 등을 동시에 다루는 팀과 작업하면서, 저는 이 문제를 해결하기 위해 Nanuq를 만들었습니다.
오늘은 Nanuq 2.0을 소개하게 되어 기쁩니다. 이번 주요 업데이트는 클라우드 플랫폼 지원, 엔터프라이즈 수준 보안, 그리고 프로덕션 준비 기능을 이 오픈소스 프로젝트에 추가합니다.
Nanuq란?
Nanuq는 다섯 가지 핵심 메시징 및 캐싱 플랫폼을 하나의 직관적인 웹 UI로 통합하는 관리 인터페이스입니다:
- Apache Kafka – 토픽 관리 및 모니터링
- Redis – 전체 CRUD 작업을 지원하는 6가지 데이터 타입
- RabbitMQ – 익스체인지 및 큐 관리
- AWS (SQS/SNS) – 클라우드 메시지 큐와 pub/sub
- Azure Service Bus – 큐, 토픽, 구독을 포함한 엔터프라이즈 메시징
kafka-console-consumer, redis-cli, rabbitmqctl, AWS Console, Azure Portal 등을 오가며 작업할 필요 없이, 개발자는 한 곳에서 모든 것을 관리할 수 있습니다.
Kafka 토픽 관리

메시지 수와 파티션 세부 정보를 포함한 Kafka 토픽 관리
통합 대시보드

다섯 플랫폼 전체에 걸친 메트릭을 보여주는 통합 대시보드
Version 2.0의 새로운 기능
클라우드 플랫폼 통합
2.0에서 가장 큰 추가 사항은 완전한 클라우드 플랫폼 지원입니다.
AWS (SQS/SNS)
- 15개의 AWS 리전 지원 (us‑east‑1, eu‑west‑1, ap‑southeast‑1 등)
- 전체 SQS 기능: 큐 생성(표준/FIFO), 메시지 전송/수신, 큐 속성 모니터링
- SNS 토픽 관리: 메시지 발행, 구독 관리(HTTP, Email, SMS, SQS, Lambda)
- 분산 팀을 위한 다중 리전 배포
Azure Service Bus
- 전 세계 30개 이상의 Azure 리전 지원
- TTL, 데드레터링, 중복 감지를 설정할 수 있는 큐 관리
- 필터링 기능이 포함된 토픽 및 구독
- 전체 메시지 수명 주기: 전송, 수신(피크‑락 모드), 데드레터 큐 접근
AWS SQS 예시

AWS SQS 큐를 전송/수신 기능과 함께 관리하기
Azure Service Bus 예시

Azure Service Bus 토픽 및 구독 관리
엔터프라이즈 보안
보안은 2.0에서 최우선 과제였습니다.
-
AES‑256 암호화된 자격 증명 저장
저장된 모든 자격 증명(비밀번호, 액세스 키, 연결 문자열)은 DPAPI 파생 키를 사용한 AES‑256으로 휴지 상태에서 암호화됩니다. 암호화 서비스는 자격 증명을 저장할 때 자동으로 암호화하고, API 호출에 필요할 때 복호화합니다. 비밀번호는 API 응답에 절대 노출되지 않으며, 프런트엔드에는 메타데이터만 반환됩니다. -
연결 테스트
자격 증명을 저장하기 전에 사용자는 연결을 테스트하여 정상 작동 여부를 확인할 수 있습니다. 이를 통해 액세스 키, 비밀번호, 연결 문자열이 올바른지 검증하고 데이터베이스에 영구 저장하기 전에 구성 오류를 방지합니다.
통합 대시보드
새 대시보드는 모든 플랫폼에 대한 실시간 가시성을 제공합니다.
- 플랫폼별 서버 수, 토픽/큐 수, 리소스 메트릭
- 환경 구분(개발, 스테이징, 프로덕션) 및 색상 배지
- 플랫폼 및 작업 유형별 필터링이 가능한 최신 활동 피드
- 각 플랫폼에 새 서버를 추가하는 빠른 작업 버튼
활동 추적 및 감사
전체 감사 로그는 24가지 이상의 활동 유형을 포함하며, 모든 플랫폼의 모든 작업을 포괄합니다.
- 유형, 날짜 범위, 검색어별 고급 필터링
- CSV 또는 JSON 형식으로 내보내기(규정 준수용)
- 머티리얼 디자인 아이콘이 적용된 시각적 타임라인
- 실시간 모니터링을 위한 자동 새로고침

필터링 및 내보내기 기능이 포함된 완전한 활동 감사 로그
고급 Redis 지원
6가지 Redis 데이터 유형 모두에 대한 전체 CRUD 작업 지원:
- Strings – TTL 지원과 함께 캐시 키를 조회, 추가, 업데이트, 삭제
- Lists – 요소 푸시/팝, 전체 리스트 조회 등
(원본 소스와 동일하게 내용이 계속됩니다.)
Redis & RabbitMQ 관리 개요
- Strings – 값 설정/조회, 리스트 키 관리
- Hashes – 필드 설정/조회, 모든 필드 보기, 해시 키 관리
- Sets – 멤버 추가/제거, 세트 멤버 보기
- Sorted Sets – 점수와 함께 멤버 추가, 정렬된 멤버 보기
- Streams – 여러 필드가 있는 엔트리 추가, 스트림 엔트리 보기
모든 작업은 대용량 데이터셋 처리를 위해 페이지네이션을 지원합니다.
Images

다양한 데이터 유형에 걸친 Redis 키 관리

RabbitMQ 교환 및 큐 관리
멀티‑환경 관리
UI에서 색상 배지를 사용해 환경(개발, 스테이징, 프로덕션)별로 서버에 태그를 지정합니다. 이를 통해 실수로 프로덕션 리소스를 수정하는 일을 방지하고, 팀이 멀티‑환경 워크플로를 관리하기 쉬워집니다.
Source: …
기술 아키텍처
백엔드: .NET 10.0 모듈형 모놀리식
백엔드는 깔끔하고 모듈화된 아키텍처를 사용합니다:
Nanuq.WebApi/ # FastEndpoints API
Nanuq.Kafka/ # Kafka integration
Nanuq.Redis/ # Redis integration
Nanuq.RabbitMQ/ # RabbitMQ integration
Nanuq.AWS/ # AWS SQS/SNS integration
Nanuq.Azure/ # Azure Service Bus integration
Nanuq.Security/ # AES‑256 encryption service
Nanuq.EF/ # Entity Framework Core context
Nanuq.Sqlite/ # SQLite repositories
Nanuq.Common/ # Shared records and interfaces
핵심 패턴
- FastEndpoints를 전통적인 컨트롤러 대신 사용하여 성능 향상
- 데이터 접근 추상화를 위한 Repository 패턴
- 데이터베이스 스키마 관리를 위한 DbUp 마이그레이션
- 전반적인 Dependency Injection 적용
프론트엔드: Vue 3 + Vuetify
프론트엔드는 Vue 3와 Vuetify의 Material Design 컴포넌트를 활용합니다.
상태 관리
- 각 플랫폼별 별도 Vuex 모듈(
kafka.js,redis.js,aws.js,azure.js) - 전역 알림 시스템을 통한 중앙 집중식 오류 처리
- 오류 발생 시 롤백 가능한 낙관적 UI 업데이트
데이터베이스: EF Core와 SQLite
SQLite는 모든 서버 구성, 자격 증명 및 활동 로그에 대해 설정이 필요 없는 영구 저장을 제공합니다. DbUp 마이그레이션은 시작 시 자동으로 실행되어 스키마 업데이트를 원활하게 수행합니다.
시작하기
Docker (권장)
# Pull and run both backend and frontend
docker-compose -f Docker/docker-compose.yml up -d
# Access the app
open http://localhost:8080
Kubernetes
한 번에 배포:
kubectl apply -f https://raw.githubusercontent.com/waelouf/Nanuq/main/K8s/nanuq-all-in-one.yaml
# Check deployment
kubectl get pods
kubectl get service nanuq-frontend
로컬 개발
백엔드
cd src/services/Nanuq/Nanuq.WebApi
dotnet run # Runs on http://localhost:5000
프론트엔드
cd src/app/nanuq-app
npm install
npm run serve # Runs on http://localhost:8080
실제 사용 사례
- 마이크로서비스 개발 – 단일 UI에서 Kafka 토픽, Redis 캐시, 그리고 RabbitMQ 큐를 검사합니다.
- 멀티 클라우드 배포 – AWS SQS와 Azure Service Bus를 나란히 관리하여 컨텍스트 전환을 줄입니다.
- 환경 승격 – 서버를 Dev/Staging/Prod로 태그하고, 변경을 승격하기 전에 구성들을 비교합니다.
- 프로덕션 이슈 디버깅 – CLI 도구를 설치하지 않고도 메시지 수를 빠르게 확인하고, 큐 내용을 살펴보며, 병목 현상을 식별합니다.
성능 고려사항
페이지네이션
모든 목록 작업은 대규모 데이터 세트를 효율적으로 처리하기 위해 페이지네이션(커서 기반 또는 토큰 기반)을 지원합니다.
캐싱 전략
- 서버 목록은 명시적인 새로 고침이 있을 때까지 캐시됩니다.
- 큐/토픽 세부 정보는 5분 TTL로 캐시됩니다.
- 메시지 목록은 절대 캐시되지 않으며(항상 최신)입니다.
연결 풀링
AWS 및 Azure SDK 클라이언트는 연결 풀링을 사용하여 오버헤드를 최소화하고 연속 작업에 대한 응답 시간을 개선합니다.
보안 모범 사례
Nanuq가 하는 일
- 모든 자격 증명을 휴식 시 암호화(AES‑256).
- 민감한 데이터(비밀번호, 키, 토큰)를 절대 로그에 남기지 않음.
- 프런트엔드‑백엔드 간 모든 통신에 HTTPS 사용.
- 프런트엔드와 백엔드 모두에서 사용자 입력을 검증.
여러분이 해야 할 일
- 환경별 자격 증명을 사용(개발 환경에 프로덕션 자격 증명 공유 금지).
- 클라우드 계정에 MFA 활성화.
- 자격 증명을 정기적으로 교체.
- 무단 접근에 대한 활동 로그 검토.
- VPN 뒤에 배포하거나 네트워크 접근을 제한.
Source: …
제한 사항 및 향후 로드맵
현재 제한 사항
- 내장된 … (필요에 따라 목록을 계속하십시오)
사용자 인증 (단일 사용자 모드)
- 역할 기반 접근 제어(RBAC) 없음
- DPAPI 기반 암호화를 위한 Windows에만 제한(크로스‑플랫폼 암호화 예정)
로드맵 (기여 환영!)
- 메트릭 및 알림 (Prometheus 통합)
- Kafka용 스키마 레지스트리 지원
- 더 많은 클라우드 플랫폼 (Google Cloud Pub/Sub)
- 다크‑모드 UI 테마
Contributing
Nanuq은 오픈 소스이며 기여를 환영합니다.
Areas We’d Love Help With
- Cross‑platform encryption (replace Windows DPAPI)
- Unit and integration test coverage
- Documentation improvements
- Bug reports and feature requests
Check out the GitHub repository to get started.
결론
Nanuq 2.0은 메시징 및 캐싱 플랫폼 관리를 단순화하는 데 있어 중요한 진전을 나타냅니다. 다섯 개의 플랫폼을 하나의 인터페이스로 통합하고 엔터프라이즈‑급 보안을 제공함으로써 개발자의 인지 부하를 줄이고 다중‑플랫폼 워크플로를 보다 효율적으로 만들고 있습니다.
이 프로젝트는 최신 .NET 및 Vue.js로 구축되었으며, 클린‑아키텍처 원칙을 따르고 추가 플랫폼을 쉽게 확장할 수 있도록 설계되었습니다.
직접 사용해 보시고, 댓글로 의견을 알려 주세요!
Links
- GitHub:
- Issues:
프로젝트에서 관리하고 있는 메시징 플랫폼은 무엇인가요? 이런 통합 인터페이스가 워크플로에 도움이 될까요? 아래에 생각을 공유해 주세요!