4차산업혁명의 일꾼/백엔드

이미지 업로드로 인한 저장 공간 급증

르무엘 2025. 6. 8. 11:59

3600만 명의 사용자를 보유한 SNS 피드 서비스에서 3~10MB 이미지 업로드로 인한 저장 공간 급증과 비용 상승 문제는 스케일과 비용 최적화 관점에서 신중히 접근해야 합니다. 다음은 현실적이고 효과적인 개선 접근 방법들입니다:


---

✅ 1. 이미지 압축 (Image Compression)

설명:

업로드 시점에서 이미지를 자동으로 압축하여 저장 공간을 줄임.

WebP, AVIF 같은 최신 포맷으로 변환하면 JPEG 대비 30~70% 절약 가능.


구현 방식:

서버 또는 클라이언트에서 업로드 전 압축 (선호: 클라이언트 측 압축 + 서버 검증).

사용 라이브러리 예: sharp, ImageMagick, libvips.



---

✅ 2. 썸네일 및 리사이징 전략

설명:

원본 이미지는 보관하되, 피드용으로는 작은 버전(예: 1080px, 720px, 360px 등)을 제공.

필요한 해상도에 따라 요청 시 이미지 자동 리사이징.


구현 도구:

AWS S3 + Lambda + CloudFront: 요청 시점에 이미지 리사이징 → 캐시.

imgproxy, thumbor 등 오픈소스 이미지 프록시 서버.



---

✅ 3. 저장 전략 개선 (스토리지 티어링)

설명:

빈번히 접근되지 않는 오래된 원본 이미지를 저렴한 스토리지로 이전 (예: AWS S3 Standard → Glacier).

“콜드 데이터”에 대한 자동 아카이빙 정책 설정.


이점:

저장비 대폭 절감, 사용자 경험 유지.



---

✅ 4. 중복 이미지 제거 및 해시 처리

설명:

같은 이미지를 여러 사용자가 업로드할 경우, 중복 업로드 방지.

이미지 해시(MD5, SHA256) 비교를 통해 기존 이미지 재사용.



---

✅ 5. 업로드 제한 정책

설명:

업로드 크기를 하드 리밋 (예: 최대 5MB).

모바일 앱에서 촬영 시 자동 압축 적용 유도.



---

✅ 6. CDN 활용으로 전송 비용 절감

설명:

이미지 서빙은 CloudFront, Cloudflare 같은 CDN을 통해 제공하여 전송 비용을 절감.

원본 이미지 접근은 제한하고 캐싱을 극대화.



---

🔒 보너스: 개인정보 및 보안 고려

EXIF 메타데이터 제거: 위치정보 등 민감 정보 삭제 → 보안 및 용량 감소 효과.



---

📌 종합 적용 예시

1. 클라이언트에서 WebP 포맷으로 압축 업로드.


2. 서버에서는 원본 + 3종 썸네일로 변환 후 저장.


3. 90일 이상 지난 이미지 중 미사용 원본은 Glacier로 이전.


4. CDN + S3 버킷 정책으로 비용 최적화.







LIST