-
Notifications
You must be signed in to change notification settings - Fork 0
tech stack
minsoo edited this page Jun 9, 2026
·
7 revisions
기준일: 2026-06-09
구현 기준: /home/vicbear/Aegis-merge/merge
이 문서는 현재 active 기술과 retired/planned 항목을 분리한다. 과거 Hub 중심 Prometheus Agent/AMP 구성, 독립 Risk Normalizer/Risk Score Engine 서비스, 서버리스 Dashboard API 초안은 현재 기본 구조로 보지 않는다.
| 상태 | 의미 |
|---|---|
| active | 현재 코드, Terraform, Helm chart, 운영 절차의 기본 경로 |
| retired | 과거 구현·검증 이력이 있으나 현재 기본 구성에서 제거되었거나 재설치하지 않는 항목 |
| planned | 후속 보강 또는 선택 구성. 현재 구현으로 표현하지 않음 |
| reference | 원본 저장소나 설계 입력으로만 남은 참조 항목 |
| 기술 | 상태 | 현재 역할 | 기준 |
|---|---|---|---|
| K3s | active | Factory A/B/C Spoke 런타임 | Factory A는 Raspberry Pi 3-node, B/C는 VM testbed |
Helm chart aegis-spoke
|
active | 공장별 workload packaging |
merge/charts/aegis-spoke, merge/envs/factory-*
|
| Hub ArgoCD + Tailscale | active | Hub에서 Factory K3s API로 GitOps sync | Factory API는 Tailscale 경유 |
| Longhorn | active for Factory A | Factory A InfluxDB/outbox PVC 기준선 | failover/failback 운영 이력 있음 |
| InfluxDB | active for Factory A | 센서, AI, sound, Kubernetes 상태 원천 |
factory-a-log-adapter 입력 |
factory-a-log-adapter |
active | Factory A 원천 상태를 canonical JSON으로 변환 | merge/apps/factory-a-log-adapter |
| VM dummy generator | active for Factory B/C | testbed canonical JSON 생성 | 실제 공장 데이터가 아니라 synthetic 데이터 |
edge-iot-publisher |
active | outbox JSON을 AWS IoT Core MQTT로 송신 | Factory A PVC, Factory B/C hostPath |
snapshot-uploader |
active for Factory A | presigned URL로 image binary를 S3에 직접 업로드 | IoT에는 metadata event만 송신 |
edge-agent |
reference | 통합 전/후속 개념 설명 | 현재 표준 송신 경로는 adapter/publisher 분리 |
| 기술 | 상태 | 현재 역할 | 기준 |
|---|---|---|---|
| Terraform | active | AWS 인프라 source of truth |
merge/infra/*, AWS provider ~> 6.0
|
| AWS EKS Hub | active | Control/Management VPC의 Hub Kubernetes | merge/infra/hub |
| Hub ArgoCD | active | Factory Spoke sync와 app 상태 확인 | Tailscale 등록 cluster 사용 |
| Tailscale | active | Hub-Spoke private control path | 공인 IP 없이 K3s API 접근 |
| AWS Load Balancer Controller | active | Hub Admin UI ingress/ALB | Hub rebuild 이력 있음 |
| GitHub Actions | active/planned split | image build, ECR push, manifest update 경로 | 워크플로 repo/role 가정은 후속 재확인 필요 |
| S3 backend + native lockfile | active | Terraform state 저장과 잠금 | backend/state ownership 확인 후 조작 |
| Hub risk-normalizer Pod | retired | 과거 Hub 기반 risk 계산 구상 | 현재 계산은 DataProcessor Lambda 내부 |
| 기술 | 상태 | 현재 역할 | 기준 |
|---|---|---|---|
| AWS IoT Core | active | Factory MQTT 수신 진입점 | factory별 topic rule |
S3 raw/
|
active | IoT 원본 보존 | IoT Rule S3 action |
| Lambda DataProcessor | active | canonical JSON 정규화, Safety Score, read model 갱신 | merge/apps/data-processor |
| DynamoDB FactoryStatus | active |
LATEST, HISTORY#STATE, GRAPH#5M, CLOUD#infra, ALERT#
|
foundation table |
S3 processed/
|
active | source별 처리 결과와 state snapshot | report/dashboard/alert 입력 |
DataProcessorRefresh1m |
active | 입력 중단 factory freshness 갱신 | EventBridge schedule |
GraphAggregator5m |
active | 5분 graph bucket 생성 |
GRAPH#5M, S3 processed_agg/
|
| CloudInfra Fast Collector | active | ECS/ALB/RDS/Redis/CloudFront/DLQ 등 빠른 상태 수집 | 1분 주기 Lambda |
| CloudInfra Slow Collector | active | EKS, NAT, OpenSearch, S3 freshness 등 느린 상태 수집 | 5분 주기 Lambda |
| RiskAlertDispatcher | active | processed snapshot 기반 Slack alert, dedupe, cooldown | notifier와 별도 Lambda |
| SnapshotPresigner | active | image snapshot presigned PUT URL 발급 | HTTP API + Lambda |
| Risk Normalizer | active as module | IoT payload 정규화 모듈 | 독립 서비스가 아님 |
| Risk Score Engine | active as module | Safety Score 계산 모듈 |
processor/risk.py, 독립 서비스가 아님 |
| Pipeline Status Aggregator | active as module | freshness와 pipeline status 계산 | DataProcessor 내부 모듈 |
| 기술 | 상태 | 현재 역할 | 기준 |
|---|---|---|---|
| React 18 + Vite 6 | active | Dashboard SPA | merge/apps/dashboard-web/package.json |
| TypeScript 5.6, Vitest, ESLint | active | frontend build/test/lint toolchain |
node_modules 설치 후 재검증 필요 |
| CloudFront + S3 | active | SPA 정적 배포 | permanent stack과 DNS stack 분리 |
| Cognito Hosted UI | active | OIDC Authorization Code + PKCE | JWT 검증과 RDS RBAC 병행 |
| ALB + ECS Fargate | active | Dashboard Backend 실행 경로 | 1 vCPU/2 GiB 기본 task |
| FastAPI + Uvicorn | active | REST API와 WebSocket endpoint | merge/apps/dashboard-backend |
| DynamoDB/S3 read-only access | active | factory, graph, cloud infra, report 조회 | backend task role |
| RDS PostgreSQL | active | 사용자, 공장, 권한 metadata | 단일 DB instance, 2AZ subnet group, multi_az=false
|
| ElastiCache Redis | active | notifier/backend Pub/Sub | TLS, AUTH token, single shard |
| Lambda notifier | active | DynamoDB Streams를 Redis Pub/Sub로 전달 | Dashboard WebSocket push용, alert dispatcher와 별도 |
| 서버리스 Dashboard API 초안 | retired | 초기 Dashboard API 초안 | 현재 API 런타임은 ALB + ECS Fargate + FastAPI |
| WAF | planned | 공개 endpoint 보안 강화 후보 | 현재 Terraform 리소스 미확인 |
| 기술 | 상태 | 현재 역할 | 기준 |
|---|---|---|---|
| EventBridge Scheduler | active | 매일 00:30 KST 기준 report workflow 시작 | UTC cron 30 15 * * ? *
|
| Step Functions | active | factory/cloud_infra report orchestration | target별 Map 처리 |
| Reporting Lambdas 7개 | active | window 준비, 시간별 집계, 일별 병합, Bedrock 생성 | merge/infra/reporting/locals.tf |
| Bedrock Claude 3 Sonnet | active default | report 초안 생성 | 기본 model ID anthropic.claude-3-sonnet-20240229-v1:0
|
S3 reports/daily/
|
active | Markdown/metadata/context/report 산출물 저장 | Dashboard 조회 및 DOCX export 입력 |
| DOCX export | active | Dashboard에서 보고서 다운로드 |
docx frontend dependency |
| 단일 report generator Lambda | retired | 초기 단순 구조 표현 | 현재는 Step Functions + 7 Lambda |
| 기술 | 상태 | 현재 역할 | 기준 |
|---|---|---|---|
| ECR | active | backend/edge image 저장소 | build script와 workflow 대상 |
| Docker | active | app image build | dashboard-backend, edge apps |
| Build/Destroy scripts | active | 보호 리소스 보존형 운영 절차 |
merge/scripts/build, merge/scripts/destroy
|
terraform fmt -check |
active verification | Phase 8 기준 주요 root 통과 | validate는 환경 이슈로 재확인 필요 |
| AWS/K3s smoke test | planned verification | end-to-end 동작 확인 | state ownership 확인 후 실행 |
| 기술 | 상태 | 현재 역할 | 기준 |
|---|---|---|---|
| Hub Grafana | active | Hub/Admin UI 관측 화면 | AMP datasource는 retired 이력 |
| Local Grafana | active for Factory A | Factory A local InfluxDB/Prometheus 시각화 | edge baseline |
| CloudWatch Logs/Metrics | active | Lambda, ECS, ALB, RDS, Redis, scheduler 관측 | CloudInfra collector 입력 |
| CloudInfra read model | active | Dashboard Cloud Infra 화면과 alert 입력 | DynamoDB/S3 processed |
| Slack webhook alert | active optional | RiskAlertDispatcher scope별 알림 전송 | Secrets Manager/SSM value는 문서화하지 않음 |
| AMP | retired | 과거 중앙 메트릭 저장 검증 | 비용 최적화 후 active 기본 구성 제외 |
| Hub Prometheus Agent | retired | 과거 AMP remote_write 송신 | 재설치하지 않는 cleanup 대상 |
configs/runtime/runtime-config.yaml은 통합본 merge/에는 존재하지 않는다. 원본
Aegis-pi/와 dashboard_vpc/에 남은 참조 설정이며, 현재 Lambda DataProcessor는 이
YAML을 읽지 않고 Terraform 환경변수와 코드 상수로 동작한다. 자세한 내용은
런타임 설정을 따른다.
- 시스템 아키텍처
- 제어 & 데이터 플레인
- 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 채팅 어시스턴트