
백엔드
MSA 기반 미디어 업로드 고도화: 람다 함수 구조 변경으로 유지보수성 향상
두줄요약
MSA 기반 미디어 업로드 구조를 재설계해 람다 간 복잡한 호출과 분기 코드를 줄였습니다. 또한 DynamoDB, DocumentDB, Step Functions, Kafka를 활용해 유지보수성을 높였습니다.
문제 상황
- MSA 기반 미디어 업로드에서 람다 간 호출이 많고 분기 코드가 복잡해 흐름 파악과 유지보수가 어려운 상태
- 동일 IAM 역할, 하드코딩된 테스트 데이터, 사용되지 않는 DB 업데이트 로직으로 코드 가독성과 운영 효율 저하
원인 분석
- 환경별 배포와 서비스별 책임이 코드 분기와 공용 구성에 섞여 구조가 복잡해짐
- 업로드 메타데이터와 결과 저장 방식이 RDB 중심으로 남아 있어 서버리스와의 궁합이 떨어짐
- Lambda 간 직접 호출 구조가 업로드 단계별 역할 분리를 약화시킴
해결 방법
- Chalice 설정으로 dev/prod 분리를 정리하고 람다별 IAM 역할을 분리
- RDB에서 DynamoDB와 DocumentDB로 전환해 메타데이터와 결과 정보를 용도별로 분리 저장
- 람다를 Producer 역할로 재구성하고 Kafka 메시지 발행, Step Functions로 실행 순서 제어
