ㅁ 풀어야 할 문제
스케일 아웃 구성은 일반적인 방법이지만, 작은 규모로 만들어진 시스템은 처음부터 여러 대의 서버로 서비스 제공하도록 구성되어 있지 않음
그런 경우 부하 대책이 필요하게 되었을 때 시간이 많이 소요됨
ㅁ 해결/패턴
부하 분신이 고려되지 않은 시스템을 간단히 부하 분산이 가능한 시스템으로 변경
이미 존재하는 서버를 마스터로 하여 추가할 서버의 서버 이미지를 생성 후 서버 이미지는 콘텐츠 동기 및 데이터베이스 접속 설정을 해 둠
이렇게 하면 서버 이미지를 가동하는 것으로 스케일 아웃에 의한 부하 분산이 구현됨
로드 밸런서 서비스 [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 시킴)
'AWS Design Pattern > 동적 컨텐츠 처리 패턴' 카테고리의 다른 글
URL Rewriting - 정적 콘텐츠 이전 (0) | 2021.02.05 |
---|---|
State Sharing - 상태 정보 공유 (0) | 2021.02.05 |
NFS Replica - 공유 콘텐츠 복사 (0) | 2021.02.05 |
NFS Sharing - 공유 콘텐츠 이용 (0) | 2021.02.05 |
Scale Out 패턴 - 서버 수의 동적 증감 (0) | 2021.02.05 |