[AWS] CloudFront

2023. 3. 22. 16:23카테고리 없음

 

CloudFront  = Cache Server + CDN

Cloudfront는 캐시 서버와 CDN 기능을 하는 AWS서비스이다.

 

기능1. Cache Server: 웹페이지를 php 또는 Node.js로 만들어서 서비스를 제공하고 있을 때, 사용자 요청이 들어오면 정적으로 html을 전송하는 것이 아니라, 일년의 작업을 하고 html을 생성하여 응답해주는 방식으로 동작한다. 이렇게 동적으로 html파일을 생성해서 서비스하는 방식은 정적파일을 바로 제공하는 것보다 더 많은 리소스를 사용하게 된다. 웹페이지가 자주 변경되지 않는 경우, 사용자의 요청이 들어올 때마다 같은 작업을 하는건 당연히 비효율적이다. 그래서 컨텐츠 한 번 전송하면 그 다음 요청시 같은 복잡한 과정을 거치지않고 저장된 결과를 서비스하는 방식이 캐시이고, 이 역활을 담당하는 서버를 캐싱서버이다. 

 

기능2. CDN (Content Delivery Network, 컨텐츠 전송 네트워크): content를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템이다. 예로, 우리의 서버가 서울에 있고, 뉴욕에 사용자가 많다고 가정하면 뉴욕에 있는 사용자들은 시간이 오래걸린다. 이런 상황에서 전세계 사용자가 동일하게 빠르게 컨텐츠를 접속할 수 있도록 도와주는 서비스가 CDN 이다. 

 

  • 온라인 상의 대용량 컨텐츠를 저렴한 비용으로 빠르게 전송
  • 주요 ISP(Internet Service Provider)의 CDN서버에 콘텐츠를 분산 - user 네트워크 경로 상 가장 가까운 곳 서버로부터 컨텐츠를 전송받는다. 
  • 트래픽이 특정서버에 집중되지 않고, 각 지역 서버로 분산되는 기술
  • 파일찾기 실패 및 컨텐츠가 오래된 경우 원본 서버에서 파일 조회 - 이후 동일한 컨텐츠 캐싱
  • 보안: 기본적으로 DDos 공격을 비롯한 여려 유혀으이 공격에 대해 유연한 계층형 보안방어가 구축되어있다. 애플리케이션과 인프라에 대한 "관문"으로 사용하게 되면, 중요한 컨텐츠, 데이터, 코드 및 인프라에 대한 주요 공격을 차단할 수 있다. 
  • 접근권한 설정: 서명된 URL과 쿠키를 사용하면 토큰 인증을 지원하여 인증된 최종 사용자만 엑세스하도록 제한 가능하다. 또한 특정 지리적 위치에 있는 사용자가 엑세스하는 것도 차단 가능하다.