stateless
-
Karpenter: Kubernetes Node Autoscaling이코에코(Eco²)/Applied 2025. 12. 26. 20:42
참고: Karpenter Documentation, AWS Karpenter GitHub, CNCF Karpenter들어가며Kubernetes에서 Pod 스케일링(HPA, KEDA)은 잘 작동하지만, 노드 리소스가 부족하면 Pod는 Pending 상태에 머문다. 기존 Cluster Autoscaler는 ASG(Auto Scaling Group)에 의존하여 스케일업이 느리고 인스턴스 타입 선택이 제한적이다.┌─────────────────────────────────────────────────────────────┐│ 노드 스케일링의 필요성 │├───────────────────────────────────────────────────..
-
이코에코(Eco²) Message Queue #9: 캐릭터 보상 판정과 DB 레이어 분리, Eventual Consistency 적용 (2)이코에코(Eco²)/Message Queue 2025. 12. 24. 11:51
관련 글: 보상 판정과 DB 레이어 분리 설계 (1) 본 문서는 (1)편에서 설계한 보상 판정/저장 분리 아키텍처의 최종 구현과 로컬 캐시 기반 매칭을 다룬다.1. 설계 변경 요약항목(1)편 설계최종 구현Dispatcherpersist_reward_task (별도 task)제거 (scan.reward에서 직접)캐릭터 매칭DB 조회로컬 캐시매칭 호출동일 Worker 내별도 Worker 동기 호출Queue 구조reward.persistcharacter.match + character.rewardgRPCmy 도메인용완전 제거변경 이유persist_reward_task 제거:(1)편 설계에서 dispatcher task가 delay() 두 번만 수행. 불필요한 홉 제거:# Beforescan.reward → p..
-
이코에코(Eco²) Message Queue #8: Local Cache Event Broadcast이코에코(Eco²)/Message Queue 2025. 12. 24. 11:48
본 문서는 Worker 로컬 캐시를 활용한 DB 조회 없는 매칭과 RabbitMQ Fanout Exchange 기반 캐시 동기화 구현을 다룬다.1. 설계 배경1.1 기존 문제캐릭터 매칭에서 매 요청마다 PostgreSQL 조회:async def evaluate_reward(self, classification): characters = await self.repository.get_all() # ~50ms for char in characters: if char.match_label == classification.middle_category: return char문제점:매 요청 DB 조회 (~50ms 추가)DB 장애 시 매칭 불가Worker 스케일링 = DB..