Amazon CloudFront는 .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스입니다. CloudFront는 엣지 로케이션이라고 하는 데이터 센터의 전 세계 네트워크를 통해 콘텐츠를 제공합니다. CloudFront를 통해 서비스하는 콘텐츠를 사용자가 요청하면 지연 시간이 가장 낮은 엣지 로케이션으로 요청이 라우팅되므로 가능한 최고의 성능으로 콘텐츠가 제공됩니다.
Content Distribution Network(CDN)
읽기 능력을 향상시키기 위해 컨텐츠는 엣지에 캐시됩니다.
• 콘텐츠가 이미 지연 시간이 가장 낮은 엣지 로케이션에 있는 경우 CloudFront가 콘텐츠를 즉시 제공합니다.
• 콘텐츠가 엣지 로케이션에 없는 경우 CloudFront는 콘텐츠의 최종 버전에 대한 소스로 지정된 오리진(Amazon S3 버킷, MediaPackage 채널, HTTP 서버(예: 웹 서버) 등)에서 콘텐츠를 검색합니다.
대략 200개 이상의 엣지가 전세계적으로 분포되어 있다.
배포된 서비스를 거부하는 등의 공격으로부터 보호하기 위한 방화벽을 만들어 DDos 공격을 막습니다. (서버가 분리된 환경 자체가 DDOS 공격을 막는 것에 도움을 줍니다.)
인증서를 로드해 HTTPS 엔드포인트를 expose 해주며 해당 트래픽을 암호화 해야 하는 경우 내부적으로 HTTPS로 애플리케이션과 통신합니다.
AWS의 엣지 지도를 보면, 전세계에 있는 AWS 엣지와 엣지 캐쉬 분포를
볼 수 있습니다.
가령 호주에 위치한 S3 버킷에 웹사이트를 만들었다 하더라도 미국에 있는 사용자는 CloudFront를 이용해 미국에 있는 엣지에 컨텐츠를 요청하게 됩니다.
그럼 CloudFront가 호주에서 이 컨텐츠를 페치해서 가져오게 되죠.
그리고 미국의 다른 사용자가 똑같은 컨텐츠를 요청한다면, 이 컨텐츠는
호주에서 출발하지 않고 엣지에서 직접 컨텐츠를 제공받게 됩니다.
같은 방식으로, 사용자가 한국에 있다면 한국에 있는 엣지 포인트로 접속해서
앞서와 같은 방식으로 컨텐츠를 제공받을 수 있습니다.
사용자 지정 HTTP 백엔드에 접근을 하려할 때 CloudFront는 가상 프라이빗 클라우드가 없기 때문에 EC2든 ALB든 공용IP가 접근할 수 있도록 보안그룹을 설정해줘야합니다.
블랙리스트와 화이트리스트에 제한하고 싶은 국가를 지정해 원하는 나라에서 들어온 IP만 접근하도록 할 수 있습니다.
나라
에 대한 정보는 Geo-IP라는 서드파티 데이터베이스를 통해 IP 정보를 얻을 수 있습니다.예를 들어, 저작권 법 상 다른 나라의 접근을 막아야 할 때가 있는데, 미국에 있는 정보를 프랑스에서 얻으려고 하면 이를 제한해야 하는 상황이 올 수 있습니다.
백엔드 오리진을 업데이트하는 경우 CloudFront는 이에 대해 알지 못하며 TTL이 만료된 후에만 새로 고침된 콘텐츠를 가져옵니다.
• 업데이트가 바로 반영되지 못하는 문제
CloudFront Cache Invalidations를 수행하면 전체 또는 부분 캐시 새로 고침(따라서 TTL 우회)을 강제할 수 있습니다.
• 모든 파일() 또는 특수 경로(/images/)에 대한 캐시의 경로를 무효화하는 조치를 통해 캐시로부터 파일을 지우고,
• 엣지 로케이션에 CloudFront가 새 요청을 보내면 더이상 캐시에 해당 파일이 없다고 판단하고 새로운 파일을 받아 업데이트합니다.
https://kungfutech.edu.vn/bai-viet/aws/cloudfront-advanced
특정 국가에서는 가격이 저렴한 국가에 비해 두배 가까이 가격이 뛸 수 있기 때문에, 비용절감을 위해 엣지 로케이션 수를 줄일 수 있습니다.
가격 등급 모두: 모든 지역 – 최고의 성능
가격 등급 200: 대부분의 지역이지만 가장 비싼 지역은 제외
가격 등급 100: 가장 저렴한 지역만