CloudFront & AWS Global Accelerator

JINWOO OH·2023년 7월 23일

SAA

목록 보기
13/19
post-thumbnail

AWS CloudFront

  • Content Delivery Network (CDN)
  • 웹사이트의 컨텐츠를 서로 다른 엣지 로케이션에 미리 캐싱하여 읽기 성능을 높이는 것
  • 네트워크 전체에 캐싱되므로 전세계 사용자들이 낮은 레이턴시로 접근할 수 있다
    • 캐싱이 되어있다면 엣지 로케이션에서 데이터를 가져가고 없다면 오리진에서 캐싱한다
  • 컨텐츠가 전체적으로 분산되어 있어 DDoS (모든 서버가 공격을 받는 방식)공격에서 보호를 받을 수 있다

CloudFront - Origins

  • S3 bucket
    • CloudFront를 통해 파일을 분산하고 캐싱할 수 있게 한다
    • 버킷에는 CloudFront만 접근할 수 있게 보장
    • CloudFront를 통해 버킷에 데이터를 보내는 방법 (Ingress)
    • Origin Access Control (OAC)와 S3 bucket policy로 보호를 받는다
  • Custom Origin (HTTP Server)
    • ALB
    • EC2 instance
    • S3 Website

CloudFront vs Cross Region Replication

  • CloudFront
    • 전세계에 걸친 CDN 네트워크
    • 전세계의 엣지 네트워크를 이용
    • 216개의 엣지 로케이션에 하루 동안 파일들이 캐싱된다
    • 전세계를 대상으로 한 정적 컨텐츠를 사용하고자 할 때 용이
  • Cross Region Replication
    • 다른 리전으로의 버킷 복제
    • 복제를 원하는 각 리전에 이 설정이 되어 있어야 한다 (전세계가 아니다)
    • 파일은 실시간으로 갱신된다
    • 캐싱이 아닌 읽기 전용으로만 설정 가능하다
    • 일부 리전을 대상으로 동적 컨텐츠를 낮은 지연 시간으로 제공하고자 할 때

CloudFront - ALB or EC2 as an origin

  • CloudFront는 퍼블릭으로 설정된 사용자 지정 HTTP 백엔드 (EC2 instance, ALB)에도 접근할 수 있다
    • CloudFront에는 가상 프라이빗 클라우드가 없기 때문에 EC2 instance는 퍼블릭으로 무조건 설정이 되어 있어야 한다
    • ALB로 들어오는 설정은 퍼블릭으로 열어줘야 하지만 ALB 뒷단의 EC2 instance는 private으로 설정할 수 있다

CloudFront Geo Restriction

  • 사용자들이 지역에 따라 배포 객체 접근을 제한할 수 있다
    • 접근이 가능한 국가 목록
    • 국가 목록은 third party Geo-DB에서 설정한 것으로 사용자의 IP가 어떤 국가에 해당하는지를 확인할 수 있다

CloudFront - Pricing

  • 엣지 로케이션마다 데이터 전송 비용이 다르다
  • CloudFront에서 더 많은 데이터가 전송될수록 비용은 낮아진다

CloudFront - Price Classes

  • 비용 절감을 위해 CloudFront를 분산할 전 세계 엣지 로케이션 수를 줄이는 방법이 있다
  • 세 가지 price classes가 존재
    • Price class All
      • 최상의 성능을 제공하나 비용이 많이 든다
    • Price class 200
      • 대부분의 리전을 사용할 수 있지만 가장 비싼 리전은 제외
    • Price class 100
      • 가장 저렴한 리전만 사용

CloudFront - Cache Invalidations

  • 캐시의 TTL이 만료가 되면 백엔드 오리진으로부터 업데이트된 컨텐츠를 받는다
  • 만약 최대한 빨리 새 콘텐츠를 받고 싶으면 어떻게 해야 할까?
    • 전체 또는 일부의 캐시를 강제로 새로코침해서 TTL을 모두 제거
    • 특정 파일 경로를 전달 (/images/*와 같은)
  • 특정 파일 (/index.html)을 지우거나 모든 이미지 (/images/*)를 지우는 것과 같이 2가지 경로를 무효화 할 수 있다

AWS Global Accelerator

  • 여러 hops들을 거치는 것이 아닌 최대한 빨리 AWS 네트워크를 통하게 함
  • Unicast IP
    • 하나의 서버가 하나의 IP 주소를 가진다
  • Anycast IP
    • 모든 서버가 동일한 IP를 가지며 클라이언트는 가장 가까운 서버로 라우팅
  • Global Accelerator은 Anycast IP 개념을 사용한다
  • 애플리케이션을 라우팅하기 위해 AWS 내부 글로벌 네트워크를 활용
  • 가장 가까운 엣지 로케이션을 통해 AWS 네트워크에 접근
  • 애플리케이션에 대해 health check가 가능하다
  • DDoS 보호도 자동으로 가능하다

AWS Global Accelerator vs CloudFront

  • 동일한 점은 AWS가 생성한 전 세계의 엣지 로케이션을 사용하며 DDoS 보호를 위해 AWS Shield를 사용
  • CloudFront
    • 이미지나 비디오처럼 캐시 가능한 내용과 API 가속 및 동적 사이트 전달 같은 동적 내용 모두에 성능을 향상
    • 캐시된 내용을 사용자가 확인할 수 있음
  • Global Accelerator
    • TCP나 UDP상의 다양한 애플리케이션 성능을 향상
    • 캐싱은 불가능

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

좋은 정보 감사합니다

답글 달기