CDN과 Load Balancer를 활용한 부하 분산

CDN과 Load Balancer를 활용한 부하 분산으로 중소 규모 서비스 구축

아키텍처 소개

서비스 규모가 커져서 서비스를 이용하는 사용자의 수가 늘어나고 다양한 지역으로 부터 사용자들이 서비스에 접속할 때 모든 사용자 요청을 단일 서버, 단일 Database에서 처리하도록 하는 것은 병목현상이 생겨 서비스가 느려지게 되고 서비스 장애로 이어질 수 있습니다. 다양한 방법으로 웹 어플리케이션이 받는 부하를 분산시킬 필요가 있습니다. 만약 사용자 기반이 여러 지역에 흩어져 있는 경우 CDN(contents delivery network)서버를 사용하면 사용자가 위치한 지역에 가깝게 위치되어 있는 CDN서버에 연결되어 빠르게 컨텐츠를 전달하고 애플리케이션 성능을 최적화 할 수 있습니다. Database 구성도 쓰기와 읽기 역할을 분산시켜 병목 현상을 방지할 필요가 있습니다.


아키텍처

연동 부가 서비스

솔루션 적용 및 비즈니스 효과

다양한 타입의 서버 생성
서비스의 규모 및 용도에 따라 compact, standard, high memory size, gpu 타입의 서버를 웹 기반 콘솔에서 몇 번의 클릭만으로 수 분 내에 서버를 간단하게 생성할 수 있으며, 별도의 운영체제를 설치하지 않아도 선택한 서버 이미지에 따라 서버가 제공됩니다. 빠른 데이터 처리가 필요할 경우 고성능의 I/O가 보장되는 SSD 디스크를 선택할 수 있습니다. 이용하고 있는 서버의 CPU나 메모리도 스펙 변경 기능을 통해 조정할 수 있습니다.
안정적이고 빠른 콘텐츠 딜리버리
웹 페이지의 이미지를 포함한 다양한 콘텐츠를 사용자에게 빠르게 제공하기 위해서 CDN 서비스를 이용할 수 있습니다. 온라인으로 쉽고 빠르게 CDN을 생성, 설정할 수 있으며, 수 분 이내에 사용자에게 콘텐츠를 전송할 수 있도록 합니다. 고해상도 그래픽, 고화질 영상 혹은 실시간 스트리밍 같은 형태의 다양하고 대용량의 콘텐츠를 서버 다운 없이 안전하고 빠르게 사용자에게 전달하기 위해서는 CDN과 같은 캐시 서버를 사용하는 것이 필수입니다.
다양한 연결 기능을 가진 Object Storage
CDN 서버에서 제공할 이미지, 동영상과 같은 콘텐츠를 관리할 Original Resource 저장소로 Object Storage를 함께 사용한다면 웹 기반 콘솔 및 다양한 방식으로 손쉽게 콘텐츠를 관리할 수 있습니다.
부하 분산 가능한 관리형 데이터 베이스
Database의 부하를 분산시켜 성능을 높이려면 Cloud DB의 Master 에 쓰기를 담당하도록 하고, Slave DB 를 추가하여 읽기를 담당하도록 하는 것이 좋습니다. Slave DB는 최대 5대까지 확장이 가능하며, Load Balancer 상품을 이용하여 Database읽기 부하 분산이 가능합니다.