Skip to content

architecture hardware

JJong-03 edited this page Jun 17, 2026 · 4 revisions

하드웨어 배치 & 인프라 구성

물리 노드, VM Spoke, AWS managed runtime을 혼동하지 않도록 현재 배치와 역할을 분리해 정리한다.


factory-a — 운영형 Raspberry Pi Spoke

factory-a는 실제 Safe-Edge 운영 기준선이다.

노드 IP 역할 배치 기준
master 10.10.10.10 K3s control-plane, CoreDNS/metrics-server/Traefik/MetalLB, Grafana control-plane 안정성 우선
worker1 10.10.10.11 ArgoCD, Prometheus, InfluxDB, Longhorn 운영 파드, failover 대상 worker2 장애 시 AI/audio/BME 승계
worker2 10.10.10.12 AI, audio, BME280, edge data-plane 우선 배치 현장 장치/센서 workload preferred

서비스 VIP는 MetalLB로 제공한다.

서비스 주소
ArgoCD http://10.10.10.200
Longhorn http://10.10.10.201
Grafana http://10.10.10.202

factory-a workload 배치

master:
  - K3s server / Kubernetes control-plane
  - MetalLB / Traefik
  - Grafana

worker1:
  - ArgoCD
  - Prometheus
  - InfluxDB
  - Longhorn 운영 파드
  - worker2 장애 시 AI/audio/BME failover 대상

worker2:
  - safe-edge-integrated-ai
  - safe-edge-audio
  - bme280-sensor
  - edge-iot-publisher
  - factory-a-log-adapter

AI/audio/BME와 edge data-plane은 worker2 preferred, worker1 failover, master avoid 정책을 따른다. worker2가 NotReady가 되면 workload는 worker1에서 재기동되고, worker2가 Ready로 돌아오면 master의 OS cron 기반 failback이 순차 재배치를 수행한다.


snapshot uploader 제약

AI snapshot은 Longhorn RWO PVC가 아니라 node-local hostPath를 사용한다.

/app/snapshots
  -> /var/lib/safe-edge/snapshots

이 방식은 worker2 장애 시 RWO Multi-Attach 때문에 AI Pod가 worker1에서 ContainerCreating에 머무는 문제를 피하기 위한 운영 기준이다. Snapshot uploader는 worker2의 node-local snapshot 위치에 의존하므로 worker2 우선 배치와 함께 다룬다. worker2 장애 중에는 기존 runtime failover를 우선하고, snapshot 업로드 공백은 재기동 후 보정 대상이다.


factory-b — Mac mini VM 테스트베드

factory-b는 Mac mini 위 UTM VM으로 구성한 K3s 테스트베드다.

항목
Host Mac mini
VM Tool UTM
Guest OS Ubuntu Server LTS
K3s VM 기반 Spoke
입력 Dummy Sensor (stable-lab 성격)
목적 멀티 Spoke 배포, topic/prefix 분리, 수신 성공률, 지연시간, Dashboard 공장별 카드 분리 검증

factory-c — Windows VM 테스트베드

factory-c는 Windows PC 위 VirtualBox VM으로 구성한 K3s 테스트베드다.

항목
Host Windows PC
VM Tool VirtualBox
Guest OS Ubuntu Server LTS
K3s VM 기반 Spoke
입력 Dummy Sensor (noisy-vm 성격)
목적 다른 호스트/네트워크 조건에서도 Spoke 등록, GitOps 배포, MQTT topic 분리, Dashboard read model 분리가 유지되는지 검증

VM Spoke는 실제 센서 정확도 검증 환경이 아니다. 멀티 공장 제어/데이터 경로가 공장별로 분리되는지 검증하기 위한 환경이다.


Hub EKS — Control / Management VPC

Hub EKS는 물리 장비가 아니라 AWS managed Kubernetes runtime이다.

항목
Region ap-south-1
VPC Control / Management VPC 10.0.0.0/16
Cluster AEGIS-EKS
Kubernetes 1.34
Node group AEGIS-EKS-node
Instance t3.medium x 2, ON_DEMAND
AZ ap-south-1a, ap-south-1c
NAT 단일 NAT Gateway, 첫 번째 public subnet에 배치

Hub EKS의 private subnet에는 ArgoCD, Tailscale Operator/Connector, Grafana, AWS Load Balancer Controller가 배치된다. Admin UI는 public ALB/Ingress를 선택적으로 사용한다.


Data / Dashboard VPC — ECS Fargate Runtime

Dashboard는 K3s/EKS가 아니라 Data / Dashboard VPC의 ECS Fargate Backend가 담당한다.

항목
VPC Data / Dashboard VPC 10.20.0.0/16 기준
Public subnet ALB, NAT Gateway
Private app subnet ECS Fargate Backend, Lambda notifier, ElastiCache Redis
Private data subnet RDS PostgreSQL
NAT 단일 NAT Gateway, 첫 번째 public subnet에 배치
Backend ECS Fargate, 1 vCPU / 2 GiB 기준, desired/min 2
Web S3 SPA + CloudFront (+ WAF/IP 제한은 선택·계획 구성)
Auth Cognito Hosted UI

대표 이미지의 Data / Dashboard VPC CIDR은 논리 예시이며, 현재 Terraform 기본값은 10.20.0.0/16이다. 운영 기준은 Hub의 Control / Management VPC 10.0.0.0/16과 겹치지 않는 별도 CIDR을 사용한다는 점이다.

Data / Dashboard VPC는 DynamoDB Gateway endpoint와 S3 Gateway endpoint를 사용해 주요 managed service read/write가 NAT를 불필요하게 통과하지 않도록 한다. Secrets Manager 등 일부 외부 호출은 NAT 경로를 사용할 수 있다.


AWS managed / global services

아래 구성은 특정 하드웨어나 K3s/EKS 노드가 아니다.

서비스 역할
AWS IoT Core MQTT mTLS 수신, IoT Rule 실행
Lambda data processor telemetry 정규화, DynamoDB/S3 갱신
DynamoDB LATEST, HISTORY#STATE, GRAPH#5M, CLOUD#infra read model
S3 data bucket raw, processed, processed_agg, reports
Cognito Hosted UI, JWT 발급, Admin API
CloudFront (+ WAF/IP 제한) Dashboard SPA 전역 배포와 선택적 보호
Bedrock 일간 report generator의 선택적 요약 모델

Active / Optional / Retired

상태 구성
Active factory-a 3-node K3s, factory-b/c VM Spoke, Hub EKS, Data / Dashboard ECS Fargate, RDS PostgreSQL Single-AZ, Redis single node, VPC별 단일 NAT
Optional / On-demand Admin UI ALB, Bedrock report generator on-demand stack, WAF/IP 제한, RDS Multi-AZ, Redis HA
Retired / 과거 이력 AMP, Hub Prometheus Agent, Hub risk-normalizer 파드

관련 문서

Aegis-Pi Wiki

· 대표 문서 목록은 홈의 문서 탐색 표 참조

시작하기

요구사항

핵심 개념

아키텍처

컴포넌트 (Edge → Cloud → Dashboard)

Dashboard & 운영

시나리오 · 사례 · 참조

Clone this wiki locally