안녕하세요
오늘은 Amazon CloudFront란 무엇인지 개념에 대해서 설명하겠습니다.
CloudFront란 AWS에서 제공하는 콘텐츠 전승 네트워크(CDN, Content Delivery Network) 서비스 입니다.
CloudFront를 설명하기에 앞서 CDN이란 무엇인지 먼저 알아보도록 하겠습니다.
CDN 이란?
CDN(Content Delivery Network)은 콘텐츠 전송 네트워크로써 사용자가 해당 서버에서 멀리 떨어져 있는경우 웹사이트 이미지,동영상과 같은 대용량 파일을 로드하는 데 오래 걸립니다.
이러한 문제를 타파하기위해 지리적으로 사용자와 가까운 CDN 서버에 저장되며 컴퓨터에 훨씬 빨리 CDN서버에 저장되며 컴퓨터에 훨씬 빨리 도달합니다.
그러기에 CDN은 사용자의 가까운 위치에 있는 캐시 서버(엣지 서버)에 콘텐츠를 저장하여 빠르게 제공합니다.
📌 CDN의 주요 기능
1️⃣ 콘텐츠 로딩 속도 향상
- 사용자의 위치와 가까운 엣지 서버(Edge Server)에서 콘텐츠를 제공하여 지연시간(Latency) 감소.
- 예) 한국에서 접속하면 한국에 있는 CDN 서버에서 제공 → 빠른 로딩 속도.
2️⃣서버 부하 감소
- 웹사이트의 정적 콘텐츠(이미지, CSS, JavaScript, 동영상 등)를 캐싱하여 오리진 서버 요청을 줄임.
- 많은 사용자가 동시에 접속해도 서버가 다운되지 않도록 안정성 제공.
3️⃣ 보안 강화
- HTTPS 지원 및 DDoS(디도스) 공격 방어 기능 제공.
- CloudFront와 같은 AWS CDN은 AWS WAF와 연계하여 보안 강화 가능.
4️⃣ 대역폭 비용 절감
- 오리진 서버에서 직접 데이터를 제공하는 것이 아니라 CDN 서버가 캐싱된 데이터를 제공하여 네트워크 비용 절감.
엣지 서버(Edge Server) : 사용자의 가까운 위치에서 데이터를 캐싱하고 제공하여 콘텐츠 로딩 속도를 빠르게 해주는 서버입니다.
📌CDN의 작동원리
1️⃣ 사용자가 웹사이트 또는 서비스에 접속
사용자가 웹사이트에 접속하거나 동영상을 재생하면, 브라우저나 앱이 해당 콘텐츠를 요청합니다.
2️⃣ DNS를 통해 가장 가까운 엣지 서버로 연결
CDN 서비스는 사용자의 위치를 기반으로 가장 가까운 엣지 서버(Edge Server)를 찾습니다.
👉 예를 들어, 한국 사용자가 미국 서버의 콘텐츠를 요청하면, 한국에 있는 CDN 엣지 서버가 대신 응답합니다.
3️⃣ 엣지 서버에 캐싱된 데이터 제공 (있으면)
엣지 서버에 요청한 콘텐츠가 이미 캐싱되어 있으면 즉시 사용자에게 제공하여 로딩 속도를 빠르게 합니다.
4️⃣ 엣지 서버에 캐시가 없으면 오리진 서버에서 가져옴
요청한 콘텐츠가 엣지 서버에 없을 경우, 오리진 서버(AWS S3, EC2, 원본 서버 등)에서 데이터를 가져옵니다.
가져온 데이터는 엣지 서버에 캐싱되며, 이후 같은 요청이 오면 빠르게 응답할 수 있습니다.
5️⃣ 사용자에게 최종 콘텐츠 제공
엣지 서버에서 받은 콘텐츠를 사용자에게 전달하여, 빠른 로딩 속도를 보장합니다.
오리진 서버 : 웹사이트나 애플리케이션의 원본 데이터를 저장하고 제공하는 중앙 서버로, CDN이 캐싱할 콘텐츠를 가져오는 출처입니다.
이제는 CloudFront에 대해서 알아봅시다
CloudFront란?
CloudFront는 AWS에서 제공하는 CDN서비스 입니다.
html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스입니다
전 세계에 엣지 서버(로케이션)을 두고 지연 시간이 가장 낮은 엣지 서버(로케이션)을 찾아 빠른 데이터를 제공합니다.
요청한 콘텐츠가 엣지 서버(로케이션)에 없는경우 CloudFront는 콘텐츠의 최종 버전에 대한 소스로 지정된 오리진 에서 콘텐츠를 검색합니다.
📌 CloudFront의 주요 구성 요소
1️⃣ 오리진(Origin)
- CloudFront가 콘텐츠를 가져오는 원본 서버입니다.
- 예) S3 버킷, EC2 인스턴스, ALB(Elastic Load Balancer), API Gateway 등
2️⃣ 엣지 로케이션(Edge Location)
- 사용자의 가까운 위치에서 콘텐츠를 캐싱하여 제공하는 서버입니다.
- 전 세계 여러 지역에 분산되어 있어 지연 시간을 최소화합니다.
3️⃣ 캐시 키(Cache key)
- CloudFront에서 캐싱되는 데이터들은 고유의 Cache Key단위로 캐싱됩니다.
- Path, Query String, HTTP Header,Cookie와 같은 여러 요소로 캐시 키를 만들어 데이터가 캐싱됩니다.
📌CloudFront 작동방식
1️⃣ 사용자가 웹사이트 또는 애플리케이션에 액세스
사용자가 웹사이트나 앱에서 이미지, HTML 파일 등의 콘텐츠를 요청합니다.
2️⃣ DNS가 최적의 CloudFront POP(엣지 로케이션)으로 라우팅
DNS는 요청을 지연 시간이 가장 짧은 CloudFront 엣지 로케이션으로 보냅니다.
3️⃣ CloudFront가 엣지 서버 캐시 확인
엣지 로케이션에서 요청된 객체(콘텐츠)가 캐시에 있는지 확인합니다.
✅ 캐시에 존재 → 즉시 사용자에게 반환
❌ 캐시에 없음 → 오리진 서버에서 가져와야 함
4️⃣ CloudFront가 원본 서버(오리진)로 요청 전달
객체가 없으면, CloudFront는 요청을 배포 설정에 따라 오리진 서버(Amazon S3, EC2, ALB 등)로 전달합니다.
5️⃣ 원본 서버가 객체를 CloudFront 엣지 로케이션으로 반환
오리진 서버에서 요청된 콘텐츠를 다시 CloudFront 엣지 서버로 보냅니다.
6️⃣ CloudFront가 객체를 사용자에게 전달
첫 번째 바이트가 도착하는 즉시 CloudFront는 객체를 사용자에게 전송하기 시작합니다.
7️⃣ CloudFront가 객체를 캐싱
요청된 객체를 엣지 서버 캐시에 저장하여, 다음 사용자가 동일한 콘텐츠를 요청할 경우 더 빠르게 제공할 수 있도록 합니다.
📌CloudFront의 장점
1️⃣ 성능 향상
- AWS 글로벌 네트워크를 사용하여 사용자의 요청이 반드시 통과해야 하는 네트워크 수를 줄여 성능을 최적화합니다.
- 파일(객체)의 첫 바이트 로딩 지연 시간을 줄이고, 데이터 전송 속도를 빠르게 합니다.
2️⃣ 안정성과 가용성 향상
- CloudFront는 파일(객체)의 사본을 전 세계 여러 엣지 로케이션에 캐싱하여 유지합니다.
- 이를 통해 서버 장애가 발생하더라도 지속적으로 콘텐츠를 제공할 수 있어 서비스 가용성이 향상됩니다.
3️⃣ 보안성 향상
- 오리진 서버와 CloudFront 간 HTTPS 연결을 통해 종단 간 보안을 보장합니다.
- 서명된 URL 및 쿠키를 사용하여 프라이빗 콘텐츠를 특정 사용자에게만 제공할 수 있도록 설정할 수 있습니다.
- AWS WAF 및 AWS Shield와 연계하여 DDoS 공격을 방어할 수 있습니다.
다음 시간에는 CloudFront 설정 방법에대하여 알아보도록 하겠습니다.
감사합니다