AWS Lambda와 S3를 사용한 서버리스 이미지 최적화기 구축 (프리 티어 안전)
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- 클라우드 초보자, 인디 해커, DevOps 학습자, 프리랜서
- 난이도: 초보자부터 중급 개발자까지 접근 가능한 실무 예제
핵심 요약
- AWS Lambda + S3를 활용한 서버리스 이미지 최적화 시스템 구축
- Pillow 라이브러리 사용하여 이미지 압축 처리 (Python 3.11 기반)
- 프리 티어 호환 구조로 비용 발생 방지 및
delete_resources.sh
자동 정리 스크립트 포함
섹션별 세부 요약
1. 프로젝트 개요
- S3 버킷에 이미지 업로드 시 Lambda 자동 트리거
- 압축된 이미지가
optimized-
접두사로 저장 - EC2, 컨테이너 없이 100% 서버리스 구조
2. 주요 구성 요소
- AWS Lambda: Python 3.11 기반 이미지 압축 처리 (
handler.py
) - Amazon S3: 이미지 업로드 이벤트 트리거
- IAM Role: 최소 권한 원칙 적용 (
trust-policy.json
) - Pillow: 이미지 최적화 라이브러리 (
requirements.txt
) - Shell 스크립트: 자원 생성(
create_resources.sh
) 및 정리(delete_resources.sh
)
3. 실행 흐름
- S3에
.jpg
,.png
파일 업로드 - Lambda 자동 실행 → Pillow 압축 →
optimized-filename.jpg
저장 - 프리 티어 호환: EC2, 장기 실행 서비스 없음
4. 비용 관리
- AWS Free Tier 호환 구조
delete_resources.sh
스크립트로 자원 정리 가능- 예시 명령어:
bash deploy/delete_resources.sh
5. 대상 사용자
- AWS Lambda + S3 트리거 실습 필요자
- 작업 자동화를 위한 인디 해커 및 프리랜서
- 포트폴리오 구축을 위한 DevOps 학습자
결론
- AWS Free Tier 호환 서버리스 앱 개발 패턴
delete_resources.sh
스크립트로 자동 정리 기능 필수 적용- Pillow와 IAM 최소 권한 원칙을 기반으로 안전한 이미지 최적화 시스템 구축