Programming

[AWS, Certified Developer Associate] CloudFront

CloudFront

  • CDN (Content Delivery Network, 콘텐츠 전송 네트워크)
  • 여러 엣지 로케이션에서 웹사이트의 콘텐츠를 캐싱해 read 성능 높임
  • 지연시간 감소 / 사용자 경험 향상
  • 전세계 216개의 접속지점(POP) = edge location
  • 전세계에 콘텐츠 분산 / Shield와 Web Application Firewall을 통해 ddos 방어

 

CloudFront - Origin

  • S3 Bucket
    • 엣지에서 파일을 전세계로 분산하고 캐싱처리
    • CloudFront만 S3 버킷에 접근 가능하도록 Origin Access Control (OAC) 설정 가능
      • Origin Access Identity (OAI) 대체
    • CloudFront에서 S3에 파일 업로드 가능 (= ingress)
  • Custom Origin (HTTP)
    • ALB / EC2 Instance / S3 website (먼저 버킷을 정적 S3 웹사이트로 설정)
    • 그 외 모든 HTTP Backend

 

CloudFront vs S3 Cross Region Replication

  • CloudFront는 Global Edge Network 사용
    • 파일은 보통 1일 TTL을 가지고 캐싱 처리
    • 전세계로 공유될 정적 콘텐츠가 있을 경우 유용
  • S3 Cross Region Replication은 복제하려는 각 리전을 설정해야함
    • 전 세계 모든 리전에 일괄 적용되는 것이 아님
    • 파일이 거의 실시간으로 업데이트 됨 (캐싱처리 X 읽기전용)
    • 변경이 자주 발생하는 동적 콘텐츠를 소수 리전에 짧은 지연시간 안에 제공해야 할 경우 유용

 

CloudFront - 캐싱 정책 / 동작

  • 기본적으로 캐시 키는 Host + Resource URI로 생성
  • (Cache Policy) 필요 시 캐시 키에 Cookie, QueryString, Header 추가 가능 (Whitelist, All include - Except, All)
    • 포함하지 않을 경우 캐시 성능이 최상
  • (Origin Request Policy) 캐시키에는 포함하지 않되 Origin 요청에는 포함하도록 설정 가능
  • (Cache Behavior) 특정 API 요청 (/api/*)에 대해서는 ALB Origin으로, 그 외 API에 대해서는 S3 Origin으로 요청을 보내도록 할 수 있음
    • S3에 로그인한 사용자만 처리 가능하도록 가능
    • /login 에 접속한 사용자는 EC2 Instance Origin으로 보내 CloudFront 서명된 쿠키 반환
    • 해당 쿠키를 통해 그 외 접속 사용자는 S3 Bucket으로 보내 서명된 사용자에 대해서만 S3 접근 가능

 

 

 

 


Reference

Udemy - AWS Certified Developer Associate 시험 합격을 위한 모든 것!