목록 보기
Localstack 을 활용한 AWS 인프라 통합테스트
데브옵스

Localstack 을 활용한 AWS 인프라 통합테스트

인프런
인프런
2022년 2월 3일

두줄요약

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에서 초기화 스크립트 완료 후 테스트 시작 필요

다음 읽기

#Testcontainers 주제를 다룬 다른 회사 글

Testcontainers에 의한 docker container 생성 폭발을 막아라

Testcontainers로 생기는 컨테이너 폭증과 메모리 고갈 문제를 Gradle BuildService로 줄였습니다. 하나의 컨테이너를 재사용하고 스키마 초기화 방식을 정리해 CI 시간을 크게 단축했습니다.

flex
flex
데브옵스

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...