Cloud Front 이해하기

이수찬·2023년 5월 29일
0

1. Cloud Front란?

  • AWS에서 제공하는 CDN 서비스이다.
    (정적 및 동적 컨텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스)

  • 엣지 로케이션이라고 하는 데이터 센터의 전 세계 네트워크를 통해 컨텐츠를 제공한다.

  • Cloud Front를 통해 서비스하는 컨텐츠를 사용자가 요청하면 지연 시간이 가장 낮은 엣지 로케이션으로 요청이 라우팅되어 최고의 성능으로 컨텐츠가 제공된다.
    (사용자가 애플리케이션을 사용하기위해 요청을 보내면 서버가 요청을 받아 응답을 하는데, 이때 서버와 사용자와의 거리가 멀면 응답시간이 오래 걸린다.
    이를 해결하기 위해 사용자와 지리적으로 가까운 Cloud Front의 엣지 서버로 요청이 라우팅되게 하여 최적의 응답시간으로 컨텐츠를 제공한다.)

2. CDN이란?

  • CDN은 content delivery network의 약자로 컨텐츠 전송 네트워크로써 지리적 물리적으로 떨어져있는 사용자에게 더 빠르게 컨텐츠를 제공하는 시스템이다.
    (즉, 컨텐츠를 효율적으로 사용자에게 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템이다.)

  • CDN은 주로 컨텐츠 전송을 빠르게 하기위해 사용하는데, 기존 네트워크에서는 사용자와 origin서버의 거리에 응답속도가 큰 영향을 미친다.
    CDN에서는 여러 CDN 노드들을 두어 처음 요청은 origin서버로 보내 기존 네트워크가 동일하지만, 이후 해당 컨텐츠를 일정 시간동안 CDN 노드에 캐싱하여 일정 시간 동안은 해당 컨텐츠를 사용자와 지리적으로 가까운 CDN 노드에서 응답을 받아 응답 대기 시간을 단축할 수 있다.

2 - 2. CDN의 장점

  1. 요청의 응답 시간 단축
  • origin server가 아닌 지리적으로 가까운 CDN서버에게 응답 요청
  1. origin server의 부하 및 비용 감소
  • CDN서버들에게 트래픽이 분배되어 origin 서버의 부하 및 비용 감소
  1. 웹사이트 보안 개선
  • 대규모 분산 서버로 네트워크가 구성되어 있어 공격 트래픽을 완화시킬 수 있다.

3. Cloud Front의 동작 방식

일반적으로 사용자의 요청은 cloud front에 먼저 전달된다.

  1. 사용자가 엣지 로케이션에게 컨텐츠 요청

  2. 엣지 로케이션은 요청에 대한 컨텐츠가 캐싱되어있는지 확인

2- 1. 요청한 컨텐츠가 엣지 로케이션에 없는 경우

  • 요청한 컨텐츠가 존재하는 origin server에게 컨텐츠 요청
  • 받은 컨텐츠를 엣지 로케이션을 통해 사용자에게 전달

2 - 2. 컨텐츠가 엣지 로케이션에 있는 경우

  • 해당 컨텐츠를 사용자에게 바로 전달

4. Cloud Front 설정하기

  1. S3버킷이나 HTTP서버와 같은 origin server를 생성하고, 컨텐츠를 서버에 저장한다.

  2. Cloud Front 배포설정을 위해 origin server의 도메인을 입력한다.

  3. Cloud Front배포가 완료되면 d111111abcdef8.cloudfront.net와 비슷한 배포 주소가 생성된다.

  • origin server로 S3버킷을 사용한 경우 Object를 비공개로 설정하고, Cloud Front URL을 통해 Object에 접근할 수 있게 하거나, Object를 비공개로 설정하고 접근할 수 있는 사용자를 제어할 수도 있다.
    S3버킷의 루트에 new-page.html이라는 새 파일을 업로드하는 경우 https://d111111abcdef8.cloudfront.net/new-page.html로 cloudFront를 통해 해당 컨텐츠에 접근할 수 있다.
    (더 나아가 사용자 지정 도메인을 통해 CloudFront 배포 도메인 이름을 설정할 수 있다.)

0개의 댓글