이미지 처리시 RDS vs S3

Seong Hyeon Kim·2025년 1월 10일
0

개인공부

목록 보기
24/25

만약에 자주 가져와야 하는 이미지 URL을 S3에서 가져오는 것과 RDS에 넣어두고 가져오는 것 중 어떤 방법이 비용적으로 절약될지에 대해 아키텍처 비용 분석을 해보겠습니다.


1. S3에서 이미지 URL 가져오기 (추천)

S3는 오브젝트 스토리지로, 대용량 정적 파일 저장에 최적화되어 있습니다. 이미지, 동영상, 파일과 같은 정적 자산을 저장하고 제공하는 데 적합합니다.

📊 S3 비용 분석 (2025년 기준)

항목비용 예시
저장 비용$0.023/GB (서울 리전 기준)
GET 요청$0.0004/1,000건
데이터 전송 비용$0.09/GB (인터넷으로 전송 시)

장점:

  • 대용량 데이터 저장에 최적화
  • 확장성이 뛰어나며, 요청이 많아도 부담 없음
  • 정적 파일이므로 CDN(Cache)와 연계 시 빠르고 저렴
  • S3 Transfer Acceleration이나 CloudFront를 통해 빠른 전송 가능

단점:

  • GET 요청 비용이 발생 (요청이 많으면 비용이 조금 올라감)

🔧 비용 절감 방법:

  1. CloudFront(CDN) 사용: 자주 요청되는 이미지를 캐싱하여 S3 요청을 줄임
  2. Transfer Acceleration 사용: 글로벌 가속을 통해 전송 속도를 높임
  3. 이미지 압축: 이미지 용량을 줄여 데이터 전송 비용 절감

2. RDS에서 이미지 URL 가져오기

이미지 URL을 RDS에 넣어두고 가져온다면, 다음과 같은 비용이 발생합니다.

📊 RDS 비용 분석 (Aurora, PostgreSQL 기준)

항목비용 예시
인스턴스 비용$0.10~$0.50/시간 (DB 인스턴스 크기에 따라)
저장 비용$0.10/GB
네트워크 전송 비용$0.09/GB (인터넷으로 전송 시)

장점:

  • SQL 쿼리로 관리가 편리
  • ✅ 이미지 URL을 필터링하거나, 조건부 조회 가능
  • DB 인덱싱을 통해 빠르게 조회 가능

단점:

  • 읽기 요청이 많아질수록 RDS 비용 증가
  • ❌ RDS는 정적 파일 저장에 비효율적
  • 트래픽 증가 시 DB 부하가 심해질 수 있음

비용 비교 시뮬레이션

가정:

  • 하루 100만 건의 이미지 URL 요청
  • 평균 파일 크기 100KB
  • 서울 리전 기준
항목S3 비용RDS 비용
저장 비용 (100GB)$2.30/월$10/월
요청 비용 (1억 건)$40/월부하 증가로 추가 비용 발생
데이터 전송 비용 (300GB)$27/월$27/월
총 비용$69.30/월$100~150/월 이상

3. 어떤 상황에 S3와 RDS를 선택할까?

상황S3 선택 시기RDS 선택 시기
대용량 이미지 저장✅ 추천❌ 비추천
자주 변경되는 이미지 URL❌ 비추천✅ 추천
조건부 쿼리 필요❌ 비추천✅ 추천
비용 절감 필요✅ 추천❌ 비추천

결론:

이미지 URL을 자주 가져와야 한다면, S3에 저장하는 것이 더 비용 효율적입니다.
특히, CloudFront와 같은 CDN을 사용하면 네트워크 비용과 요청 비용을 더욱 줄일 수 있습니다.


💡 추천 아키텍처:
1. 이미지를 S3에 저장
2. CloudFront로 CDN 캐싱
3. RDS에는 이미지의 메타데이터만 저장 (예: 이미지 이름, 태그, 설명 등)
4. 필요 시 S3 URL을 DB에 캐싱하거나, Redis로 캐싱하여 조회 속도를 더욱 높임

profile
삽질도 100번 하면 요령이 생긴다. 부족한 건 경험으로 채우는 개발자

0개의 댓글