빌드 워밍풀 상태 저장소의 DynamoDB 전환
모든 Vercel 빌드의 워밍풀 상태를 Redis에서 DynamoDB로 옮기고, 그에 맞게 공급 루프도 다시 설계했습니다.
교안에 영향
예전에는 Redis 지연을 전제로 설명한 warm pool 안내가 더 이상 맞지 않습니다.
요약
- 빌드 warm pool의 상태 저장소를 Redis에서 DynamoDB로 옮겼습니다. - 토큰, 상태, 배포 매핑을 기준으로 스키마와 인덱스를 다시 설계했습니다. - Redis-only에서 DynamoDB-only까지 단계별로 전환하며 dual writes와 shadow reads로 검증했습니다. - 느려진 읽기 때문에 supply loop를 동시 실행 방식으로 바꿔 성능 병목을 줄였습니다.
바뀐 것
개선
- container ID를 중심으로 스키마를 다시 잡고 token은 해시로 저장하도록 바꿨습니다.
- status counts와 deployment lookup을 위해 시간 인식 인덱스와 별도 테이블을 추가했습니다.
- feature-flagged phases로 Redis-only, dual writes, shadow reads, DynamoDB-primary, DynamoDB-only 순서의 전환을 진행했습니다.
- dual writes와 shadow reads로 두 저장소의 결과를 비교하고 대시보드로 일치율과 지연을 감시했습니다.
기타
- 빌드 warm pool의 상태 저장소를 Redis에서 DynamoDB로 이전했습니다.
- 비교용 읽기와 상태 집계를 위한 인덱스를 추가해 O(n) count 문제를 줄였습니다.
수정
- getWarmPoolTokenCount 지연으로 느려진 supply loop를 동시 실행 방식으로 다시 구성했습니다.