스터디/AWS SAA

섹션 15: CloudFront 및 AWS 글로벌 액셀러레이터

blablax5 2024. 1. 5. 10:03

CloudeFront

  • CDN, 컨텐츠 전송 네트워크를 뜻 한다, 시험에서 CDN 나오면 CloudeFront를 떠올리면 됨
  • 서로 다른 엣지 로케이션에 미리 캐싱하여 읽기 성능을 높히는 것
  • 네트워크 전체에 캐싱이 돼서 전세계 사용자들이 낮은 레이턴시로 접근이 가능
    • 미국에서 요청하면 미국에 있는 엣지에 컨텐츠 요청
    • 호주 엣지 -> 미국 엣지를 fetch해서 가져오고 캐싱
    • 미국에서 재요청하면 미국엣지에서 가져오는 방식
  • 이를 가능하게 하는 건 OAC (Origin Access Control) 원본 접근 제어 - 기존의 OAI를 대체하는 기능
  • CloudeFront를 통해 버킷에 데이터를 보내는 것도 가능
    • Ingress라고 함, 또 다른 OAC(원본 제공 방식)으로 HTTP 백엔드와 같은 사용자 정의 원본을 쓸 수 있음
      • 예시를 들면 로드 밸런서, EC2, S3 웹사이트
    • 예시 - S3 버킷을 CloudeFront를 사용 할 경우
      • 가장 가까운 엣지에 컨텐츠를 제공하는데
      • 없으면 버킷에서 원본을 받아오고 제공을 한다.

  • CloudeFront와 CRR(교차 리전 복제)의 차이점
    • CloudeFront
      • 전세계 엣지 네트워크를 사용, 전세계에 하루 동안 파일들이 캐싱 된다.
      • 전세계를 대상으로 정적 컨텐츠를 제공할때 좋음
    • CRR(교차 리전 복제)
      • 복제를 원하는 리전에 설정을 해야 한다.
      • 전세계 대상이 아님
      • 캐싱이 되지 않고 읽기 전용으로만 설정이 가능
      • 일부 리전을 대상으로 동적 컨텐츠를 낮은 지연 시간으로 제공할 때 사용

CloudeFront 어플리케이션 로드 밸런서를 원본으로 쓸 경우

  • HTTP 백엔드도 접근이 가능, EC2, 어플리케이션 로드 밸런서
  • 첫번째 방식 - EC2
    • EC2, CloudeFront는 둘 퍼블릭으로 설정 되어야한다.
    • 왜냐면 CloudeFront는 VPC가 없기 때문에 EC2에 접근을 못한다.
  • 두번째 방식 - 어플리케이션 로드 밸런서
    • 첫번째 방식과 마친가지로 공용 설정이 있어야한다.
    • 다른점은 EC2는 Private로 설정해도 된다
      • 왜냐면 로드 밸런서랑 EC2 VPC가 설정 되어있어서
    • 그래서 어플리케이션 공용 IP만 로드 밸런서 보안 그룹 정책에 허용하면 된다.

CloudeFront 지리적 제한 설정

  • 전세계를 대상으로 하는거니깐 지리적으로 접근을 가능, 불가능하게 설정을 할 수 있음
  • CloudeFront에 Geographic restrictions 메뉴에서 설정이 됨

CloudeFront - Pricing

  • 요금(Pricing)과 가격 등급(Price Class)가 있음
  • 전세계적으로 엣지 로케이션이 분포해 있기에 데이터 전송 비용이 다름
  • CloudeFront에서 더 많은 데이터가 전송될수록 가격은 낮아진다.
  • 비용 절감을 위해 엣지 로케이션 수를 줄이는 방법이 있음
    • Price Class All
      • 모든 리전을 사용
      • 최상의 성능을 제공하지만 가격이 비쌈
    • Pirce Class 200
      • 대부분의 리전 사용 가능, 가장 비싼 리전 제외
    • Price Class 100
      • 가장 저렴한 리전만 사용

CloudeFront - 캐시 무효화

  • 캐시 TTL이 만료가 되야지 새로 파일을 다시 받아오는데
  • TTL 만료전에 파일을 다시 캐싱하고 싶다면은 전체 또는 일부를 강제로 새로고침
  • 캐시에 있는 TTL을 모두 제거 함
  • CloudeFront 무효화를 실행하면 가능하다.
    • 특정 파일 경로를 전달하여서 무효화를 시킨다
    • /images/*으로 하면 특정 경로를 무효화
    • images.png 하면 파일 무효화

AWS Global Accelerator

  • 애니캐스트의 고정 IP2개로 서버가 멀리있어도 지연 시간을 낮추고, AWS 쉴드가 있기에 DDos 공격에도 안전함
  • 애니캐스트의 개념을 사용해서 가장 가까운 서버로 가는데 그게 엣지 로케이션으로 감, AWS 내부에서 통신하기에 안정적임
  • Global Accelerator과 CloudeFront의 차이
    • CloudeFront
      • 이미지, 비디오, 캐시 가능한 내용(API 가속, 동적 사이트 전달)을 전세계에 제공 할 때 유용
      • 엣지 로케이션은 TTL이 지나면 원본에 가서 내용을 가져온다.
      • 대부분의 경우 엣지 로케이션에서 캐시된 내용을 가져와서 속도가 빠름
    • Global Accelerator
      • TCP, UDP상의 다양한 어플리케이션의 성능 향상
      • 패킷은 엣지 로케이션 -> AWS 리전에서 실행되는 어플리케이션으로 프록시됨
        • 모든 요청이 어플리케이션으로 전달
      • 캐싱은 불가능
      • 게임이나 IoT, Voice over IP같은 비 HTTP 사용시 적합
      • 글로벌하게 고정 IP를 요구하는 HTTP를 사용할때도 유용