-
Notifications
You must be signed in to change notification settings - Fork 0
concept spoke types
Aegis-Pi는 실제 edge data-plane을 검증하는
production-edgeSpoke와, 멀티 factory 수집/분리 흐름을 검증하는testbedSpoke를 함께 운영한다.
| 항목 | 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는 실제 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는 테스트베드형 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 |
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 데이터다.
모든 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 |
관련 문서
- 시스템 아키텍처
- 제어 & 데이터 플레인
- Dashboard VPC 설계
- 하드웨어 배치
- Hub EKS 네임스페이스
- Tailscale Mesh VPN
- 데이터 생명주기
- 데이터 조회 모델
- 실시간 갱신 구조
- IoT 데이터 계약
- Reporting Pipeline
- 로컬 스토리지
- 클라우드 스토리지
- Edge Agent
- Edge AI 탐지
- Factory-A Log Adapter
- Dummy Sensor
- Edge IoT Publisher
- Lambda Data Processor
- Risk Normalizer
- Risk Score Engine
- Pipeline Status Aggregator
- Graph Aggregator 5m
- Cloud Infra Collector
- Daily Report Generator
- Risk Alert Dispatcher
- Image Snapshot Pipeline
- Dashboard Backend
- Dashboard Web
- AI 채팅 어시스턴트