-
Notifications
You must be signed in to change notification settings - Fork 0
project current status
JJong-03 edited this page Jun 17, 2026
·
5 revisions
기준일: 2026-06-14
통합 상태: 워크스트림 A·B 코드·문서를 단일 repo로 통합 완료(2026-06-10 merge, 코드 충돌 0·앱별 테스트 통과).
이후 Hub 재생성/Admin UI/factory-b 등록 이력이 추가됐으며, Dashboard/Data/Reporting 전체
end-to-end smoke test는 실환경 기준 별도 검증 대기
| 항목 | 상태 | 내용 |
|---|---|---|
| Safe-Edge K3s | 배포 검증 완료 | Raspberry Pi 3-node K3s, Longhorn, MetalLB, Grafana, InfluxDB 기반 운영형 Spoke |
| 데이터 생산 | 구현 완료 |
factory-a-log-adapter가 InfluxDB/Kubernetes 상태를 canonical JSON으로 변환 |
| 송신 경로 | 구현 완료 | Longhorn PVC outbox와 edge-iot-publisher Pod를 통해 AWS IoT Core로 MQTT 송신 |
| Image snapshot | 구현 완료 |
snapshot-uploader가 presigned URL을 받아 S3 image_snapshot/에 binary를 업로드하고 metadata event를 남김 |
| 통합본 검증 | 대기 | 이 저장소 기준 재배포와 end-to-end smoke test는 별도 실행 필요 |
| 항목 | 상태 | 내용 |
|---|---|---|
| Spoke 유형 | 배포 검증 완료 이력 있음 | Factory B는 Mac mini VM, Factory C는 Windows VM 테스트베드 Spoke |
| 데이터 생산 | 구현 완료 | VM 로컬 dummy generator가 /var/lib/aegis/outbox에 canonical JSON 작성 |
| 송신 경로 | 구현 완료 | K3s edge-iot-publisher가 hostPath outbox를 읽어 IoT Core로 송신 |
| 운영 기준 | 구현 완료 | local dummy publisher systemd는 표준 경로가 아니며 smoke/legacy 용도로만 남김 |
| 통합본 검증 | 대기 | Hub 재등록, publisher 안전성 점검, S3 raw 적재 smoke test는 별도 실행 필요 |
| 항목 | 상태 | 내용 |
|---|---|---|
| Control / Management VPC | 구현 완료 |
infra/hub가 VPC, public/private subnet, EKS Hub, IRSA를 관리 |
| NAT Gateway | 구현 완료 | 단일 NAT Gateway. 두 AZ private route가 같은 NAT를 공유 |
| EKS Hub | 배포 검증 완료 이력 있음 | Hub rebuild, ArgoCD, Grafana, AWS Load Balancer Controller 검증 기록 있음 |
| Tailscale / ArgoCD | 구현 완료 및 일부 재검증 완료 | Hub ArgoCD가 Tailscale 경유로 Factory K3s API에 접근. Phase 8 이후 factory-b register/sync 이력 있음 |
| AMP / Prometheus Agent | retired | 과거 검증 이력은 있으나 active 기본 구성으로 표현하지 않음 |
| 항목 | 상태 | 내용 |
|---|---|---|
| IoT Rule | 구현 완료 | factory별 topic을 S3 raw/와 DataProcessor Lambda로 연결 |
| DataProcessor | 구현 완료 및 테스트 통과 | canonical JSON 정규화, Risk 계산, DynamoDB/S3 processed 저장 |
| DynamoDB key model | 구현 완료 |
FACTORY#.../LATEST, HISTORY#STATE#..., GRAPH#5M#..., CLOUD#infra, ALERT#... 사용 |
| TTL | 구현 완료 |
GRAPH#5M 48h, HISTORY#STATE 목표 2h(마지막 문서화된 운영값 48h), LATEST TTL 없음 |
| DataProcessorRefresh1m | 구현 완료 | 입력이 끊긴 factory의 LATEST, HISTORY#STATE, S3 state_snapshot 갱신 |
| GraphAggregator5m | 구현 완료 및 테스트 통과 |
HISTORY#STATE를 5분 단위로 집계해 GRAPH#5M과 S3 processed_agg/ 저장 |
| RiskAlertDispatcher | 구현 완료 및 테스트 통과 | S3 processed snapshot 기반 alert, DynamoDB dedupe/cooldown, Slack routing |
| SnapshotPresigner | 구현 완료 및 테스트 통과 | image snapshot upload용 presigned URL HTTP API |
| 항목 | 상태 | 내용 |
|---|---|---|
| Frontend | 구현 완료 | React/Vite SPA. 메뉴는 Fleet Overview, Factory Detail, Cloud Infra, Image Snapshots, AI Chat, Daily Reports, User Management |
| Backend API | 구현 완료 | ECS Fargate FastAPI. DynamoDB/S3/RDS/Redis/Cognito와 연동 |
| Auth | 구현 완료 | Cognito Hosted UI와 JWT 기반 접근 |
| WebSocket | 구현 완료 | DynamoDB Streams -> Lambda notifier -> Redis -> backend WebSocket push |
| RDS | 구현 완료 | 단일 PostgreSQL 인스턴스, 2AZ subnet group, multi_az=false
|
| 통합본 테스트 | 통과 | 2026-06-10 통합 기준 dashboard-backend pytest 223개, dashboard-web lint/test 84개/build 통과. 실환경 smoke test는 별도 |
| 항목 | 상태 | 내용 |
|---|---|---|
| Step Functions | 구현 완료 |
PrepareReportWindow 후 target별 Map. factory와 cloud_infra 분기를 처리 |
| Lambda 수 | 구현 완료 | 7개: PrepareReportWindow, AggregateFactoryHour, MergeFactoryDaily, GenerateFactoryReport, AggregateCloudInfraHour, MergeCloudInfraDaily, GenerateCloudInfraReport |
| Bedrock 모델 | 구현 완료 | 코드와 Terraform 기본값은 anthropic.claude-3-sonnet-20240229-v1:0. 실제 배포값은 환경 변수로 구분 필요 |
| 출력 | 구현 완료 | S3 reports/daily/에 일일 보고서 저장. Dashboard에서 조회 및 DOCX 내보내기 |
| 배포 검증 | 배포 검증 완료 이력 있음(범위 제한) | 과거 운영 문서에 factory-b Bedrock 실호출, Step Functions 수동 실행, S3 산출물 검증 기록 있음. factory-a/c와 통합본 전체 target 실행은 별도 |
| 항목 | 상태 | 내용 |
|---|---|---|
| CloudInfra Fast collector | 구현 완료 | ECS/ALB/RDS/Redis/CloudFront/DLQ 등 빠른 상태를 CLOUD#infra/LATEST.fast와 history에 저장 |
| CloudInfra Slow collector | 구현 완료 | EKS/Kubernetes/ArgoCD/S3 freshness 등 느린 지표를 CLOUD#infra/LATEST.slow와 history에 저장. OpenSearch는 후속/목표 범위 |
| Alerting | 구현 완료 | RiskAlertDispatcher가 danger/critical, collector error, ALB unhealthy 등 alert state를 관리 |
| Snapshot | 구현 완료 | image binary는 IoT Core를 통과하지 않고 S3로 업로드. MQTT에는 metadata event만 전달 |
| WAF | 계획/선택 구성 | 현재 infra/data-dashboard* Terraform에서 WAF 리소스는 확인되지 않음 |
Phase 8 기록 기준 다음 앱 테스트가 통과했다.
| 명령 | 결과 |
|---|---|
python -m pytest -q apps/data-processor |
29 passed |
python -m pytest -q apps/cloud-infra-collector |
16 passed |
python -m pytest -q apps/graph-metrics-aggregator |
10 passed |
python -m pytest -q apps/risk-alert-dispatcher |
29 passed |
python -m pytest -q apps/snapshot-presigner |
7 passed |
python -m pytest -q apps/daily-report-generator |
15 passed |
| dashboard-backend pytest | 223 passed |
| dashboard-web lint/test/build | lint 통과, 84 passed, build 통과 |
주의: 모든 앱 test path를 한 번에 실행하면 tests package import collision이 발생한다. 앱별로
나누어 실행하는 방식을 기준으로 한다.
| 영역 | 상태 | 사유 |
|---|---|---|
| Dashboard HTTP/API smoke | 부분 이력 있음, 통합본 검증 대기 | Phase 8 이후 Admin UI/ALB/Route53/healthy target 검증 이력이 있으나 Dashboard 기능별 API smoke는 별도 확인 필요 |
| IoT -> S3/DynamoDB/Dashboard end-to-end | 통합본 검증 대기 | 실환경 publish smoke test 미실행 |
| Daily report generation/export smoke | 통합본 검증 대기 | 통합본 기준 Step Functions 실행 미실행 |
| CloudInfra Fast/Slow live snapshot | 통합본 검증 대기 | 실환경 collector smoke test 미실행 |
| Snapshot presigner upload smoke | 통합본 검증 대기 | 실환경 upload/API smoke test 미실행 |
| 항목 | 상태 | 내용 |
|---|---|---|
terraform fmt -check |
통과 | foundation, hub, data-pipeline, reporting, data-dashboard, data-dashboard-permanent, data-dashboard-dns |
| backend-free init | 통과 이력 있음 | provider/module registry 접근 승인 후 체크된 root에서 성공 |
terraform validate |
부분 재검증 이력 있음 | Phase 8에서는 provider plugin schema loading/handshake 문제로 미완료였고, 이후 일부 root는 backend access 기반 검증/plan 이력이 추가됨. 환경을 고정해 재확인 필요 |
terraform state list |
일부 완료 이력 있음 | Phase 8 이후 Foundation/Hub/Data-Pipeline/Reporting state ownership 확인 이력이 추가됨. 추가 apply/import/destroy 전 재확인 필요 |
| apply/destroy/import | 일부 완료 이력 있음 | Phase 8 이후 Hub destroy/rebuild 이력 있음. 추가 destructive 작업은 별도 승인과 보존 정책 재확인 필요 |
- Terraform provider가 정상 동작하는 환경에서 남은 root의
terraform validate와 read-only plan을 재확인한다. - backend/state ownership을 재확인한 뒤에만 추가 AWS/K3s smoke test 또는 destructive 작업을 실행한다.
- Dashboard/API/IoT/report/snapshot 실환경 smoke test를 실행한다.
- 대표 이미지의 편집 가능한 원본을 확보하거나 새 원본을 관리 대상으로 만들고, 본 문서의 보정 항목을 이미지에 반영한다.
- ADR 번호 충돌과 source-labeled Markdown 초안을 후속 Wiki 세션에서 최종 문장으로 정리한다.
실제 endpoint, 계정 번호, Tailnet IP, secret, token, certificate 원문은 공개 Wiki에 싣지 않는다. Safety Score는 높을수록 안전한 값으로 설명하고, 확인할 수 없는 AWS 현재 상태는 운영 이력 또는 검증 대기로 분리한다.
- 시스템 아키텍처
- 제어 & 데이터 플레인
- 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 채팅 어시스턴트