AWS Cloudfront 및 Accelerator

김파란·2025년 2월 19일

AWS

목록 보기
7/12
post-thumbnail

CloudFront

  • Content Delivery Network (컨텐츠 전송 네트워크)
  • 웹사이트 컨텐츠를 미리 캐싱하여 읽기 성능을 높이는 것이다
    • 네트워크 전체에 캐싱되어있어 전세계 사용자들이 낮은 레이턴시로 접근할 수 있다
    • 컨텐츠가 전체적으로 분산되어 있어 DDOS공격에서 보호를 받을 수 있다

1. 원본제공방식(Origins)

  • S3 Bucket
    • CloudFront를 통해 파일을 분산하고 캐싱할 수 있다
    • 버켓에는 OAC를 통해 CloudFront에만 접근할 수 있도록 보장한다
    • Cloud Front를 통해 버켓에 데이터를 보내는 방법도 가능하다 (Ingress)
  • Custom Origin (Http)
    • 로드밸런서, EC2, S3 웹사이트 등 가능하다
    • 캐싱되어 있으면 CloudFront에서 가져오고 아니면 원본에서 가져오면서 로컬 캐시에 저장한다
    • CloudFront에는 가상 private Cloud가 없기 때문에 EC2 또는 로드밸런서 모두 Public으로 열려있어야 한다

2. CloudFront와 교차 리전 복제의 차이점

  • CloudFront
    • 전세계 엣지 네트워크를 이용한다
    • 약 216개의 엣지 로케이션이 하루동안 캐싱된다
    • 전세계 대상으로 정적 컨텐츠를 제공할 때 유용하다
  • S3 Cross Region Replication
    • 복제를 원하는 각 리전에 이 설정이 되어 있어야 한다
    • 파일은 거의 실시간으로 갱신된다
    • 캐싱이 되지 않고 읽기 전용으로만 설정된다
    • 일부 리전을 대상으로 동적 컨텐츠를 낮은 지연시간으로 제공할 때 유용하다

3. 제한

  • 지리적 제한
    • 접근할 수 있는 사용자를 국가에 따라 제한할 수 있다
    • 허용 목록을 설정하여 승인 국가 목록을 정의하거나 차단 목록을 정의할 수 있다
    • 국가는 GeoIP 데이터베이스를 사용하여 사용자의 IP를 해당 국가에 매핑하는 방식으로 결정된다
    • 주로 저작권법으로 인한 콘턴체 접근를 제어하기 위해 사용한다

4. 고급 옵션

  • 가격
    • 전세계에 있으므로 엣지 로케이션마다 데이터 전송 비용이 다르다
    • 대륙이나 지리 위치에 따라 각기 다른 요금을 내야한다
  • 가격 등급
    • 비용 절감을 위해 CloudFront의 엣지 로케이션 수를 줄이는 세가지 방법이 있다
    • Price Class All
      • 모든 리전을 사용하며 최상의 성능을 제공한다
      • 비용이 제일 많이 든다
    • Price Class 200
      • 대부분의 리전을 사용가능하지만 비싼 리전은 사용 불가능하다
    • Price Class 100
      • 저렴한 리전만 사용가능하다

5. 캐시무효화

  • 항상 백엔드 오리진이 있는데 업데이트를 해도 캐시가 있다면 업데이트 사항을 모를 것이다
    • 캐시의 TTL이 만료되면 오리진으로부터 업데이트된 컨텐츠를 받게 된다
    • 최대한 빨리 새 컨텐츠를 받게 하기 위해서 전체 또는 일부의 캐시를 강제로 새로고침해서 캐시에 있는 TTL을 모두 제거할 수 있다
    • 이를 위해 CloudFront 캐시무효화를 해야한다
    • 전체 파일(*), 특정 경로 (/images/*)를 무효화할 수 있다
  • CloudFront에 캐시무효화를 요청하면 CloudFront에서 Edge Location에 있는 캐시를 만료시킨다

AWS Global Accelerator

시나리오

  • 하나의 리전에서 글로벌 애플리케이션을 배포를 했다
  • 인도에서 로드밸런서를 배치했는데 전세계에서 접근을 한다
  • 라우터를 거치는 동안 수 많은 홉으로 인해 상당한 지연이 발생할 수 있다
  • 연결이 끊길 수 있고 지연시간이 생긴다
  • 지연 시간을 최소화하기 위해 AWS 네트워크를 통하게 하는 것이 좋다
  • Global Accelerator는 Anycast IP개념을 사용하여 지연시간을 줄인다

Anycast IP

  • 기존에 하나의 서버에는 하나의 IP주소만 가지며 IP주소로 연결이 된다
  • Anycast IP에서는 전부 같은 IP주소를 가지며 가까운 서버로 라우팅된다

1. 해결

  • 기존에는 공용 인터넷망을 사용하기 때문에 위험이 많았다
  • AWS Global Accelerator는 가장 가까운 엣지 로케이션과 통신하여 내부 AWS 네트워크를 거쳐 곧장 연결된다

2. Accelerator

  • EC2, 탄력적 IP, ALB, NLB, public, private 등 다양하게 사용할 수 있다
  • 지능형 라우팅으로 지연 시간이 가장 짧은 엣지 로케이션으로 연결된다
  • 잘못될 경우 신속한 리전 장애조치가 이뤄진다
  • 아무것도 캐시하지 않기 때문에 클라이언트 캐시와도 문제가 없다
  • 우리가 사용하는 두 개의 애니캐스트 IP는 변하지 않고 엣지 로케이션 다음에 내부 AWS 네트워크가 오기 때문에 안전하다
    • DDos 보호도 자동으로 된다

3. CloudFront와 차이점

  • 공통점
    • 둘 다 동일한 글로벌 네트웤르르 사용하고 AWS가 사용하는 엣지 네트워크를 이용한다
    • DDos보호를 위해 AWS Shield와 통합된다
  • 차이점
    • CloudFront는 이미지나 비디오처럼 캐시 가능한 내용과 API 동적 컨텐츠 모두에 대해 성능을 향상시킨다
    • 컨텐츠는 엣지 로케이션에서 가져온다
    • Global Accelerator는 TCP, UDP상의 다양한 애플리케이션 성능을 향상시킨다
    • 모든 요청이 애플리케이션에게 요청되고 캐싱이 안된다

0개의 댓글