피드로 돌아가기
Dev.toInfrastructure
원문 읽기
AWS SES 전환을 통한 메일 발송 비용 최대 20배 절감 및 확장성 확보
How I migrated magic-link login from Resend to AWS SES + Lambda five days before launch
AI 요약
Context
Resend 기반의 Passwordless 인증 체계가 가진 고정 비용 구조와 일일 발송 제한(100건)으로 인한 트래픽 스파이크 대응 불가능 상태 분석.
Technical Solution
- 비용 효율 극대화를 위해 AWS SAM 기반의 Lambda, DynamoDB, SES, API Gateway 조합으로 아키텍처 전면 재설계
- DynamoDB TTL의 지연 삭제 특성(최대 48시간)을 보완하기 위해 DeleteItem의 ConditionExpression을 통한 엄격한 만료 시간 검증 로직 구현
- 인증 토큰의 생명주기 관리 체계를 'TTL을 통한 단순 정리'와 '조건부 쓰기를 통한 실제 보안 검증'으로 이원화하여 설계
- 모듈 레벨 변수를 활용한 Secrets Manager 캐싱 전략을 적용하여 Lambda 호출 시 발생하는 API 오버헤드 제거
- Cloudflare Worker 기반의 메인 서비스와 독립적인 배포가 가능한 분리된 AWS 스택 구조 채택
Impact
- 월 10,000건 발송 기준 비용 $20에서 $1.00로 20배 절감
- 월 1,000,000건 발송 시 $650에서 $100.00로 약 6.5배 비용 최적화
- 일일 100건의 하드 캡(Hard Cap) 제거를 통해 바이럴 트래픽 스파이크 대응 가능
Key Takeaway
추상화된 SaaS의 DX(Developer Experience)보다 예상 트래픽 규모에 따른 비용 곡선(Cost Curve) 분석이 아키텍처 결정의 선행 지표가 되어야 함.
실천 포인트
- DynamoDB TTL 사용 시 이를 보안 경계로 신뢰하지 말고 애플리케이션 레벨에서 만료 시간을 명시적으로 검증할 것 - Lambda에서 외부 Secret을 참조할 때 Cold Start 시점에 한 번만 읽어 메모리에 캐싱하는 패턴을 적용할 것 - 서비스 런칭 전 예상 트래픽에 따른 벤더별 비용 시뮬레이션을 수행하여 기술 부채 발생 가능성을 사전 차단할 것