Back-end

AWS의 Amazon S3, Amazon CloudFront - CDN 개념 정리

토마토 코더 2022. 10. 9. 16:57

먼저 AWS란?

AWS(Amazon Web Service)는 클라우드 컴퓨팅 서비스를 제공하는 프로바이더 중 하나로서, 현재 전 세계에서 가장 많이 사용되고 있는 클라우드 컴퓨팅 서비스다. AWS는 단순 컴퓨팅 자원을 제공해주는 것뿐만 아니라 이를 편리하게 관리할 수 있는 서비스, 서버리스 서비스 등 수많은 서비스를 확장성, 안정성, 높은 보안 수준과 함께 제공해준다.

 

Amazon S3

AWS의 Amazon S3 서비스는 Simple Storage Service의 약자로 Storage라는 표현 그대로 특정한 파일을 저장하고 인터넷상으로 접근할 수 있게 해주는 서비스이다. 보통 서비스에 필요한 이미지나 파일 등을 저장해두는 용도로 사용하지만 정적인 파일들을 안정적으로 제공할 수 있다는 점을 이용해서 정적 웹사이트 호스팅에도 사용할 수 있다.

 

CRA(Create React App)을 이용해서 만든 리액트 프로젝트의 경우 build 명령어를 실행하면 정적인 build 파일들이 생성되고 이를 브라우저에서 접근해서 실행하면 CSR(Client Side Rendering)을 통해서 동작하는 특징을 이용해 S3 버킷이라는 공간을 통해서 프로젝트를 배포할 수 있다.

 

Amazon CloudFront

CloudFront란 AWS에서 제공하는 CDN(Content delivery network) 서비스다. CloudFront를 설명하기에 앞서 CDN이 무엇이지 알아보자.

 

CDN

CDN(Content delivery network)은 콘텐츠 전송 네트워크로써 지리, 물리적으로 떨어져 있는 사용자에게 콘텐츠를 더 빠르게 제공하는 시스템을 말한다.

사용자가 원격지에 있는 서버(Origin Server)로 부터 Content(Web Object, Video, Music, Image, Document 등)을 다운로드할 때 가까이 있는 서버에서 받는 것보다 시간이 오래 걸리기 때문에 사용자와 가까운 곳에 위치한 Cache Server에 해당 Content를 저장(캐싱)하고 Content 요청 시에 Cache Server가 응답을 준다.

https://aws.amazon.com/ko/caching/

 

캐싱이란 무엇이고 어떻게 작동합니까 | AWS

다양한 캐싱 사용 사례 알아보기 데이터베이스 캐싱 속도와 처리량 면에서, 데이터베이스가 제공하는 성능은 애플리케이션 전체 성능에 무엇보다 크게 영향을 미칠 수 있습니다. 또한 오늘날

aws.amazon.com

 

CDN의 장점

  • 웹 사이트 로딩 속도, 보안 개선
  • 오리지널 서버의 트래픽 부하 및 비용 감소
  • 인터넷 회선 비용과 서버 비용 절감
  • 인터넷 서비스 제공자에 직접 연결되어 데이터를 전송하므로 콘텐츠를 빠른 속도로 제공
  • 대규모 분산 서버 장비로 공격 트래픽 완화

 

CDN의 작동원리

  1. 최초 요청은 서버로부터 콘텐츠를 가져와 고객에게 전송하며 동시에 CDN 캐싱 장비에 저장한다.
  2. 두 번째 이후 모든 요청은 CDN 업체에서 지정하는 해당 콘텐츠 만료 시점까지 CDN 캐싱 장비에 저장된 콘텐츠를 전송한다.
  3. 자주 사용하는 페이지에 한해서 CDN 장비에서 캐싱이 되며, 해당 콘텐츠 호출이 없을 경우 주기적으로 삭제된다.
  4. 서버가 파일을 찾는 데 실패하는 경우 CDN 플랫폼의 다른 서버에서 콘텐츠를 찾아 엔드유저에게 응답을 전송한다.
  5. 콘텐츠를 사용할 수 없거나 콘텐츠가 오래된 경우, CDN은 서버에 대한 요청을 프록시 서버로 작동해 향후 요청에 대해 응답할 수 있도록 새로운 콘텐츠를 저장한다.

프록시 서버(proxy server)는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다.

 

CloudFront

  • CloudFront는 AWS에서 제공하는 CDN 서비스다.
  • 캐싱을 통해 사용자에게 좀 더 빠른 전송 속도를 제공하는 것을 목적으로 한다.
  • 전 서계 이곳저곳에 Edge Server(Location)을 두고 사용자에게 가장 가까운 Edge Server를 찾아 빠른 데이터를 제공한다.

 

CloudFront 구성

  • Origin Server
    • 원본 데이터를 가지고 있는 서버다.
    • AWS에서는 S3, EC2 instance를 나타낸다.

 

  • Edge Server
    • AWS에서 실질적으로 제공하는 전 세계에 퍼져있는 서버다.
    • Edge Server에는 요청받은 데이터에 대해서 빠르게 응답해주기 위해 캐싱 기능을 제공한다.

 

CloudFront 작동방식

  1. 사용자로부터 요청이 발생한다.
  2. 요청이 발생한 Edge Server는 요청이 발생한 데이터에 대하여 캐싱 여부를 확인한다.
  3. 캐싱 데이터가 존재하면 사용자에 요청에 맞게 응답하고 존재하지 않으면 Origin Server로 요청한다.
  4. 요청받은 데이터에 대해 Origin Server로부터 전달받은 Edge Server는 캐싱 데이터를 생성하고 사용자에게 응답한다.

 

CloudFront 사용하는 이유

S3 자체만으로도 배포할 수 있지만 CloudFront를 사용하면 다음과 같은 장점이 있다.

  • HTTP → HTTPS : 손쉬운 설정으로 http 접속을 https로 리디렉션 시켜줄 수 있다.
  • CDN을 통한 더 빠른 페이지 응답속도 : S3으로만 배포하는 경우, 선택한 리전 내에서만 생성이 되기 때문에 해당 리전에서 멀어질수록 접속 속도가 느려진다. 하지만 CloudFront를 이용하면 전 세계에 분포된 엣지 로케이션이라고 하는 데이터 센터의 엣지 서버를 사용해 콘텐츠를 캐싱하고, 사용자가 위치한 곳에서 가장 가까운 엣지 로케이션에서 콘텐츠를 제공받을 수 있도록 해주는 역할을 한다.

 

참고하기 좋은 관련 자료

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/Welcome.html

 

Amazon S3란 무엇인가요? - Amazon Simple Storage Service

Amazon S3란 무엇인가요? Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다. 모든 규모와 업종의 고객은 Amazon S3를 사용하

docs.aws.amazon.com

https://aws.amazon.com/ko/what-is/cdn/

 

CDN이란 무엇인가요? - CDN 설명 - AWS

콘텐츠 전송 네트워크(CDN)의 주 목적은 대기 시간을 줄이거나 네트워크 설계로 인해 발생하는 통신 지연을 줄이는 것입니다. 인터넷의 글로벌하고 복잡한 특성으로 인해 웹 사이트(서버)와 사용

aws.amazon.com

https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Introduction.html

 

Amazon CloudFront란 무엇입니까? - Amazon CloudFront

Amazon CloudFront란 무엇입니까? Amazon CloudFront는 .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스입니다. CloudFront는 엣지 로케이션

docs.aws.amazon.com

 

반응형