반응형
Cloud Infrastructure Optimization
API 서버에 짐을 지우지 마세요,
S3와 CDN으로 서빙 분리하기
안녕하세요, code-resting입니다. 서비스의 첫 화면이 뜨는 속도가 1초만 늦어져도 사용자의 이탈률은 급격히 상승합니다. 그런데 그 소중한 API 서버가 이미지 파일을 읽어서 내보내느라 정작 중요한 비즈니스 로직 처리를 못 하고 있다면 어떨까요? 오늘은 정적 파일 관리를 전담하는 AWS S3와 CDN의 마법 같은 시너지를 알아봅니다.
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만 접근할 수 있게 설정합니다.
- 사용자가
cdn.example.com/logo.png요청 - CloudFront 엣지에 캐시가 있다면 즉시 응답 (Cache Hit)
- 없다면 S3에서 파일을 가져와 엣지에 저장 후 응답 (Cache Miss)
- 이후 요청은 엣지에서 바로 처리
4. 비용과 보안의 팁
- 비용 절감: S3에서 직접 데이터를 나가는 비용보다 CloudFront를 통해 나가는 비용이 대량 트래픽에서 더 저렴할 때가 많습니다.
- 보안:
Signed URL기능을 쓰면 유료 콘텐츠나 개인화된 파일을 특정 시간 동안만 접근 가능하도록 제한할 수 있습니다.
💡 마무리하며
2026년 현대적 웹 아키텍처에서 API 서버는 오직 JSON 데이터만 처리해야 합니다. 무거운 정적 자원은 S3와 CDN에 맡기세요. 서버의 리소스를 아끼는 것뿐만 아니라, 전 세계 사용자에게 최상의 경험을 제공하는 가장 확실한 방법입니다.
728x90
반응형
'아키텍처' 카테고리의 다른 글
| Redis가 죽으면 서비스도 죽는다? Sentinel vs Cluster로 고가용성(HA) 구축하기 (0) | 2026.04.10 |
|---|---|
| 데이터가 꼬이지 않는 캐시 운영 전략: Cache-Aside부터 Write-Back까지 완벽 정리 (0) | 2026.04.08 |
| 서버 부하를 덜어주는 마법: 로컬 캐시(Ehcache) vs 글로벌 캐시(Redis) 선택 가이드 (0) | 2026.04.06 |
| MSA 트랜잭션의 구원자: 2PC(Two-Phase Commit)와 Saga 패턴 완벽 이해 (0) | 2026.04.02 |
| 서버 한 대로 안 될 때: 로드밸런서(L4 vs L7)와 Nginx 리버스 프록시 완벽 이해 (0) | 2026.03.12 |
댓글