DevOps BootCamp/AWS

CloudFront

cloudmaster 2023. 4. 18. 10:43

 > 전 세계 티어 1,2,3 의 이동통신사와 협력하여 네트워크에 연결된 글로벌 CDN(Content Delivery Network) 서비스

 

 > 저지연성과 고속전송 속성을 지닌 콘텐츠 배포 기능을 제공

 

 > 콘텐츠 사용자와 가까운 지역(엣지 로케이션)에 네트워크망을 구축하고, 지역별 엣지 캐시를 통해 사용자 경험 수준을 높일 수 있게 함

 

 > 정적 콘텐츠 뿐만 아니라 동적 콘텐츠도 지원하며, 사용자 요청은 가장 가까운 엣지 로케이션에서 처리

 

CloudFront의 핵심 개념

 > 엣지 로케이션이라 부르는 글로벌 데이터센터 네트워크를 통해 콘텐츠를 배포

 

 > 전 세계 주요 대도시에 위치하며, AWS 리전 시설의 위치와는 다를 수 있음

 

 > 지역별 엣지 캐시

 : 웹 서버와 엣지 로케이션 사이에 위치해 사용자에게 직접 콘텐츠를 전송

 

 > 특정 콘텐츠의 인기가 줄어들수록 개별 엣지 로케이션에서는 해당 객체를 삭제해 인기가 많은 콘텐츠를 제공할 수 있는 여유 공간을 확보

 

 > 지역별 엣지 캐시는 엣지 로케이션보다 높은 수준의 캐싱 능력을 바탕으로 좀 더 오랜 시간 캐싱 데이터를 유지

 

 > 지역별 엣지 캐시는 CloudFront의 기본 기능이므로 사용자는 별도의 설정 작업을 하거나 비용을 부담할 필요가 없음

 

CloudFront의 활용 시나리오

 > 정적 콘텐츠 캐싱 CloudFront의 가장 대표적인 활용방식

 

 > 네트워크 최적화를 통한 동적 콘텐츠 가속화 기능을 제공, EC2 서버에서 실행 중인 애플리케이션 또는 웹사이트를 CloudFront와 통합

 

 > CloudFront는 OSI 모델의 L3, L4, L7을 보호할 수 있는 AWS Shield, WAF를 통합해 DDoS 공격을 방어

   -> TLS 연결 및 서명 URL을 통한 사용자 인증 등의 기능을 제공

 

 > 강화된 보안성 CloudFront는 SSL(HTTPS)방식의 보안 기능을 제공, 보안이 강화된 API, SSL/TSL 적용, advanced SSL 기능을 자동으로 적용, 보안 수준을 유지하기 위해 PCI, DDS, HIPAA, ISO 규정을 준수

 

CloudFront의 적용 방식

경로 패턴 매칭

 > 웹사이트 또는 애플리케이션의 URL 경로 패턴에 따라 다양한 캐시 제어 동작을 설정

 

 > 예를 들어 CloudFront가 이미지 뷰어로부터 요청을 받으면 요청 경로는 images/*.jpg와 같은 경로 패턴과 비교해 그에 맞는 제어 동작을 적용

 

 > HTTP/HTTPS 프로토콜 설정, 헤어 또는 캐싱 옵션 설정, 쿠키 및 쿼리 문자열 포워딩 설정, 접근 제한등의 방식으로 특정 오리진으로 요청을 전송

 

헤더

 > 헤더 값을 통해 요청 헤더를 오리진 캐시로 포워딩

 

 > 디바이스의 헤더를 확인한 뒤 그에 맞는 동작을 적용

 

 > 예를 들어 동일한 사이트를 접속한 노트북 사용자와 스마트폰 사용자의 요청에 각기 다른 반응을 제공

 

쿼리(query) 문자열 및 쿠키

 > 웹 애플리케이션 중 일부는 오리진으로 정보를 전달하기 위해 쿼리 문자열을 사용

 

 > 웹 요청의 일부로, ? 기호 다음에 나오며, 하나 이상의 파라미터를 & 기호로 연결해 사용

 

서명 URL, 서명 쿠키

서명 URL

 

 > 정적 콘텐츠를 S3 버킷에 옮긴 뒤, CloudFront의 서명 URL 방식을 통해 해당 콘텐츠에 대한 비인가 접근을 막을 수 있음

 

 > 서명 URL에는 만료일 및 만료 시간 등의 부가 정보가 포함돼 있어 콘텐츠에 대한 접근을 조금 더 세심하게 제어 할 수 있음

 

 > 서명 URL을 이용해 웹 서버가 S3 버킷의 콘텐츠에 접근할 수 있는 시간 또는 방식을 제어

 

 > 사용자가 특정 콘텐츠에 대한 접근을 요청할 경우 접속 시간 제약이 설정된 서명 URL 링크를 전달 받게 됨

 

서명 쿠키

 

 > 서명 쿠키는 기능상으로는 서명 URL과 거의 동일하며 단지 HTTP 쿠키에 추가 정보를 넣는다는 점이 다름

 

 > 다수 객체에 대한 접근 제어, URL 변경 없이 동일 객체에 대한 접근 제어를 해야할 때 유용

 

 > 사용자가 웹사이트에서 인증을 받으면 Set-Cookie 헤더가 사용자 계정에 전달되며 이는 사용자 디바이스의 쿠키에 적용

 

 > 사용자가 제한 객체에 대한 접근을 요청하면 브라우저는 요청에 포함된 쿠키를 포워딩

 

 > CloudFront가 쿠키 속성을 확인해 접근 허용 또는 차단 여부를 결정

 

 

지역 제한 기능

 > 사용자가 콘텐츠에 대한 요청을 하면 CloudFront는 사용자의 위치에 상관 없이 콘텐츠를 전송

 

 > 특정 국가의 콘텐츠 요청을 거부하려면 다음과 같은 지역 제한 기능을 사용

  • 접속 허용 국가 목록인 화이트리스트를 기반으로 요청 콘텐츠에 대한 접근을 허용하는 방법
  • 접속 금지 국가 목록인 블랙리스트를 기반으로 요청 콘텐츠에 대한 접근을 거절하는 방법

 

오류 처리 기능

 > 콘텐츠 요청에 대해 오리진 서버가 HTTP 4xx, 5xx 상태 코드를 반환하면 사용자에게 커스텀 오류 페이지를 제공

 

 > 예를 들어 커스텀 오리진 서버가 사용 불능 상태고, 5xx 응답을 반환하면, CloudFront는 S3에 호스팅된 정적 페이지를 제공

 

 > 최소 유지시간(TTL)을 정의해 CloudFront 캐시 오류를 얼마나 오래 유지 할지 조절

'DevOps BootCamp > AWS' 카테고리의 다른 글

도메인 연결과 CDN 및 HTTPS 적용  (0) 2023.04.19
Route 53  (0) 2023.04.18
Elastic Load Balancing  (0) 2023.04.18
Auto Scaling Group  (0) 2023.04.18
RDS  (0) 2023.04.14