피드로 돌아가기
Dev.toInfrastructure
원문 읽기
JVM 제거 및 단일 바이너리 구조로 1초 미만 기동을 실현한 AWS 에뮬레이터
What landed in MiniStack between 1.2.0 and 1.3.30
AI 요약
Context
기존 LocalStack의 JVM 기반 구조와 유료 모델로 인한 무거운 실행 환경 및 비용 제약 존재. 로컬 및 CI 환경에서 즉각적인 피드백 루프를 확보하기 위한 경량화된 AWS 에뮬레이션 필요성 대두.
Technical Solution
- RIE 기반 Docker Executor 도입을 통한 Lambda 런타임 격리 및 웜 스타트 유지 구조 설계
- k3s 컨테이너 기반의 EKS 구현으로 실제 Kubernetes API 계약 준수 및 Docker 미사용 시 Stub 엔드포인트 전환 처리
- AccountScopedDict 도입을 통한 멀티테넌시 데이터 누수 방지 및 계정별 논리적 격리 보장
- EventBridge용 제로 디펜던시 파서를 통한 복잡한 cron() 구문 해석 및 자동 실행 로직 구현
- Step Functions의 서비스별 Dispatch Table 구성을 통한 Query, JSON, REST-XML 프로토콜별 통합 인터페이스 제공
- In-memory Ring Buffer 구조의 CloudTrail 구현으로 오버헤드 최소화 및 감사 로그 기능 제공
실천 포인트
1. 멀티테넌트 시스템 설계 시 공유 딕셔너리 대신 전용 Wrapper 클래스(예: AccountScopedDict)를 사용하여 데이터 유출 방지
2. 외부 의존성이 높은 스케줄러 구현 시 전용 파서를 개발하여 런타임 의존성을 제거하고 일관된 구문 해석 보장
3. CI/CD 파이프라인 최적화를 위해 실제 인프라 대신 API 계약을 준수하는 경량 에뮬레이터 도입 검토