폭발적으로 증가한 데이터를 지연 없이 처리하기 위해서
데이터를 분산해서 전달하는 기술이 필수.
지리적으로 먼 거리에 떨어져 있는 사용자에게 지연 없이 콘텐츠를 분산해 전달할 수 있는 CDN 서비스.
지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게
콘텐츠를 전송할 수 있는 콘텐츠 전송 기술 의미
서버와 사용자 사이의 물리적인 거리를 줄여 콘텐츠 로딩에 소요되는 시간을 최소화 한다.
각 지역에 캐시 서버(PoP, Points of Presence)를 분산 배치해,
근접한 사용자의 요청에 원본서버가 아닌 캐시 서버가 콘텐츠 전달.
CDN은 웹 페이지, 이미지, 비디오 등의 콘텐츠를 사용자의 물리적 위치와 가까운 프록시 서버에 캐싱.
( 캐싱 : 저장한다는 뜻, 오랜 시간이 걸리는 작업의 결과를 저장해서 시간과 비용을 절감하는 기법 )
이렇게 하면, 콘텐츠가 로딩될 때까지 기다릴 필요 없이 영화 감상, 소프트웨어 다운로드, 은행 잔고 확인 등 다른 작업 가능
ex)
ATM과 같이 생각하면 편하다.
여러 곳에 ATM을 설치해 놓으면 사용자가 빠르고 효율적으로 현금을 찾을 수 있는데,
은행에서 긴 줄을 서서 기다릴 필요 없이 가까운 곳에 있는 ATM을 바로 사용하면 된다.
미국에 있는 사용자가 한국에 호스팅 된 웹 사이트에 접근하는 경우
미국에 위치한 PoP서버에서 웹사이트 콘텐츠를 사용자에게 전송하는 방식
CDN은 동영상 스트리밍이나 온라인 게임, 대용량 파일 전송,
해상도가 높아 용량이 큰 이미지를 다루는 포털 사이트 등에서 안정적인 서비스 제공을 위해 활용
특정 국가나 지역만을 타깃으로 하는 웹 서비스를 운영한다면 CDN 서비스를 활용할 필요가 없다.
-> 오히려 불필요한 연결 지점이 늘어나 웹 사이트의 성능 저하를 불러올 수 있기 때문
CDN의 미션은 "지연 시간 줄이기"
지연 시간
: 웹 페이지 또는 비디오 스트리밍 콘텐츠가 디바이스에 완전히 로딩되기 전에
발생하는 불편한 지연을 의미
지연 시간은 밀리초 단위로 측정된다.
디지털화 할 수 있는 모든 데이터를 콘텐츠 전송 네트워크를 통해 전송할 수 있음
웹 호스트가 아니다.
콘텐츠 전송 네트워크 서버는
콘텐츠를 전 세계 사용자 및 사용자 ISP와 가까운 곳에 캐싱하기 위해
지리적으로 분산되어 있음.
넷플릭스
: 전 세계의 사용자들에게 안정적인 서비스를 제공하기 위해 자체 CDN 구축
에어비앤비
: CDN 기술을 활용해 전 세계 고객에게 언제 어디서나 숙박 시설과 각종 액티비티를 예약할 수 있는 서비스 환경 구축
NC소프트, 카카오게임즈
: 온라인 게임 기업이 CDN을 활용,
북미나 유럽과 같이 지리적으로 먼 지역의 사용자에게 안정적이고 빠른 게임 플레이 환경을 제공
Push 방식
원본 서버가 새로 업로드된 콘텐츠를 전 세계에 위치한 PoP 서버로 전달하는 방식
최초 구성 및 설정에 비교적 많은 시간이 걸리지만, 적시에 콘텐츠를 제공할 수 있음,
콘텐츠가 업로드되거나 업데이트되어도 전송 오류가 발생할 확률이 적다는 장점
Pull 방식
PoP 서버가 원본 서버에서 콘텐츠를 가져오는 방식.
JavaScript나 CSS, HTML파일과 같은 사이즈가 비교적 작은 파일에 주로 활용
단점 : 웹 페이지를 처음 방문하는 경우 PoP 서버가 Origin 서버에서 데이터를 가져오는 과정이 필요해 때때로 응답 속도가 느려질 수 있다는 점.
( Origin 서버 : 원본 데이터를 가지고 있는 서버 , AWS에서는 보통 S3, EC2 instance)
Pull 방식의 경우 Push 방식보다 최초 PoP 서버를 구성하기가 비교적 쉽고,
사용자의 요청이 있는 경우에만 원본 서버로부터 데이터를 가져오기 때문에 서버 자원 절약 가능
분산형 아키텍처(Scattered Architecture)
비교적 사양이 낮은 서버를 구성, 특정 지역에 PoP 여러 개를 밀집해 운영하는 구성 방식
통합형 아키텍처(Consolidated Architecture)
고용량 서버로 구성된 소수의 PoP를 주요 데이터센터에 배치해 운영하는 구성 방식
참고 사이트