이클립스 호노, 몽고DB 기반 디바이스 레지스트리 출시—확장 가능, 프로덕션 준비
공식 사이트 설명대로 이클립스 호노는 수천 개의 디바이스를 백엔드 서비스에 연결하는 통합 API를 제공하는 IoT 연결 플랫폼입니다. 사용 프로토콜에 관계없이 AMQP, CoAP, HTTP, MQTT를 기본 지원합니다. 플랫폼은 마이크로서비스로 구성되어 도커 컨테이너로 패키징되고 쿠버네티스나 유사 오케스트레이터에 배포됩니다.
핵심 구성요소 중 하나는 디바이스 레지스트리로, 테넌트, 디바이스, 자격증명을 저장합니다. 프로토콜 어댑터는 레지스트리를 참조해 테넌트와 디바이스가 등록되고 활성화되었는지 확인하고, 텔레메트리, 이벤트, 명령 응답을 수락하기 전 디바이스를 인증합니다. 레지스트리는 이 데이터 관리를 위한 HTTP API도 노출합니다.
호노 1.3.0 이전에는 파일 기반 레지스트리만 내장되어 있어 데모용으로는 적합하지만 수평 확장이 불가능해 프로덕션에는 부적합했습니다. 사용자는 실제 배포를 위해 자체 레지스트리를 구현해야 했습니다. 1.3.0 릴리스로 이 장벽이 사라졌습니다.
몽고DB 기반 디바이스 레지스트리
호노에는 이제 몽고DB에 데이터를 지속하는 프로덕션급 레지스트리가 포함됩니다. 테넌트, 디바이스, 자격증명이 별도 컬렉션에 저장되어 데이터베이스의 네이티브 샤딩과 수평 확장 기능을 자동으로 활용할 수 있습니다. 이로써 디바이스 수 증가에 따라 레지스트리를 쉽게 확장할 수 있습니다.
몽고DB 레지스트리의 HTTP 엔드포인트는 기본 인증으로 보호할 수 있습니다. 클라이언트는 리소스 관리를 위해 사용자명과 비밀번호를 제공해야 합니다. 구성 속성 hono.registry.http.authenticationRequired를 true 또는 false로 토글하여 이 기능을 켜고 끌 수 있습니다. 전체 구성 세부사항은 몽고DB 디바이스 레지스트리 구성 가이드를 참조하세요.
Helm으로 몽고DB 레지스트리와 함께 호노 배포하기
이클립스 IoT 패키지 저장소에 쿠버네티스용 호노 Helm 차트가 호스팅되어 있습니다. 기본적으로 차트는 파일 기반 레지스트리를 배포합니다. 아래 단계로 몽고DB 레지스트리와 함께 호노를 설치합니다.
- 이클립스 IoT 차트 저장소 추가:
$ helm repo add eclipse-iot https://eclipse.org/packages/charts
- 몽고DB 레지스트리로 호노를
hono 네임스페이스에 설치: $ helm install \ --set deviceRegistryExample.type=mongodb \ --set mongodb.createInstance=true \ --dependency-update \ -n hono eclipse-hono eclipse-iot/hono
deviceRegistryExample.type=mongodb 플래그가 기본 파일 기반 대신 몽고DB 구현을 선택합니다.
mongodb.createInstance=true 설정(기본값 false)으로 차트가 별도 마이크로서비스로 새 몽고DB 인스턴스를 배포하도록 합니다. 이미 몽고DB 배포가 있다면 false로 설정하고 연결 세부사항 제공: mongodb:
host: # 몽고DB 인스턴스 호스트명 또는 IP
port: # 리스닝 포트
dbName: # 디바이스 레지스트리용 데이터베이스명
username: # 선택적 인증 사용자명
password: # 선택적 인증 비밀번호
- 설치 후 Helm 차트 README의 지침으로 배포 검증.
이 단계로 호노는 견고한 몽고DB 백엔드로 대규모 디바이스 관리에 대비할 수 있습니다.