-
Notifications
You must be signed in to change notification settings - Fork 0
reference cost estimate
기준일: 2026-06-14
상태: 구현 기준 비용 산정 (온디맨드, ap-south-1)
근거: docs/issues/SESSION_STATE.md, docs/changes/0030-ecs-backend-autoscaling.md, docs/ops/25_daily_factory_report_cost.md (docs/ops/15_aws_cost_baseline.md는 과거 baseline 참고)
이 문서는 Aegis-Pi를 구성하는 AWS 리소스의 월 추정 비용을 산출물(비용 기준서)로 정리한다.
모든 수치는 세금·크레딧·Free Tier·Savings Plans·환율을 반영하지 않은 온디맨드 기준이며,
기본 운영 리전은 ap-south-1(CloudFront/ACM은 us-east-1 예외)이다. 실제 청구액은 리전 가격과
Free Tier 적용 여부에 따라 달라질 수 있다.
Aegis-Pi 비용은 독립 생명주기를 갖는 VPC/Reporting 계층과 telemetry 사용량 계층으로 나뉜다. 이 프로젝트는 상시 가동이 아니라 작업 시에만 스택을 build하고 사용 후 destroy하는 데모 운영 패턴을 기준으로 하며, 이것이 실비를 좌우하는 가장 큰 변수다.
| 계층 | 상시 가동 시 | 데모 운영 시 | 비고 |
|---|---|---|---|
| Control / Management VPC (Hub) | ~$188 / 월 | 가동 시간 비례 | EKS·EC2·NAT 중심 고정비용 |
| Data / Dashboard VPC | ~$178 / 월 | ~$8 / 월 (16h) | ECS·NAT·ALB·RDS·Redis 중심 |
| Data Pipeline usage | 단일 공장 |
가동 시간 비례 | IoT·Lambda·S3·DynamoDB·Alert·CloudInfra Collector |
| Reporting (on-demand) | — | ~$11 ~ 16 / 월 | 필요 시 배포·검증 후 destroy |
두 VPC는 별도 스택이므로 동시에 상시 가동하면 비용이 합산된다. 실제 운영은 필요한 계층만 켜고 검증 후 내리는 방식으로 대부분의 고정비용을 회피한다.
기본 target 상태(Admin UI ALB 없음, AMP 없음, NAT Gateway 1개, EKS Container Insights disabled) 기준 상시 가동(730h) 고정비용이다.
| 비용 항목 | 수량 | 시간당 | 월(730h) |
|---|---|---|---|
| EKS standard cluster | 1 | $0.1000 | $73.0 |
EC2 t3.medium
|
2 | $0.0896 | $65.4 |
| NAT Gateway (hourly) | 1 | $0.0560 | $40.9 |
| NAT Elastic IP | 1 | $0.0050 | $3.65 |
| EBS gp3 (40 GiB) | 40 GiB | $0.0050 | $3.65 |
| KMS customer managed key | 1 | $0.0014 | $1.0 |
| Route53 public hosted zone | 1 | $0.0007 | $0.5 |
| 고정 합계 (ALB 없음) | $0.2577 | ~$188.1 |
비용 비중은 EKS control plane ~39%, EC2 ~35%, NAT Gateway ~22%로 세 항목이 전체의 약 96%다.
| 옵션 | 추가 비용 | 비고 |
|---|---|---|
| Admin UI Ingress(Public ALB) 활성화 | +$0.0419 / 시간 (~$30.5 / 월) | 기본은 비활성, Tailscale로 접근 |
| CloudWatch Container Insights(EKS observability) | +$65~75 / 월 | 기본 OFF. 2-node 현재 규모 기준 |
CloudInfra Fast/Slow collector는 Container Insights를 켜지 않고 EKS/ECS 상태를 DynamoDB/S3 read
model로 요약 저장하는 비용 절감 경로다. 비용 동인은 CloudWatch GetMetricData(사용률 metric
개수 × 수집 주기)이며, 상시 가동 기준 $1117/월(Container Insights 전체 상시 ON은 $6575/월).
데모 build/destroy 패턴에서는 stack 가동 시간만 과금되어 $13 수준으로 떨어진다. 수집 원칙과
비용 레버는 Cloud Infra Collector를 참조한다.
| 사용 패턴 | 월 가동 시간 | 기본 비용 | Observability 포함 |
|---|---|---|---|
| 하루 4시간 × 20일 | 80시간 | ~$20.6 |
|
| 하루 8시간 × 20일 | 160시간 | ~$41.2 |
|
| 하루 8시간 × 30일 | 240시간 | ~$61.8 |
|
| 상시 운영 | 730시간 | ~$188.1 |
|
상시 가동(730h) 고정비용이다. ECS backend는 1 vCPU / 2 GB task를 min 2개로 고정한 right-sizing 구성(ADR 0030) 기준이다.
| 비용 항목 | 사양 | 월(730h) |
|---|---|---|
| ECS Fargate backend | 1 vCPU / 2 GB × 2 task | $72.08 |
| NAT Gateway + Elastic IP | 단일 AZ | $44.53 |
| ALB + LCU + Public IPv4 | HTTPS | $29.57 |
RDS PostgreSQL db.t4g.micro + gp3 20 GiB |
Single-AZ | $17.95 |
ElastiCache Redis cache.t4g.micro
|
단일 노드 | $11.68 |
| Secrets Manager | 4 secret | $1.60 |
| Route53 hosted zone | Dashboard 도메인 | $0.50 |
| CloudWatch alarms | 4 (대부분 Free Tier) | ~$0.40 |
| ECR backend image storage | ~0.5 GB | ~$0.05 |
| 고정 합계 (상시 가동) | ~$178.35 |
참고: ECS right-sizing(ADR 0030) 적용 전 추정치는 상시 ~$125/월이었다. ECS task를 0.5 vCPU 단일에서 1 vCPU 2개 고정으로 올리면서 고정비용이 ~$178로 상향됐고, 대신 부하 상황의 CPU 포화· 5xx 응답 문제가 해소됐다.
| 운영 패턴 | 고정 | 사용량 | 합계 |
|---|---|---|---|
| 상시 가동 (24/7) | ~$178.35 / 월 | Data Pipeline 별도 산정 | ~$180 / 월 |
| 데모 운영 (16h/월) | ~$7.73 / 월 | 소액 |
데모 운영 패턴은 상시 가동 대비 90% 이상을 절감하는 핵심 수단이다. factory-b/c를 추가하면 IoT 메시지 수에 비례해 Data Pipeline 사용량(S3 PUT, DynamoDB write, Lambda, alert)이 증가한다.
Dashboard VPC 자체의 고정비는 위 표의 ECS/NAT/ALB/RDS/Redis가 대부분이다. IoT 메시지, Lambda data processor, S3 raw/processed, DynamoDB read/write, alert dispatcher, CloudInfra collector처럼 공장 telemetry에서 발생하는 사용량은 Data Pipeline 상시 운영에서 별도로 산정한다.
Data Pipeline은 24/7 운영 시 데모 운영과 비용 양상이 다르다. 기준은 단일 공장 1개, 30일/730시간, 온디맨드, Free Tier·세금·크레딧 제외다.
| 기능 | 문서상 데이터량 | 단일 공장 월 처리량 | 비용 영향 |
|---|---|---|---|
factory_state 수집 |
3초 주기 | 864,000건 | IoT, Lambda, S3 raw/processed, DynamoDB write의 주 비용원 |
infra_state 수집 |
20초 주기 | 129,600건 |
factory_state보다 적지만 동일 처리 경로 사용 |
| DataProcessor refresh | 1분 × 공장 | 43,200회 | freshness/risk 재평가, state_snapshot 추가 생성 |
| GraphAggregator5m | 5분 × 공장 | 8,640 bucket | 장기 그래프 비용 절감용, 자체 비용은 작음 |
| CloudInfra Fast | 1분 | 43,200회 | CloudWatch GetMetricData 비용 발생 |
| CloudInfra Slow | 5분 | 8,640회 | EKS/Kubernetes/S3 freshness 요약 |
| AlertDispatcher |
state_snapshot + cloud snapshot |
약 1.1M event | S3 event, Lambda, S3 GET, DynamoDB alert state |
단일 공장에서도 factory_state 1건은 raw 1개와 processed factory_state/risk_score/state_snapshot
3개를 만들고, infra_state 1건은 raw 1개와 processed infra_state/state_snapshot 2개를 만든다.
따라서 24/7 단일 공장 기준 S3 PUT은 월 약 390만 건 이상으로 추정한다.
| 비용 항목 | 단일 공장 24/7 월 비용감 | 비고 |
|---|---|---|
| IoT Core 메시지 + IoT Rule |
|
factory_state + infra_state publish와 rule action |
| Lambda DataProcessor |
|
IoT trigger + 1분 refresh |
| S3 raw PUT | ~$5 | raw object 약 99만 건 |
| S3 processed / processed_agg / cloud snapshot PUT |
|
작은 JSON object 다수 |
| DynamoDB read/write |
|
item 크기와 read consistency에 따라 증가 |
| GraphAggregator / AlertDispatcher |
|
S3 event, S3 GET, DynamoDB alert state 포함 |
| CloudInfra Collector |
|
공장 수보다 cloud metric 수와 수집 주기에 좌우 |
| EventBridge Scheduler | 거의 0 | Free Tier 내면 사실상 0 |
| Data Pipeline 합계 | CloudWatch Logs, S3 저장 용량, 이미지 binary 증가분 제외 |
공장 1개를 추가할 때마다 factory_state 864,000건/월, infra_state 129,600건/월이 추가된다.
Management VPC와 Dashboard VPC는 대부분 고정비이므로 공장 수에 선형 비례하지 않고, 주로 Data
Pipeline 사용량만 증가한다.
| 추가 항목 | 공장 1개 추가 시 월 증가분 |
|---|---|
factory_state 3초 주기 |
+864,000건 |
infra_state 20초 주기 |
+129,600건 |
| IoT / IoT Rule | + |
| Lambda DataProcessor | + |
| S3 raw PUT | +~$5 |
| S3 processed PUT | + |
| DynamoDB read/write | + |
| GraphAggregator / AlertDispatcher | + |
| CloudInfra Collector | 거의 증가 없음 |
| 합계 | + |
상시 운영 기준 전체 비용은 다음처럼 잡는다.
| 공장 수 | Data Pipeline | Management VPC / Hub | Dashboard VPC | 기본 합계 |
|---|---|---|---|---|
| 1개 |
|
~$188 | ~$180 | |
| 2개 |
|
~$188 | ~$180 | |
| 3개 |
|
~$188 | ~$180 |
위 합계에는 Reporting, AI Chat, 이미지 snapshot binary 저장량, CloudWatch Logs, S3 저장 용량 누적, 외부 data transfer, Cognito MAU 증가분은 포함하지 않는다.
Reporting은 상시 리소스가 아니라 EventBridge → Step Functions → Lambda → Bedrock으로 구성된 on-demand 스택이다. 필요할 때 배포하고 검증 후 destroy한다.
| 실행 범위 | 비용 추정 |
|---|---|
| factory 1개 보고서 1회 | $0.12 ~ $0.18 |
| factory 3개 일일 1일 | $0.36 ~ $0.54 |
| factory 3개 일일 30일 | $10.8 ~ $16.2 / 월 |
주요 변수는 Bedrock token, Lambda billed duration, S3 GetObject request count다. 비용 통제를
위해 Bedrock에는 전체 raw가 아니라 요약 context(report-context.json)만 전달하고, context event
수와 byte를 상한으로 제한한다. 상세 실측 근거는 docs/ops/25_daily_factory_report_cost.md를 따른다.
| 상태 | 잔여 비용 | 내용 |
|---|---|---|
| Hub + data-pipeline destroy (foundation 유지) | ~$0.07 / 월 | 사실상 ECR 이미지 스토리지뿐 |
| Data/Dashboard 일시 root destroy (permanent 유지) | ~$0.55 / 월 | Route53 zone $0.50 + ECR ~$0.05 |
| destroy-all (foundation 포함) | $0.00 / 시간 | active fixed-cost 리소스 0개 |
영구 리소스(S3, ECR, DynamoDB, Route53 zone, Cognito 등)는 Hub/Dashboard 생명주기와 분리돼
스택을 내려도 유지된다. 전체 비용 제거가 필요하면 scripts/destroy/destroy-all.sh로 IoT·Hub·
foundation을 모두 내린다. 삭제 예약된 KMS key는 대기 기간 동안 별도 storage charge가 없다.
| 수단 | 효과 |
|---|---|
| 데모 운영 패턴 (build/destroy 사이클) | 상시 |
| NAT Gateway 단일 AZ (2 → 1) | NAT 고정비용 약 50% 절감 |
| RDS PostgreSQL Single-AZ | Multi-AZ 대비 인스턴스 1개만 사용 |
| Redis 단일 노드 | cluster mode 대비 ~30% 절감 |
| CloudInfra collector + Container Insights OFF | 관측 비용 월 |
| Multi-resolution history | 24h raw query 대신 GRAPH#5M 사용, DynamoDB hot item과 query 폭증 완화 |
| Reporting on-demand 배포 | 검증 시에만 비용 발생 |
후속 검토 후보로는 Fargate Spot(stateless task ~70% 절감), Bedrock 모델 다운그레이드, VPC Interface Endpoint(NAT data processing 우회) 등이 있다. 이는 로드맵의 비용 항목과 연계한다.
아래 항목은 기본 합계에 포함하지 않거나, 일부만 포함한다.
| 기능 | 월 비용감 | 제외/분리 이유 |
|---|---|---|
| Reporting / Daily Report | $0~16 / 월 | 실행 빈도 기반. 3개 공장 30일 매일 생성 시 $10.8~16.2 |
| AI Chat Bedrock | $0.4~2.5 / 월 | 월 720회 질의 기준, 모델 조합과 precise 비율에 따라 변동 |
| Image snapshot binary 저장 | 사용량 의존 | 이미지 이벤트 수와 파일 크기 고정값 없음 |
| CloudWatch Logs | 사용량 의존 | Lambda/ECS log volume과 retention에 따라 변동 |
| S3 저장 용량 누적 | 사용량 의존 |
raw/ 90일 후 Glacier IR, processed/ 365일 후 Standard-IA |
| Data transfer | 사용량 의존 | Dashboard 이미지 조회, S3/CloudFront 외부 전송량에 따라 변동 |
| Cognito | MAU 의존 | 사용자 수 기준. 핵심 고정비에서는 제외 가능 |
| Secrets Manager | 일부 포함 | Dashboard VPC의 4 secret $1.60은 포함. Data Pipeline Slack webhook secret 추가분은 소액 |
| Slack webhook | AWS 비용 아님 | Slack 자체 과금/플랜은 별도 |
| Domain/Route53 추가 zone | 일부 포함 | Hub/Dashboard 기본 zone은 포함. 추가 도메인은 별도 |
| WAF/CloudFront Web hosting | 사용량 의존 | CloudFront request/traffic 증가는 별도 사용량 항목 |
다음 변경이 생기면 비용을 재산정한다.
-
infra/hub,infra/foundation,infra/data-dashboard*에 리소스가 추가·삭제·크기 변경됨 - NAT Gateway 수, node/task/DB instance type, RDS storage, EKS support tier가 바뀜
- ALB/WAF/Cognito/CloudFront/Route53 같은 외부 접근 경로가 추가됨
- ECS task desired count, Fargate Spot, RDS Multi-AZ 활성화 여부가 바뀜
- Bedrock 모델 변경 또는 일간 보고서 빈도가 늘어남
- 관측 계층(CloudWatch Logs, Container Insights 등)의 수집·저장량 기준이 바뀜
가격 출처는 AWS 공식 pricing 문서(EKS, EC2, NAT Gateway, EBS, S3, KMS, ELB, Route53, ACM, ECS Fargate, RDS, ElastiCache, Bedrock, Lambda, DynamoDB, CloudWatch)이며, 단가 확인 시점과 리전을 함께 기록한다.
이 문서에는 계정 번호, 리소스 ARN/식별자, KMS key ID, 실제 도메인, 이미지 태그 같은 민감값을 싣지 않는다. 비용은 사양과 단가만으로 일반화해 설명한다.
- 시스템 아키텍처
- 제어 & 데이터 플레인
- 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 채팅 어시스턴트