-
Notifications
You must be signed in to change notification settings - Fork 0
reference runtime config
기준일: 2026-06-09
configs/runtime/runtime-config.yaml은 원본 Aegis-Pi/Dashboard 설계에서 사용한
런타임 설정 초안이다. 현재 통합본에는 이 파일이 없으며, Lambda DataProcessor와
Terraform 배포 값은 이 YAML을 자동으로 읽지 않는다.
| 위치 | 존재 여부 | 현재 의미 |
|---|---|---|
merge/configs/runtime/runtime-config.yaml |
없음 | 통합본 런타임 입력이 아님 |
| 원본 Edge 저장소 (통합 전) | 있음 | 원본 Aegis-Pi 기준 최신 참조 초안 |
| 원본 Dashboard 저장소 (통합 전) | 있음 | Dashboard 원본에 복사된 더 오래된 참조 초안 |
따라서 Wiki에서 runtime-config 값을 설명할 때는 “현재 Lambda에 연결된 설정”이 아니라 “원본 참조 설정”으로 표현한다.
| 영역 | 실제 기준 |
|---|---|
| Safety Score 가중치/threshold |
apps/data-processor/processor/risk.py의 코드 상수 |
| HISTORY TTL | Terraform dynamodb_history_ttl_hours, Lambda env HISTORY_TTL_HOURS, 기본 2h |
| GRAPH TTL | Terraform graph_bucket_ttl_hours, Lambda env GRAPH_TTL_HOURS, 기본 48h |
| Factory freshness refresh 대상 | Terraform data_processor_factory_ids, 기본 factory-a,factory-b,factory-c
|
| CloudInfra fast/slow TTL | Terraform cloud_infra_fast_history_ttl_hours=6, cloud_infra_slow_history_ttl_hours=24
|
| Snapshot presigner token | Terraform snapshot_presigner_shared_token, 기본 empty로 token auth 비활성화 |
| Slack webhook | Secrets Manager 또는 SSM SecureString 이름/ARN. 실제 URL 값은 문서화하지 않음 |
| Dashboard backend | ECS task environment와 Secrets Manager secret injection |
| Reporting |
infra/reporting/variables.tf와 Lambda env. Bedrock 기본값은 Claude 3 Sonnet |
원본 Edge 저장소의 runtime-config.yaml 최상위 구조는 다음과 같다.
metadata:
schema_version: 0.1.0
owner: aegis-pi
status: draft
updated_at: "2026-05-20"
global:
risk_score: {}
fields: {}
telemetry: {}
dummy_data_defaults: {}
factories:
factory-a: {}
factory-b: {}
factory-c: {}원본 Dashboard 저장소의 사본은 updated_at: "2026-05-06"이고 Factory B/C 상태가
planned로 남아 있다. 현재 Wiki의 Factory B/C 설명은 이 오래된 사본이 아니라
이 저장소와 운영 이력을 기준으로 한다.
원본 YAML은 높은 점수가 안전한 Safety Score라는 방향은 현재 코드와 같다.
| 항목 | 원본 YAML |
|---|---|
| 총점 | 100 |
| Safe | 85-100 |
| Warning | 50-84 |
| Danger | 0-49 |
| 방향 | 높을수록 안전 |
하지만 현재 Lambda DataProcessor가 사용하는 가중치는 YAML과 다르다.
| 필드 | 원본 YAML weight | 현재 processor/risk.py weight |
현재 연결 상태 |
|---|---|---|---|
temperature |
15 | 10 | 코드 상수 |
humidity |
10 | 5 | 코드 상수 |
pressure |
없음 | 5 | 코드 상수 |
ai_event_rate |
10 | 15 | 코드 상수 |
node_status |
20 | 20 | 코드 상수 |
pod_health |
15 | 15 | 코드 상수 |
device_availability |
없음 | 10 | 코드 상수 |
data_freshness |
15 | 10 | 코드 상수 |
storage_pressure |
10 | 5 | 코드 상수 |
network_reachability |
5 | 5 | 코드 상수 |
현재 risk 계산은 factory별 YAML override를 읽지 않는다. Factory C의
network_reachability/storage_pressure override는 참조 설정으로만 남아 있다.
| Factory | 원본 YAML 의미 | 현재 Wiki 해석 |
|---|---|---|
| Factory A |
production-edge, physical Raspberry Pi, dummy disabled |
active 운영형 Spoke. InfluxDB/K8s 상태를 adapter가 변환 |
| Factory B |
testbed, Mac mini VM, dummy enabled |
active testbed 이력. 실제 공장 데이터가 아니라 synthetic canonical event |
| Factory C |
testbed, Windows VM, dummy enabled |
active testbed 이력. 실제 공장 데이터가 아니라 synthetic canonical event |
Factory B/C를 실제 공장 생산 데이터로 설명하지 않는다.
원본 YAML에는 region, S3 bucket, IoT topic root, AMP alias 같은 식별자가 들어 있다 (통합 전 참조값). 현재 문서에서는 다음 원칙을 적용한다.
| 항목 | 문서화 기준 |
|---|---|
| AWS region | 예시/기본값 수준으로 표기 가능 |
| S3 bucket/prefix | 공개된 코드 기본값과 prefix family만 표기 |
| IoT topic root | topic pattern만 표기 |
| endpoint, 계정 번호, Tailnet IP | 공개 Wiki에 기록하지 않음 |
| webhook URL, token, certificate, private key | 값 원문을 기록하지 않음 |
| AMP alias | retired 이력 또는 원본 참조 값으로만 취급 |
현재 apps/data-processor/README.md도 runtime-config가 아직 Lambda package 또는
배포 입력으로 연결되지 않았다고 설명한다. 이 제한 때문에 다음을 현재 동작으로 쓰지
않는다.
| 제한 | 영향 |
|---|---|
| YAML weight 미연결 | Safety Score 계산은 processor/risk.py 변경 없이는 바뀌지 않음 |
| factory override 미연결 | Factory별 weight override가 적용되지 않음 |
| dummy profile 미연결 | Factory B/C dummy generator의 실제 동작은 해당 앱/운영 설정을 별도 확인 |
| telemetry 미연결 | Terraform 변수와 Lambda/ECS environment가 실제 배포 기준 |
-
runtime-config.yaml을 통합본에 둘지, S3/SSM/AppConfig 같은 배포 입력으로 둘지 결정한다. - DataProcessor가 설정을 읽을 경우 schema version, validation, fallback 정책을 추가한다.
- Safety Score weight 변경 시 Dashboard와 report 설명이 함께 바뀌도록 검증을 둔다.
- 원본 YAML의 AMP 관련 값은 active 구성으로 되살릴 때만 별도 ADR로 재검토한다.
- 시스템 아키텍처
- 제어 & 데이터 플레인
- 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 채팅 어시스턴트