S3로 클라이언트 배포시 Http로만 배포하기 때문에 보안상 좋지가 않다. 그래서 Https로 배포를 위해 CloudFront를 이용했다.
CloudFront는 AWS에서 제공하는 CDN 서비스이며, 캐싱을 통해 사용자에게 좀 더 빠른 전송 속도를 제공함이 목적이다. 전 세계 이곳저곳에 Edge Server(Location)을 두고 Client에 가장 가까운 Edge Server를 찾아 Latency를 최소화시켜 빠른 데이터를 제공한다.
또한, CloudFront는 SSL 인증서를 이용한 HTTPS 호스팅을 지원한다.
Origin Server : 원본 데이터를 가지고 있는 서버, 보통 AWS에서의 Origin Server는 S3, Ec2 instance
Edge Server = Edge Location : AWS에서 실질적으로 제공하는 전 세계에 퍼져있는 서버, Edge Server에는 요청받은 데이터에 대해서 같은 요청에 대해서 빠르게 응답해주기 위해 Cache 기능을 제공한다.
⭐ CDN(Content Delivery Network)
콘텐츠 전송 네트워크, 물리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술이다.
서버와 사용자 사이의 물리적인 거리를 줄여 콘텐츠 로딩에 소요되는 시간을 최소화하며 각 지역에 캐시 서버(PoP, Points of presence)를 분산 배치해, 근접한 사용자의 요청에 원본 서버가 아닌 캐시 서버가 콘텐츠를 전달한다.
또한 CDN은 보안을 강화해 DDoS(Distributed Denial-of-Service) 공격과 같은 보안 문제와 악의적 공격자를 차단하는 기능을 웹사이트에 제공할 수도 있다
데이터 전송이 발생하는 과정
클라이언트로부터 Edge Server로의 요청이 발생한다.
Edge Server는 요청이 발생한 데이터에 대하여 캐싱 여부를 확인한다.
3-1. 사용자의 근거리에 위치한 Edge Server 중 캐싱 데이터가 존재한다면 사용자의 요청에 맞는 데이터를 응답한다.
3-2. 사용자의 요청에 적합한 데이터가 캐싱되어 있지 않은 경우 Origin Server로 요청이 포워딩된다.