피드로 돌아가기
Dev.toInfrastructure
원문 읽기
NAT Gateway 대비 유휴 비용 97% 절감한 Scale-to-Zero 아키텍처
nat-zero: scale-to-zero NAT instances for AWS
AI 요약
Context
6개 리전 및 다수 AZ에 걸친 GPU 워크로드의 불규칙한 트래픽 패턴으로 인한 고정 비용 발생 문제. NAT Gateway의 높은 시간당 비용과 Always-on NAT 인스턴스의 유휴 자원 낭비를 해결하기 위한 비용 최적화 필요성 대두.
Technical Solution
- EventBridge와 Lambda 기반의 상태 감시 체계를 통한 NAT 인스턴스의 동적 생명주기 관리
- Reconciliation Loop 패턴 적용을 통해 이벤트 트리거와 무관하게 현재 상태 기반의 단일 보정 작업 수행
- Lambda Concurrency를 1로 제한하여 Distributed Locking 없이 Race Condition 및 중복 생성 원천 차단
- Pre-created Dual ENI 구조를 활용해 인스턴스 재시작 시 Route Table 변경 없이 네트워크 연속성 유지
- 유휴 상태 시 EIP를 해제하여 Public IPv4 할당 비용을 제거하는 Scale-to-Zero 전략 구현
- Go 언어 기반 ARM64 컴파일 바이너리 활용으로 Lambda Cold Start를 55ms 수준으로 최소화
Impact
- 유휴 상태 비용: AZ당 $36+(NAT GW) $\rightarrow$ $0.80(nat-zero)로 획기적 절감
- 전체 인프라 비용: 22개 AZ 기준 월 $792에서 $17.60로 감소
- 가동 속도: Cold Start 시 인터넷 연결까지 약 10.7초 소요되며 이는 GPU 워크로드 초기화 시간보다 짧음
- 자원 효율: Lambda 피크 메모리 사용량 29MB(할당량 128MB)로 극도로 낮은 오버헤드 달성
Key Takeaway
복잡한 분산 락 시스템보다 단일 쓰기 제약(Concurrency=1)과 상태 보정 루프를 결합한 단순한 설계가 인프라 안정성과 유지보수성을 동시에 확보하는 최적의 경로임.
실천 포인트
- 워크로드 트래픽이 간헐적이고 다수 AZ에 분산되어 있는지 확인 - 인프라 제어 로직 설계 시 Event-driven 방식과 State Reconciliation 패턴의 결합 검토 - 고정 IP 비용 절감을 위해 ENI 유지 및 EIP 동적 할당/해제 구조 적용 가능성 분석 - Lambda의 동시성 제어를 통한 단순화된 직렬 처리 구조 도입 고려