Skip to content

adr dynamodb key model

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

ADR - DynamoDB Key Model

메타데이터
상태 운영 확인 기준 (accepted)
기준일 2026-05-29
현재 유효 여부 유효
구현 근거 infra/foundation/dynamodb.tf, apps/data-processor, apps/graph-metrics-aggregator
검증 근거 AWS describe-table 결과와 Terraform 정의 일치, 운영 read/write 확인

결정

AEGIS-DynamoDB-FactoryStatus 단일 테이블을 pk(HASH) / sk(RANGE) 복합 키 모델로 운영한다. factory별 파티션 안에 상태·이력·집계·Cloud Infra·Alert를 sort key family로 구분한다.

항목
Billing PAY_PER_REQUEST
TTL attribute ttl
PITR enabled
Stream NEW_AND_OLD_IMAGES
GSI 없음 (pk + sk range 조건에만 의존)

키 패턴

pk = FACTORY#{factory_id}        (factory-a / factory-b / factory-c)
SK 패턴 생성 주체 TTL 용도
LATEST data processor 없음 factory별 최신 전체 상태 1건
HISTORY#STATE#{updated_at} data processor 있음 (목표 2h, 마지막 문서화된 운영값 48h) LATEST snapshot 단기 이력
GRAPH#5M#{bucket_start} graph aggregator 있음 (48h) 5분 단위 avg/min/max 집계

이 외에 Cloud Infra read model은 pk=CLOUD#infra(LATEST, HISTORY#FAST#, HISTORY#SLOW#), Alert 전송 제어 상태는 ALERT#{scope} / OBSERVATION#을 사용한다.

LATESTfactory_state/infra_state 수신 시 같은 아이템을 부분 갱신하며, 주요 필드는 factory_state, infra_state, risk, pipeline_status, last_factory_state_at, last_infra_state_at, updated_at이다.

조회 패턴

현재 상태  : GetItem  pk=FACTORY#{id}, sk=LATEST
상태 이력  : Query    pk=FACTORY#{id}, sk begins_with HISTORY#STATE#
5분 그래프 : Query    pk=FACTORY#{id}, sk begins_with GRAPH#5M#

SK가 ISO-8601 UTC 문자열을 포함하므로 시간 범위 조회는 between 조건을 사용한다.

주의 사항

  • GSI가 없어 조회는 pksk range 조건에 의존한다.
  • LATEST는 TTL이 없어 유지되고, HISTORY#STATE/GRAPH#5M은 TTL 대상이다.
  • 전체 공장 목록을 직접 조회하려면 factory id 목록을 별도 설정으로 갖거나 별도 registry item이 필요하다(현재는 제한적 접근).
  • 이력 TTL 계층화 배경은 Multi-resolution History를 참조한다.
  • 테이블 소유 경계는 DynamoDB foundation 이관을 따른다.

관련 문서

Aegis-Pi Wiki

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

시작하기

요구사항

핵심 개념

아키텍처

컴포넌트 (Edge → Cloud → Dashboard)

Dashboard & 운영

시나리오 · 사례 · 참조

Clone this wiki locally