[항해99] 5/29 WIL (12)

최스탑·2022년 5월 29일
0

[항해99] WIL

목록 보기
12/13

열두번째 Keyword

실전 프로젝트를 진행하며 기술적으로 막혔던 부분과 해결 과정

☁️ CloudFront

  • CloudFront 배포를 하며 캐시 정책, 즉 정해진 시간 동안 캐시가 저장되어 있어 내용(파일) 변경 시 즉각 반영되지 않는 문제가 있었는데 이에 대한 해결책과 CloudFront의 장점에 대해 정리를 해 보고자 한다.

💡 Solution : invalidation (무효화)

  • CloudFront는 AWS에서 제공하는 CDN(Content Delivery Network & Content Distribution Network) 서비스이다.
  • S3에 정적 데이터를 넣어두고 CloudFront에서 이 데이터를 가져와 사용하는 방식이며, 이때 S3가 오리진 서버가 된다.
  • 오리진 서버의 정적 데이터를 바로 가져오는 것이 아닌, 캐시 처리를 하기 때문에 속도가 높고 비용이 낮다는 장점이 있지만! 배포 서버의 데이터가 CDN에 즉각 반영되지 않아 이전 데이터로 동작하는 등의 문제점이 발생할 수 있다.
  • CloudFront는 보통 84,600초 => 대략 24시간 내 캐시한 데이터는 오리진 서버에서 새롭게 가져오지 않고 기존 데이터를 서비스한다.
    이처럼 이미 보유한 정적 데이터를 무효화하고 즉시 가져오는 것을 요청해야 한다.

이쯤에서, CDN 이란?

: Content Delivery Network & Content Distribution Network

  • Content(이하 컨텐츠)를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템
  • 지리, 물리적으로 떨어져 있는 사용자에게 컨텐츠를 더 빠르게 제공할 수 있는 기술
  • 느린 응답속도 / 다운로딩 타임을 극복하기 위한 기술
  • 컨텐츠를 배포하기 위한 최적화된 네트워크
  • 컨텐츠 딜리버리 서버 웹 페이지가 현재 어디에서 불려지는지, 웹 페이지를 불러오려고 하는 사용자가 어디에 거주하는지에 근거하여 컨텐츠 웹 페이지에 딜리버리해주는 분산 네트워크
  • 컨텐츠 서버를 중심으로 여러 곳에 분산 배치한 서버를 통해 효율적으로 컨텐츠를 배포하는 구조

온라인 게임의 경우 OBT나 정식 서비스 시작 시점에 클라이언트 다운로드 수요가 급격히 증가한다. CDN이 없을 경우 하나의 서버에 많은 유저들이 동시간대에 몰리게 되어 다운로드 속도가 급격히 감소하거나 심한경우 서버다운이 발생하기도 한다.
CDN을 통해 부하 현상을 막을 수 있다.

예를 들어 서울에 rebitly.com 서버가 있다.
미국에서 이 컨텐츠를 이용하기 위해서는 약 10,000KM를 이동하여 컨텐츠를 배포해야 한다.
이때 미국에서 컨텐츠 서버를 배치한다면 직접 컨텐츠를 제공받을 수 있다.

CDN의 작동 원리

  • 최초 요청은 서버로부터 컨텐츠를 가져와 고객에게 전송하며 동시에 CDN 캐싱 장비에 저장한다.
  • 두번째 이후 모든 요청은 CDN캐싱장비의 컨텐츠 만료 시점까지 저장된 컨텐츠를 전송한다.

CDN 장점

  1. 웹사이트 로딩 속도 개선
  2. 인터넷 회선 비용 절감
  3. 컨텐츠 제공의 안정성
  4. 웹사이트 보안 개선

CDN을 사용하지 않는다면?

컨텐츠를 담고 있는 Origin Server(이하 오리진 서버)들은 모든 사용자의 요청에 일일이 응답해야 한다. 이는 막대한 트래픽을 유발하고 트래픽이 과도하게 증가하거나 부하가 끊임없이 들어오는 경우 장애가 발생할 확률도 크다.

CDN을 사용한다면?

서버의 트래픽 부하 및 비용을 줄이고 사용자에게 빠른 서비스 제공도 가능하다. 장애 확률도 낮춰 줄 수 있으며 장애 발생 시 연결된 다른 CacheServer (이하 캐시 서버)를 통해 서비스 제공이 가능하다.


그럼 다시, CloudFront란?

  • AWS에서 제공하는 CDN 서비스
  • 전 세계에 배치된 Edge location을 이용하여 효율적인 컨텐츠 배포 구조를 제공하는 것
  • 전 세계 AWS 각 리전의 로케이션에 리소스의 복사본을 미리 로드해놓고, 사용자들이 짧은 지연 시간에 파일을 받을 수 있도록 해줌

용어 정리

  • Edge Location : 컨텐츠들이 캐시(Cache)에 보관되는 장소
    전세계 각 지역마다 설치되어 있는 서버의 컬렉션 개념으로 컨텐츠 내용을 캐시에 저장하여 보관된 내용을 사용자에게 뿌려주는 기능을 하는 서버이다.
    예를 들어 은행을 가지 않고 ATM 기계를 통해 인출 가능한 것과 동일하다.
    처음 웹사이트에 접속 시 캐시에 들어있지 않다면 Edge Location과 웹사이트 호스팅 즉 Origin과 정보를 주고 받은 후 정보를 엣지 로케이션 캐시에 넣고 유저들에게 컨텐츠를 제공한다. 컨텐츠는 캐시에 들어 있기 때문에 사용자가 똑같은 웹사이트 방문시 더 이상 오리진이 아니라 엣지 로케이션에서 뿌려지게 되므로 latency는 줄고 안전하다. 하지만 캐시는 영구적이지 않다.

  • Origin : 기존 컨텐츠가 보관된 곳, 웹 서버가 호스팅되어지는 곳.
    S3, EC2 인스턴스 등이 오리진이 될 수 있음. 물리적 지역

  • Distribution : CDN에서 사용되며, Edge Location들을 묶고 있다는 개념

<출처🙏 : https://velog.io/@dankim/CDN%EC%9D%B4%EB%9E%80-CloudFront%EB%9E%80 >

profile
try & catch

0개의 댓글