AWS

AWS CloudFront - CDN과 엣지 로케이션으로 빠르고 안전한 콘텐츠 전송

heesoohi 2025. 4. 4. 19:27

# AWS CloudFront

 

CloudFront는 컨텐츠 전송 네트워크(CDN)로, 여러 엣지 로케이션에서 웹사이트의 콘텐츠를 캐싱하여 읽기 성능을 향상시킨다. 전 세계에 걸쳐 콘텐츠를 캐싱하기 때문에, 전 세계 사용자들에게 대기 시간을 단축시켜 사용자 경험을 개선해주는 서비스이다. 

 

CloudFront는 전 세계 216개의 접속 지점을 두고 있다. 세계 곳곳에 위치한 'AWS 엣지 로케이션'이 바로 그것! 아마존은 계속해서 로케이션을 추가하고 있고, 그로 인해 사용자 경험은 계속 개선되고 있다. 

 

 

 

 

위 사진을 예시로 살펴보자면, 호주에 S3 버킷을 생성하고 웹사이트를 만든 상황에서, 사용자는 미국에 있는 경우를 생각해보자. 

 

CloudFront를 사용하면, 사용자는 미국에 있는 엣지 로케이션에서 컨텐츠를 요청할 수 있고, CloudFront는 호주에서 컨텐츠를 가져오게 될 것이다. 

 

미국에 있는 또 다른 사용자가 동일한 컨텐츠를 요청한다면, 호주에서 가져온 컨텐츠가 미국의 엣지 로케이션에 존재하는 상태이기 때문에, 엣지에서 곧바로 제공된다. 멀리 호주까지 가서 컨텐츠를 가져오는 것이 아니며, 덕분에 지연 시간이 크게 단축된다. 

 

사용자가 중국에 있는 경우에도, 중국의 엣지 로케이션과 통신해서 S3 버킷으로 리디렉션되고 컨텐츠는 엣지에 캐싱된다. 

 

 

 

# 하이 레벨에서의 CloudFront


전 세계에 엣지 로케이션이 퍼져있고, 이 로케이션을 통해 사용자들이 오리진으로 연결된다. 오리진은 S3 버킷, HTTP 서버 등이 될 수 있다. 

 

 

 

 

클라이언트가 엣지 로케이션으로 연결해서 HTTP 요청을 하면, 엣지 로케이션은 캐시에 있는지 확인한다. 캐시에 없으면 오리진으로 가서 요청 결과를 받아오고, 결과를 받아오면 로컬 캐시에 캐싱해서 다른 클라이언트가 동일한 엣지 로케이션에서 동일한 컨텐츠를 요청할 때, 오리진으로 다시 이동할 필요 없이 캐싱 데이터를 보내줄 것이다. 

 

 

 

 

# S3가 오리진인 경우

 

S3 버킷이 어떤 지역의 오리진인 경우, 엣지 로케이션은 프라이빗 네트워크를 통해 S3 버킷 오리진으로부터 컨텐츠를 받아올 것이고, 예를 들어 LA에 있는 엣지 로케이션으로 액세스하는 사용자는 해당 엣지 로케이션에서 제공하는 컨텐츠를 곧바로 받게 될 것이다. 

 

 

 

 

이 경우, S3 버킷은 Origin Access Control을 사용해서 S3 버킷 정책을 수정하여 보안을 유지한다. 

 

 

이렇게 CloudFront와 엣지 로케이션을 이용하면 한 리전에 있는 S3 버킷의 콘텐츠를 엣지 로케이션을 통해 전 세계에 배포 가능한지 확인할 수 있다.