Amazon CloudFront

정연희·2024년 5월 20일
0

AWS

목록 보기
12/18
post-thumbnail

개념

Amazon CloudFront는 짧은 대기 시간과 빠른 전송 속도로 최종 사용자에게 데이터, 동영상, 애플리케이션 및 API를 안전하게 전송하는 CDN(글로벌 콘텐츠 전송 네트워크) 서비스이다.

  • CloudFront는 엣지 로케이션이라고 하는 데이터 센터의 전 세계 네트워크를 통해 콘텐츠를 제공한다
  • Client의 콘텐츠 요청으로 서버에서 받아온 콘텐츠를 캐싱하고 이후 같은 요청이 왔을 때, 그 캐싱해 둔 것을 제공하는 서비스
  • CloudFront를 통해 서비스하는 콘텐츠를 사용자가 요청하면, 지연 시간이 가장 낮은 로케이션으로 요청이 라우팅되므로 가능한 최고의 성능으로 콘텐츠가 제공된다

CDN (Content Delivery Netwrok)
이는 콘텐츠 전송 네트워크로 지리적 제약 없이 전세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 기술이다. 웹사이트의 원래 서버와 달리 사용자에게 더 가까이에 있는 서버로부터 콘텐츠를 배포하는 방식을 사용한다.
ex) 웹사이트가 영국에 있다고 가정. 미국에 거주하는 누군가가 이 사이트에 액세스할 경우, CDN은 영국에 있는 원래서버가 아니라 미국에 있는 에지서버, 즉 사용자에게 더 가까운 서버에서 해당 웹페이지를 서비스

Edge Location

  • 사용자에게 더 가까운 지리적 위치에 콘텐츠를 저장하는 데이터센터
  • 콘텐츠가 캐싱되고 유저에게 제공되는지점
  • CloundFront 서비스는 Edge location을 통해 콘텐츠를 제공

Regional Edge Caches (REC)

  • 오리진과 엣지 로케이션 사이에 존재하는 캐시 계층
  • 글로벌하게 배포되어있는 CloudFront 위치
  • 리전 엣지 캐시는 표준 엣지 로케이션에서 캐시하지 않는 콘텐츠를 저장
  • 엣지 로케이션에서 캐시 미스(cache miss)가 발생했을 때, 오리진 서버 대신 리전 엣지 캐시로부터 콘텐츠를 검색하여 더 빠른 응답 시간을 제공

CloudFront 동작 방식

  1. 사용자 → 어플리케이션에 요청
  2. DNS는 사용자에게 적합한 Edge Location으로 라우팅
  3. Edge Location에서 캐시를 확인 & 사용자에게 반환
  4. Edge Location에 없으면 가장 가까운 REC로 캐시가 있는지 확인 요청
  5. REC에 없으면 CloudFront는 origin server로 요청
  6. 오리진은'오리진 > REC > Edge Location > CloudFront > 사용자' 수순을 밟음 (캐시도 추가)
  7. REC에 캐시가 있다면 REC는 콘텐츠를 요청한 Edge Location으로 반환
  8. REC로부터 콘텐츠의 첫 번째 바이트가 도착하는 즉시 Edge Location은 이를 사용자에게 반환
  9. Edge Location은 나중을 위해 이 콘텐츠 캐시를 저장

장점

  1. 데이터 제공 받는 속도 빠름
    • 물리적으로 멀리 떨어진 서버에서 다운로드하는 것보다, 가까운 서버에 접속하여 다운로드 받는 것이 속도가 훨씬 빠름
  2. 트래픽 급증 처리 가능
    • 하나의 오리진 서버로 수많은 사용자가 몰리는 것을 방지할 수 있음

관련 용어

  • Origin

    • 데이터 원본이 위치한 곳
    • '정적' 콘텐츠 & '동적' 콘텐츠 모두 처리
      • 정적 콘텐츠
        • 서버(EC2)가 필요하지 않은 콘텐츠 (ex. 이미지)
        • S3 bucket
      • 동적 콘텐츠
        • 서버가 필요한 콘텐츠 (ex. 로그인 자료, 실시간 추가 자료)
        • 동적 콘텐츠를 정적 캐싱한다면 TTL(time to live) 시간동안 사용자는 새로 루가/수정된 데이터를 볼 수 없음
        • EC2 instance, ELB(Elastic load balancing)
  • Origin Access Identity (OAI)

    • CloudFront가 S3 버킷과 같은 origin에 안전하게 접근할 수 있도록 하는 고유 식별자
    • OAI를 사용하면 CloudFront를 통해서만 origin에 저장된 콘텐츠에 접근할 수 있도록 제한
    • 사용자가 S3 URL을 직접 사용하여 콘텐츠에 접근하는 것을 방지, CloudFront를 통해서만 접근하도록 하여 보안을 강화

CloudFront 기능

  1. HTTPS 지원
    • Origin에서 https 지원을 해주지 않아도 CloudFront 안에서 https 통신을 지원하도록 구성 가능
  2. 특정 지역 콘텐츠 접근 제한
    • 지리적 제한 가능. 회사 사정으로 특정 지역을 제한하거나 할 수 있다
  3. Signed Url
    • Presigned url과 비슷한 기능
    • 허용된 사용자에게만 접근할 수 있는 signed url 제공
    • 개별 파일에 대한 access 제공 (파일 하나당 하나의 url)
    • 만료시간, IP주소 범위 등 지정
      • (ex) 쿠키를 구운 독자만 웹툰을 미리 볼 수 있도록 URL을 제공
  4. Signed cookie
    • 다수의 파일에 대한 access 제공 (다수의 파일에 하나의 signed cookie)
    • 만료시간, IP주소 범위 등 지정
      • (ex) ID/PW를 입력해 로그인 한 유료 회원에게 유료 콘텐츠를 모두 제공하는 상황

0개의 댓글