-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Minsoo KIM edited this page Jun 18, 2026
·
22 revisions
Aegis-Pi Risk Twin은 Factory Edge 데이터를 AWS IoT Core, DynamoDB, S3, ECS
Dashboard로 연결해 공장별 위험 상태와 운영 리포트를 한 화면에서 추적하는 통합 관제
플랫폼이다.
기준일: 2026-06-14
기준: 최종 통합본 (워크스트림 A·B 코드·문서 단일 repo 통합 완료, 2026-06-10 merge)
위 이미지는 전체 영역과 주요 흐름을 보여주는 대표 이미지다.
| 이미지 표기 | 현재 구현 기준 |
|---|---|
| Management VPC AZ별 NAT Gateway | Hub Terraform은 두 AZ subnet을 만들지만 NAT Gateway는 1개만 생성한다. 모든 private route가 단일 NAT를 공유한다. |
| Data/Dashboard VPC AZ별 NAT Gateway | Data/Dashboard Terraform도 단일 NAT Gateway를 첫 번째 public subnet에 둔다. |
| A/C Zone 각각의 RDS | RDS는 단일 PostgreSQL 인스턴스다. DB subnet group은 2AZ지만 multi_az=false다. |
| DynamoDB history TTL 단일 표기 |
GRAPH#5M은 48h, HISTORY#STATE는 목표 2h이나 마지막 문서화된 운영값은 48h다. LATEST는 TTL 없음이다. |
| 단일 report generator Lambda | Reporting은 Step Functions와 7개 Lambda로 구성된다. factory report와 cloud infra report 분기가 있다. |
| Bedrock Claude 3 Haiku | 코드와 Terraform 기본값은 Claude 3 Sonnet이다. 실제 배포값은 운영 환경 변수로 구분해 확인해야 한다. |
| Factory 공통 Edge-Agent | Factory A는 factory-a-log-adapter와 edge-iot-publisher, snapshot-uploader를 쓴다. Factory B/C는 VM 로컬 dummy generator와 hostPath outbox, K3s edge-iot-publisher를 쓴다. |
| CloudFront + WAF | 문서상 목표 진입 경로는 CloudFront + WAF다. 현재 Terraform 구현 확인 시 WAF 리소스가 없으면 보안 강화 계획/선택 구성으로 별도 표시한다. |
| 영역 | 현재 구현 |
|---|---|
| Factory A | Raspberry Pi 3-node K3s 기반 Safe-Edge 운영형 Spoke. InfluxDB/Kubernetes 상태를 factory-a-log-adapter가 canonical JSON으로 변환하고, outbox를 통해 IoT Core로 송신한다. |
| Factory B/C | VM 테스트베드 Spoke. VM 로컬 dummy generator가 hostPath outbox에 메시지를 쓰고, K3s edge-iot-publisher가 IoT Core로 송신한다. |
| Hub / Control VPC | EKS Hub, Hub ArgoCD, Tailscale, Grafana, AWS Load Balancer Controller 중심의 배포 및 운영 관측 영역이다. NAT Gateway는 단일 구성이다. Phase 8 이후 Hub 재생성과 Admin UI 검증 이력이 추가됐다. |
| Data pipeline | IoT Rule이 S3 raw/와 Lambda DataProcessor를 구동한다. DataProcessor는 DynamoDB LATEST, HISTORY#STATE, S3 processed/를 갱신한다. |
| Graph / freshness |
DataProcessorRefresh1m이 stale 상태를 갱신하고, GraphAggregator5m이 GRAPH#5M과 S3 processed_agg/를 만든다. |
| Alert / snapshot | RiskAlertDispatcher는 processed snapshot 기반으로 Slack alert와 DynamoDB dedupe state를 관리한다. SnapshotPresigner와 snapshot uploader는 image binary를 S3 image_snapshot/로 올리고 metadata만 pipeline에 태운다. |
| Dashboard VPC | CloudFront/S3 SPA, ALB, ECS Fargate FastAPI, Cognito, RDS PostgreSQL, Redis, Lambda notifier, DynamoDB Streams 기반 WebSocket push 구조다. |
| Reporting | EventBridge Scheduler가 Step Functions를 실행하고 7개 reporting Lambda가 시간별 집계, 일별 병합, Bedrock 보고서 생성을 수행한다. 결과는 S3 reports/daily/에 저장된다. |
현재 dashboard-web 라우팅과 사이드바 기준 구현된 메뉴는 다음과 같다.
| 메뉴 | 경로 | 설명 |
|---|---|---|
| Fleet Overview | / |
전체 factory 최신 상태와 risk 요약 |
| Factory Detail | /factory/:factoryId |
개별 factory 상세, 이력, 그래프 |
| Cloud Infra | /cloud-infra |
CloudInfra Fast/Slow collector read model 조회 |
| Image Snapshots | /image-snapshots |
AI 이벤트 이미지 스냅샷 갤러리(System 권한, presigned GET) |
| AI Chat | /chat |
자연어 질의 어시스턴트(상태·원인·추이·보고서·증빙 이미지) |
| Daily Reports | /reports |
일일 운영 리포트 조회와 DOCX 내보내기 |
| User Management | /admin/users |
Cognito/RDS 기반 사용자 관리 |
| 구분 | 상태 | 근거 |
|---|---|---|
| 최종 통합 | 통합 완료 | 워크스트림 A(Aegis-pi)·B(dashboard_vpc) 코드·문서를 단일 repo로 통합(2026-06-10 merge, 코드 충돌 0·앱별 테스트 통과). 최신 상태 기준은 docs/issues/SESSION_STATE.md
|
| Factory A baseline | 배포 검증 완료 | Safe-Edge K3s, failover/failback, Hub-Spoke 연결 이력 |
| Factory B/C testbed | 배포 검증 완료 이력 있음 | dummy generator, hostPath outbox, IoT Core/S3 raw 분리 적재 이력. Phase 8 이후 factory-b 재등록 및 sync 검증 이력 있음 |
| Data pipeline | 구현 완료 및 배포 검증 완료 이력 있음 | DataProcessor, GraphAggregator5m, CloudInfra collector, RiskAlertDispatcher 코드와 운영 문서 |
| Dashboard Web/API | 구현 완료 | ECS Fargate FastAPI와 SPA 코드 통합 완료. 2026-06-10 통합 기준 backend pytest 223개, web lint/test 84개/build 검증 통과. 실환경 기능별 smoke는 별도 |
| Reporting | 구현 완료, 검증 범위 제한 | Step Functions, 7 Lambda, Bedrock report, S3 report 산출물 코드가 통합됨. 운영 검증 이력은 factory-b 수동 실행 중심이며 factory-a/c와 통합본 smoke는 별도 |
| Terraform | 부분 검증 완료, 추가 검증 대기 |
terraform fmt -check 통과. Phase 8 이후 일부 root에서 backend access 기반 state/plan 작업 이력이 있으나 모든 후속 smoke test 전 state ownership 재확인 필요 |
| AWS/K3s smoke test | 통합본 검증 대기 | Phase 8에서 apply/destroy/import 및 실환경 smoke test는 수행하지 않음 |
| 영역 | 문서 |
|---|---|
| 사업 배경 | 사업 배경과 목표, 시스템 요구조건, 모니터링·서비스 확장 |
| 요구사항 분석 | 기능 요구사항, 비기능 요구사항, 인수 기준 및 산출물 |
| 현재 상태 | 현재 구현 상태 |
| 프로젝트 개요 | 프로젝트 개요, 로드맵, 용어집 |
| 아키텍처 | 시스템 아키텍처, 제어 플레인 & 데이터 플레인, Dashboard VPC |
| 데이터 | 데이터 생명주기, 클라우드 스토리지, IoT 데이터 계약 |
| 컴포넌트 | Edge AI 탐지, Factory-A Log Adapter, Edge IoT Publisher, Lambda Data Processor, Risk Score Engine, Risk Alert Dispatcher, Image Snapshot Pipeline |
| Dashboard | 사용자 플로우, 화면 구성, 데이터 모델 |
| 운영 | Hub 재시작, factory-b/c 테스트베드, IoT Fleet 연결성, Factory-A AI 지연시간, Dummy Generator 백테스트, Data Dashboard 운영, Data Pipeline 운영, Daily Report 운영, Alerting 운영, Image Snapshot 운영, 통합 Build/Destroy, AWS Hub 트러블슈팅 |
| 보안/참조 | 인증과 RBAC, 런타임 설정, S3 구조, API 명세, 비용 기준서 |
| 모범사례·문제해결 | 모범사례와 실패사례, AWS Hub 트러블슈팅 |
이 Wiki에는 실제 endpoint, 계정 번호, Tailnet IP, secret, token, certificate 원문을 싣지 않는다. 필요한 경우 리소스 역할과 경로 패턴만 일반화해서 설명한다.
- 시스템 아키텍처
- 제어 & 데이터 플레인
- 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 채팅 어시스턴트