본문 바로가기
Amazon Web Serivce 자격증 쉽게 공부하기/[C00]AWS Advanced Networking Specialty

ANS #10, Cloudfront

by 네트워크 엔지니어 환영 2020. 9. 16.
반응형

Introduction to Cloudfront

  • 전 세계에 퍼져있는 Edge location를 통해 Origin server를 대신하여 물리적으로 가까운 Edge location을 통해 Contents를 제공받을 수 있게 하는 서비스
  • Origin server로 S3뿐만 아니라 EC2, ELB, Route 53 연결 가능
  • 두 가지의 분배 옵션이 존재(WEB, RMTP)
  • Edge location은 CDN을 생성
  • 잘못 업로드된 Contents  Caching을 제어하는 방법
    • 대체할 Contents를 올리고 잘못된 Contents의 캐싱 시간인 TTL이 만료될 때까지 대기
    • Object의 이름을 변경
    • Invalidation 생성
  • Signed URL, WAF(Web Application Firewall), ACM(Certificate Manager) 기능 제공

<Cloudfront와 Edge Location(출처 : Rick Crisci ANS 강의)>

How Cloudfront delivers content

1. 사용자가 하나 이상의 파일을 요청
2. DNS가 요청을 최적으로 서비스할 수 있는 Cloudfront POP(Edge Location)으로 요청을 라우팅
3. 캐시에 없을 경우 파일에 대한 요청을 해당하는 파일 형식으로 사용자의 오리진 서버에 전달
4. 오리진 서버는 파일을 Edge Location에 전달
5. 오리진에서 첫 번째 바이트가 도착하면 Cloudfront가 파일을 사용자에게 전달하기 시작

Securting Cloudfront Traffic using Encryption

  • Client와 Cloudfront, Cloudfront와 Origin 간의 암호화 통신에 대한 설정
  • Client와 Cloudfront 간의 암호화 통신 설정
    • Redirect HTTP to HTTPS : 두 프로토콜을 모두 사용할 수 있으며, HTTP GET/HEAD 요청은 HTTPS로 자동 Redirection됨. HTTP 상태코드 301과 함께 새로운 HTTPS URL을 Client에게 반환
    • HTTPS only : HTTPS를 사용할 경우에만 액세스 가능
  • Cloudfront와 S3 Origin 간의 암호화 통신 설정
    • Redirect HTTP to HTTPS : 두 프로토콜을 모두 사용할 수 있으며, HTTP GET/HEAD 요청은 HTTPS로 자동 Redirection됨. HTTP 상태코드 301과 함께 새로운 HTTPS URL을 Client에게 반환
    • HTTPS only : HTTPS를 사용할 경우에만 액세스 가능
  • Custom Origin의 경우
    • HTTPS only : HTTPS를 사용할 경우에만 액세스 가능
    • HTTP only : HTTP를 사용할 경우에 액세스 가능
    • Match Viewer : 사용자의 요청에 따라 HTTPS 혹은 HTTP 두 프로토콜 모두 사용 가능
    • Origin Protocol : cloudfront와 origin이 사용할 프로토콜 선택 가능, TLSv1 은 SSLv3와 이전 버전과 호환되지만 TLSv1.1, TLSv1.2는 호환되지 않음

Lambda@Edge

  • Cloudfront를 통해 전달되는 콘텐츠를 대상으로 함수를 실행시켜 가공하는 기능
  • 서버를 프로비저닝할 필요 없는 Lambda의 특징을 살려 최종 사용자에게 가까운 전 세계 AWS 위치에서 함수 실행 가능
  • 사용 용도
    • 사용자가 A/B 테스트를 하는 경우, 이를 위해 사이트의 다양한 버전을 볼 수 있도록 쿠키를 검사하고 쿠키값에 따라 다른 URL을 작성하여 최종 사용자가 원하는 객체 반환
    • User-agent 헤더를 사용해 사용중인 디바이스를 기반으로 최종 사용자에게 다양한 객체 반환
  • CloudWatch를 사용하여 Lambda@Edge의 지표를 모니터링할 수 있음
  • 함수 로그를 Cloudwatch Logs에 보내 로그 파일에 액세스 할 수 있음

Restricting Geographic Distribution of Content

  • 특정 국가의 사용자들이 콘텐츠에 액세스하는 것을 방지해야 할 경우 사용
    • 사용자가 승인한 화이트리스트에 있는 국가만을 액세스 허용
    • 사용자가 금지한 블랙리스트에 있는 국가의 액세스 금지
  • Cloudfront는 타사 GeoIP 데이터베이스를 이용하여 사용자의 위치를 확인함
  • 사용자의 위치를 확인할 수 없는 경우 사용자가 요청한 콘텐츠를 제공함

댓글