이메일 첨부파일을 클라우드 저장소에 자동 업로드 서비스
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- Node.js 및 클라우드 인프라 개발자
- Serverless 아키텍처 및 자동화 흐름 구축을 원하는 중급 이상 개발자
- AWS S3, Postmark API 사용 경험자
- No Database 구조의 애플리케이션 설계에 관심 있는 프로그래머
핵심 요약
- AWS S3 및 Postmark Inbound API 활용
Postmark SDK
와AWS SDK v3
를 통해 이메일 첨부파일을 클라우드에 자동 업로드- Serverless 기반 배포
Serverless Framework
로 AWS Lambda + API Gateway 구축, 최소 권한 IAM 설정- 무데이터 아키텍처
- DB 없이
.env
설정만으로 서비스 실행 가능,ts-node-dev
로 로컬 개발 편의성 확보
섹션별 세부 요약
1. 서비스 개요
- 이메일 첨부파일을
로 전달 시 AWS S3에 자동 업로드@email-to-s3.email - 사용자 인증 없이 이메일 주소 기반의 S3 폴더 구조 자동 생성
- 예시:
user@example.com/2023-10-15/report.pdf
2. 기술 스택
- Node.js 14+ 및 TypeScript 기반 Express.js 서버
- AWS SDK v3와 Postmark SDK 통합
- StorageClient 추상화 레이어로 R2, Spaces 등 S3 호환 클라우드 지원
- Serverless Framework로 AWS Lambda 배포
3. 인프라 구성
- Serverless Framework의
serverless.yml
파일을 통해 - AWS Lambda + API Gateway 배포
- 최소 권한 IAM 정책 적용
- S3 버킷 생성 및 Access Key/Secret 인증 정보 입력 필수
4. Postmark 연동
InboundMessage
이벤트로 이메일 수신- Base64 인코딩 첨부파일을 S3에 스트리밍
- 업로드 실패 시 HTTP 500 응답으로 Postmark 재시도 트리거
POSTMARK_SERVER_TOKEN
으로 Transactional API 응답 메시지 전송 가능
5. 개발자 경험
.env
파일에만 설정값 입력 후npm install
및serverless deploy
로 즉시 배포- 로컬 개발 시
ts-node-dev
로 실시간 코드 반영 - No Database 아키텍처로 인한 유지보수성 향상
결론
- Serverless 기반 S3 자동 업로드 서비스 구축 시
Serverless Framework
+StorageClient
추상화 활용 - Postmark Inbound API를 통해 이메일 첨부파일을 Base64로 스트리밍하여 S3 업로드
- .env 파일 설정만으로 서비스 실행 가능하며,
ts-node-dev
로 로컬 개발 편의성 확보 - GitHub 저장소에서 코드 확인 가능