본문 바로가기
아키텍처

서버는 로직만! AWS S3와 CloudFront(CDN)로 정적 자원 서빙 최적화하기

by 공부 안하고 싶은 사람 2026. 4. 20.
반응형
Cloud Infrastructure Optimization

API 서버에 짐을 지우지 마세요,
S3CDN으로 서빙 분리하기

 

안녕하세요, code-resting입니다. 서비스의 첫 화면이 뜨는 속도가 1초만 늦어져도 사용자의 이탈률은 급격히 상승합니다. 그런데 그 소중한 API 서버가 이미지 파일을 읽어서 내보내느라 정작 중요한 비즈니스 로직 처리를 못 하고 있다면 어떨까요? 오늘은 정적 파일 관리를 전담하는 AWS S3CDN의 마법 같은 시너지를 알아봅니다.

1. 정적 자원의 무한 저장소: AWS S3

S3(Simple Storage Service)는 파일 저장에 최적화된 객체 스토리지입니다. 서버의 로컬 디스크에 파일을 저장하면 서버 확장(Scale-out) 시 파일 공유가 불가능하지만, S3를 쓰면 어떤 서버에서도 동일한 파일에 접근할 수 있습니다.

  • 무한한 확장성: 용량 제한 없이 데이터를 저장할 수 있습니다.
  • 내구성: 99.999999999%의 데이터 보존율을 자랑합니다.

2. 물리적 거리를 좁히는 기술: CDN (CloudFront)

미국에 있는 사용자가 한국 서버의 이미지를 요청하면 물리적 거리 때문에 느려질 수밖에 없습니다. CDN(Content Delivery Network)은 전 세계 곳곳에 캐시 서버(Edge Location)를 두고, 사용자와 가장 가까운 곳에서 파일을 전달합니다.

CDN 사용 전 vs 후:

  • 전: 사용자 → 서울 서버 (전체 요청 처리) → 사용자 (느림, 서버 부하 높음)
  • 후: 사용자 → 인근 엣지 로케이션 (캐시 응답) → 사용자 (빛의 속도, 서버 부하 없음)

3. 실무에서의 연동 시나리오

단순히 S3를 공개(Public)로 열어두는 것은 보안상 위험합니다. 보통은 CloudFront만 외부에 노출하고 S3는 OAC(Origin Access Control)를 통해 CDN만 접근할 수 있게 설정합니다.

  1. 사용자가 cdn.example.com/logo.png 요청
  2. CloudFront 엣지에 캐시가 있다면 즉시 응답 (Cache Hit)
  3. 없다면 S3에서 파일을 가져와 엣지에 저장 후 응답 (Cache Miss)
  4. 이후 요청은 엣지에서 바로 처리

4. 비용과 보안의 팁

  • 비용 절감: S3에서 직접 데이터를 나가는 비용보다 CloudFront를 통해 나가는 비용이 대량 트래픽에서 더 저렴할 때가 많습니다.
  • 보안: Signed URL 기능을 쓰면 유료 콘텐츠나 개인화된 파일을 특정 시간 동안만 접근 가능하도록 제한할 수 있습니다.

💡 마무리하며

2026년 현대적 웹 아키텍처에서 API 서버는 오직 JSON 데이터만 처리해야 합니다. 무거운 정적 자원은 S3와 CDN에 맡기세요. 서버의 리소스를 아끼는 것뿐만 아니라, 전 세계 사용자에게 최상의 경험을 제공하는 가장 확실한 방법입니다.

© 2026 code-resting. All rights reserved.

728x90
반응형

댓글