[Udemy]CloudFront 정리

전역변주의 DB·2024년 1월 15일

Udemy-SAA강의기록

목록 보기
8/8

AWS CloudFront

  • CDN (컨텐츠 딜리버리 네트워크)
  • 서로 다른 엣지 로케이션에 미리 캐싱하여 읽기 성능을 높이는 것.
  • 네트워크 전체에 캐싱되므로 전세계 사용자들이 낮은 레이턴시로 접근할 수 있어서 사용자 경험을 증대시킬 수 있다.
  • 216개의 엣지 로케이션 + 계속 추가중
  • 컨텐츠가 전 세계적으로 분포되어있어서 DDoS 에 대해서 보호할 수 있다.

CloudFront의 원본(Origin)

S3

  • 버킷에 CloudFront 만 접근할 수 있게 보장할 수 있다. ⇒ OAC(Origin Access Control_원본접근제어) 로 기존의 OAI 를 대체한다. (Origin Access Identity)
  • CloudFront를 통해서 S3 버킷에 데이터를 보내는 것도 가능 ⇒ Ingress

Custome Origin(HTTP) - 사용자 정의 원본

  • ALB
  • EC2
  • S3 website ( 버키을 활성화해서 정적 웹 사이트로 설정해야한다. 그 외의 다른 HTTP 백엔드도 가능하다)

CloudFront 지리적 제한(Geo restriction)

  • 사용자의 지역에 따라 배포 객체에 대해 접근을 제한할 수 있다. (접근 가능 목록 / 제한 목록 )
  • 사용 사례 : 컨텐츠 제한 지역 등

고급 옵션 (Pricing)

  • 전 세계 / 엣지 로케이션 마다 데이터 전송 비용이 다르다.
  • 더 많은 데이터가 전송될 수록 비용은 낮아진다.
  • 비용 절감을 위해 전 세계 엣지 로케이션 수를 줄이는 방법이 있다.
    • 3가지 등급
    1. Price Class All : 모든 리전 - 최고의 성능
    2. Price Class 200 : 대부분의 리전 사용 가능 (가장 비싼 리전 제외)
    3. Price Class 100 : 가장 저렴한 리전만 사용 (북미 & 유럽)

CloudFront - 캐시무효화(Cache Invalidations)

  • cloudFront 의 원본인 백엔드 Origin(오리진) 이 존재한다.
  • 엣지 로케이션은 백엔드 오리진을 업데이트하면 모.른.다.
  • 캐시의 TTL이 만료되면, 업데이트 된 콘텐츠를 받을 수 있는데, 만료되기 전에 새 콘텐츠를 받고 싶을 수 있다.
  • 그러면, 전체 or 일부의 캐시를 강제로 새로고침해서 캐시에 있는 TTL 을 모두 제거할 수 있다.
  • 이를 위해 CloudFront 캐시 무효화를 실행해야한다.
  • CloudFront 캐시 무효화를 실행 방법
    • 특정 파일 경로를 전달해야한다. ( 전체 or 특정 경로 무효화, or /images/ 이런 식으로)

CloudFront 의 캐시때문에 내가 코드를 수정했지만 반영이 되지 않아 어리둥절했던 경험이 있다. 캐시를 인지하지 못해서 해결 방법을 찾는데에 반나절 정도 걸렸었다. cloudFront에 대한 글을 계속 읽어보다가 캐시 기능을 알게되어서 캐시 무효화를 했더니, 바로 업데이트가 됐었는데, 비단 나 뿐만 아니라 많은 사람들이 이런 경험이 있을 것 같다. 하지만 그 때 했던 고생때문인지 cloudFront 의 캐시는 오랜 시간이 지나도 잊혀지지 않는다.

profile
배운 내용을 기록하는 공간입니다.

0개의 댓글