열두번째 Keyword
✅ 실전 프로젝트를 진행하며 기술적으로 막혔던 부분과 해결 과정
☁️ CloudFront
💡 Solution : invalidation (무효화)
이쯤에서, CDN 이란?
: Content Delivery Network & Content Distribution Network
온라인 게임의 경우 OBT나 정식 서비스 시작 시점에 클라이언트 다운로드 수요가 급격히 증가한다. CDN이 없을 경우 하나의 서버에 많은 유저들이 동시간대에 몰리게 되어 다운로드 속도가 급격히 감소하거나 심한경우 서버다운이 발생하기도 한다.
CDN을 통해 부하 현상을 막을 수 있다.
예를 들어 서울에 rebitly.com 서버가 있다.
미국에서 이 컨텐츠를 이용하기 위해서는 약 10,000KM를 이동하여 컨텐츠를 배포해야 한다.
이때 미국에서 컨텐츠 서버를 배치한다면 직접 컨텐츠를 제공받을 수 있다.
컨텐츠를 담고 있는 Origin Server(이하 오리진 서버)들은 모든 사용자의 요청에 일일이 응답해야 한다. 이는 막대한 트래픽을 유발하고 트래픽이 과도하게 증가하거나 부하가 끊임없이 들어오는 경우 장애가 발생할 확률도 크다.
서버의 트래픽 부하 및 비용을 줄이고 사용자에게 빠른 서비스 제공도 가능하다. 장애 확률도 낮춰 줄 수 있으며 장애 발생 시 연결된 다른 CacheServer (이하 캐시 서버)를 통해 서비스 제공이 가능하다.
그럼 다시, CloudFront란?
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 >