
Localstack 을 활용한 AWS 인프라 통합테스트
두줄요약
AWS 리소스 테스트의 비용·보안·독립성 문제를 LocalStack으로 해결한 과정을 소개했습니다. Testcontainers와 Docker Compose를 비교하고, 초기화·순차 실행·CI 준비 시 주의점을 정리했습니다.
문제 상황
- SES·S3 연동 로직에서 유닛 테스트만으로 부족한 검증 범위
- 실제 AWS 리소스 테스트 시 비용, 접근 키 관리, 병렬 실행 간 상태 간섭 문제
해결 방법
- AWS API를 시뮬레이션하는 LocalStack 컨테이너 기반 통합 테스트 환경 도입
- Docker Compose의 서비스 제한과 초기화 스크립트로 S3 버킷·SES 발신 주소 사전 구성
- SDK endpoint를 LocalStack 주소로 변경해 성공·실패 응답 검증
선택 이유
- Testcontainers의 테스트별 컨테이너 격리 대신 Docker Compose 단일 컨테이너 선택
- 컨테이너 기동·종료 비용으로 인한 단건 테스트 지연과 제한적인 병렬 실행 효율 고려
주의할 점
- 단일 컨테이너 공유에 따른 순차 실행과 상태 복구를 통한 멱등성 확보 필요
- SES API v2 미지원 여부 확인 및 CI에서 초기화 스크립트 완료 후 테스트 시작 필요




