피드로 돌아가기
kumo - Go로 작성된 경량 AWS 서비스 에뮬레이터
GeekNewsGeekNews
Infrastructure

kumo - Go로 작성된 경량 AWS 서비스 에뮬레이터

76개 AWS 서비스를 단일 바이너리로 구현한 Go 기반 경량 에뮬레이터

xguru2026년 4월 23일4intermediate

Context

로컬 개발 및 CI/CD 환경에서 실제 AWS 자원 의존으로 인한 비용 발생과 네트워크 지연 문제 존재. AWS 자격 증명 관리의 복잡성과 테스트 환경 구성의 높은 오버헤드를 해결하기 위한 독립적 에뮬레이션 환경 필요.

Technical Solution

  • Go 언어 기반의 단일 바이너리 설계를 통한 경량 실행 환경 및 Docker 배포 최적화
  • localhost:4566 단일 엔드포인트를 통한 76개 AWS 서비스 인터페이스 통합 제공
  • In-memory 기본 저장 구조 및 KUMO_DATA_DIR 설정을 통한 JSON 파일 기반 선택적 데이터 Persistence 구현
  • HTTP 메서드, 상태 코드, 지연 시간을 포함한 구조화된 Logging 시스템을 통해 API 요청 추적성 확보
  • /kumo/ 경로의 확장 엔드포인트를 제공하여 SES v2, Pinpoint SMS 등 외부 전송 결과의 내부 검증 로직 구현
  • AWS 공식 API 규격을 준수하면서 인증 절차를 생략하여 자동화 파이프라인의 배포 속도 개선

- S3 클라이언트 설정 시 BaseEndpoint를 로컬로 변경하고 UsePathStyle 옵션 활성화 여부 확인 - CI/CD 파이프라인 내 AWS Credentials 주입 단계 제거를 통한 보안성 및 빌드 속도 향상 검토 - 외부 API 전송 결과 검증을 위해 에뮬레이터 전용 검증 엔드포인트 활용 가능성 분석 - 데이터 보존이 필요한 통합 테스트의 경우 JSON 파일 저장 경로 설정 적용

원문 읽기