본문 바로가기

AWS Design Pattern/동적 컨텐츠 처리 패턴

Clone Server 패턴 - 서버 클론

ㅁ  풀어야 할 문제

스케일 아웃 구성은 일반적인 방법이지만, 작은 규모로 만들어진 시스템은 처음부터 여러 대의 서버로 서비스 제공하도록 구성되어 있지 않음

그런 경우 부하 대책이 필요하게 되었을 때 시간이 많이 소요됨

 

ㅁ  해결/패턴

부하 분신이 고려되지 않은 시스템을 간단히 부하 분산이 가능한 시스템으로 변경

이미 존재하는 서버를 마스터로 하여 추가할 서버의 서버 이미지를 생성 후 서버 이미지는 콘텐츠 동기 및 데이터베이스 접속 설정을 해 둠

이렇게 하면 서버 이미지를 가동하는 것으로 스케일 아웃에 의한 부하 분산이 구현됨

 

ㅁ  구현

로드 밸런서 서비스 [ELB]와 서버 이미지 [AMI]를 이용

부하 분산이 가능하게 콘텐츠 동기 등을 한 클론용 AMI를 만들고, 부하가 많아지면 클론용 AMI EC2 인스턴스를 가동

그것을 ELB 부하분산 대상으로 지정하면 기존 시스템에 대한 많은 변경 없이 스케일 아웃 가능

-       (EC2 한대 구성의 경우) ELB를 가동하고 EC2를 그 아래에 배치

-       현재 가동 중의 EC2에서 클론용 EC2를 만듦

-       클론용 EC2는 필요에 따라 정기적으로 rsync 등을 이용해 EC2 파일을 동기화되도록 해 놓음

-       부하에 따라 필요한 수만큼 클론용 EC2를 가동시켜 ELB에 추가

 

ㅁ  장점

-       현재 시스템을 변경 없이 간단하게 스케일 아웃에 따른 부하 분산을 할 수 있도록 함

 

ㅁ  주의점

-       마스터 EC2 SPOF가 됨

-       마스터 EC2에 데이터베이스가 동작할 경우, 클론용 EC2에는 데이터베이스를 동작하게 하지 않고 데이터베이스 접속 장소를 마스터 EC2로 함

-       파일 업로드나 쓰기 작업이 있을 경우 그 처리는 마스터 EC2에서 이루어짐
(Apache
 mod_proxy를 이용해 해당 URL만 클론용 가상 서버에서 마스터 가상 서버로 Proxy 시킴)