Skip to content

adr dynamodb to foundation

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

ADR - FactoryStatus DynamoDB를 foundation 영구 리소스로 이관

메타데이터
상태 accepted
결정일 2026-05-21
현재 유효 여부 유효
Superseded 관계 data-pipeline 소유 table 계획을 대체. Dashboard의 별도 factory-status table 계획도 기존 공식 table 참조 결정으로 대체됨
구현 근거 infra/foundation/dynamodb.tf, data-pipeline/data-dashboard의 DynamoDB data source
검증 근거 Foundation output, DataProcessor/collector/alert/Dashboard의 동일 table 참조와 운영 read/write

Wiki ADR 파일명은 유지한다. 통합 저장소에는 서로 다른 0021, 0022 파일이 있으므로 번호만으로 식별하지 않고 docs/changes/README.md와 파일명을 함께 본다.


결정

AEGIS-DynamoDB-FactoryStatus의 resource owner는 infra/foundation이다.

infra/foundation
  resource "aws_dynamodb_table" "factory_status"

infra/data-pipeline
  data "aws_dynamodb_table" "factory_status"

infra/data-dashboard
  data "aws_dynamodb_table" "official_factory_status"

Resource owner와 data source 경계

Root 책임
infra/foundation table schema, Streams, TTL, PITR와 table lifecycle 소유
infra/data-pipeline 이름으로 조회하고 LATEST/HISTORY/GRAPH/CLOUD/ALERT read-write
infra/data-dashboard 같은 table을 이름으로 조회하고 Backend read 및 Streams notifier 연결
infra/reporting DynamoDB hot store가 아니라 S3 processed를 보고서 입력으로 사용

Data source는 리소스를 소유하거나 생성하지 않는다. 따라서 data-pipeline이나 data-dashboard destroy가 table 삭제를 유발하지 않는다.

aegis-daily-report는 다른 table이며 Data/Dashboard permanent root 소유다. 현재 Dashboard report 본문 조회는 이 table이 아니라 S3 reports/daily/를 사용한다.


이유

  • LATEST/HISTORY/GRAPH/CLOUD/ALERT 상태는 처리 Lambda보다 긴 생명주기를 가진다.
  • Hub 또는 data-pipeline 재생성 중에도 Dashboard read model을 보존한다.
  • Streams ARN이 안정적으로 유지되어 notifier 연결을 재구성하기 쉽다.
  • PAY_PER_REQUEST의 유휴 비용보다 상태 삭제 위험이 크다.

순서 제약

Terraform data source lookup 때문에 순서를 지킨다.

build:   foundation -> data-pipeline -> data-dashboard
destroy: data-dashboard/data-pipeline -> foundation

Foundation을 먼저 삭제하면 남은 root의 plan/destroy가 table lookup 실패로 중단될 수 있다.

Aegis-Pi Wiki

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

시작하기

요구사항

핵심 개념

아키텍처

컴포넌트 (Edge → Cloud → Dashboard)

Dashboard & 운영

시나리오 · 사례 · 참조

Clone this wiki locally