Skip to content

concept spoke types

minsoo edited this page Jun 9, 2026 · 2 revisions

개념 - Spoke 타입 비교

Aegis-Pi는 실제 edge data-plane을 검증하는 production-edge Spoke와, 멀티 factory 수집/분리 흐름을 검증하는 testbed Spoke를 함께 운영한다.


Spoke 타입 정의

항목 production-edge testbed
대표 factory factory-a factory-b, factory-c
물리 환경 Raspberry Pi 3-node K3s Mac UTM VM / Windows VirtualBox VM
데이터 생산자 factory-a-log-adapter Pod worker VM 로컬 dummy generator systemd
데이터 원본 Safe-Edge InfluxDB + K3s API + snapshot directory dummy profile + 선택적 K3s workload 조회
factory_state 의미 실제 센서/AI/오디오 집계값 risk coverage용 synthetic 값
infra_state 의미 실제 K3s node/workload/device 상태 기본 fixed-ready synthetic node + 선택적 K3s workload
이미지 이벤트 Safe-Edge snapshot metadata event 현재 표준 생성 대상 아님
outbox 저장소 Longhorn PVC worker node hostPath
publisher edge-iot-publisher Pod edge-iot-publisher Pod
node topology master + worker1 + worker2 master + worker
목적 실제 edge data-plane 수집 multi-factory routing, dashboard, risk pipeline 검증

Factory A 데이터 경로

Factory A는 실제 Safe-Edge 기반 production-edge다. 물리 센서와 AI workload가 먼저 데이터를 만들고, data-plane 컴포넌트가 이를 공통 IoT 계약으로 변환한다.

Safe-Edge workloads
  bme280-sensor / safe-edge-integrated-ai / safe-edge-audio
  -> InfluxDB safe_edge_db

factory-a-log-adapter Pod
  -> InfluxDB 최근 window 집계
  -> K3s node/workload/device 상태 조회
  -> factory_state / infra_state canonical JSON
  -> /var/lib/aegis/outbox/*.json (Longhorn PVC)

snapshot-uploader Pod
  -> /var/lib/safe-edge/snapshots 이미지 파일 scan
  -> presigned PUT으로 S3 image_snapshot/... 에 이미지 업로드
  -> image_snapshot metadata JSON
  -> /var/lib/aegis/outbox/*.json

edge-iot-publisher Pod
  -> outbox JSON scan
  -> MQTT topic aegis/factory-a/{source_type}
  -> AWS IoT Core
  -> S3 raw / Lambda data-processor

factory-a-log-adapter는 publish를 하지 않는다. snapshot-uploader도 이미지 바이너리를 MQTT로 보내지 않고, 업로드 완료 후 metadata event만 outbox에 남긴다.


Factory B/C 데이터 경로

Factory B/C는 테스트베드형 Spoke다. dummy data는 실제 현장 센서 데이터가 아니며, risk rule과 pipeline freshness를 흔들어 보기 위한 synthetic 입력이다.

worker VM systemd
  factory_b_dummy_generator.py 또는 factory_c_dummy_generator.py
  -> factory_state / infra_state canonical JSON
  -> worker-local /var/lib/aegis/outbox/*.json

K3s edge-iot-publisher Pod
  -> 같은 worker node의 hostPath /var/lib/aegis/outbox mount
  -> MQTT topic aegis/factory-b/{source_type}
  -> MQTT topic aegis/factory-c/{source_type}
  -> AWS IoT Core
  -> S3 raw / Lambda data-processor

factory-b/c에서 generator는 Kubernetes Deployment가 아니다. master VM에서 generator를 실행하면 master-local outbox에만 파일이 쌓이므로, worker node의 publisher Pod가 읽지 못한다.


Factory B/C Profile 차이

항목 factory-b factory-c
environment_type vm-mac vm-windows
profile stable-lab noisy-vm
worker node_id worker1 factory-c-worker
sensor baseline 낮은 온습도, warning 중심 높은 온습도 jitter, critical 중심
AI event ai_warning ai_warning, ai_critical
infra event storage/device/pod/node warning pod/node/network/storage critical
pipeline gap 75-105초 warning gap 135-180초 critical gap, 301-330초 outage gap
outbox hostPath /var/lib/aegis/outbox hostPath /var/lib/aegis/outbox

Factory B/C 데이터는 실제 공장 상태로 해석하면 안 된다. Dashboard와 S3/DynamoDB에서 보이는 값은 테스트베드 profile이 의도적으로 만든 risk coverage 데이터다.


공통 IoT 경로

모든 Spoke는 같은 topic, raw partition, processed partition 규칙을 따른다.

edge-iot-publisher
  -> MQTT: aegis/{factory_id}/{source_type}
  -> AWS IoT Core
  -> IoT Rule
  -> S3 raw/{factory_id}/{source_type}/yyyy=.../mm=.../dd=.../{message_id}.json
  -> Lambda data-processor
  -> DynamoDB LATEST / HISTORY#STATE
  -> S3 processed/{factory_id}/{dataset}/yyyy=.../mm=.../dd=.../hh=.../{message_id}.json

허용 source_type은 코드 기준으로 factory_state, infra_state, image_snapshot 세 가지다.


구현 기준

Factory GitOps values 핵심 outbox 기준
factory-a factoryALogAdapter.enabled: true, snapshotUploader.enabled: true, edgeIotPublisher.enabled: true Longhorn PVC
factory-b factoryALogAdapter.enabled: false, outbox.type: hostPath, edgeIotPublisher.enabled: true worker hostPath
factory-c factoryALogAdapter.enabled: false, outbox.type: hostPath, edgeIotPublisher.enabled: true worker hostPath

관련 문서

Aegis-Pi Wiki

· 대표 문서 목록은 홈의 문서 탐색 표 참조

시작하기

요구사항

핵심 개념

아키텍처

컴포넌트 (Edge → Cloud → Dashboard)

Dashboard & 운영

시나리오 · 사례 · 참조

Clone this wiki locally