본문 바로가기

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

Schedule Scale Out - 스케줄에 의한 서버 증감

ㅁ  풀어야 할 문제

클라우드 환경에서 구축된 웹 서비스는 많은 트래픽 처리를 할 때 Scale Out 패턴이 효과적

그러나 부하 상태를 보고 수동으로 가상 서버를 추가하거나 가상 서버의 부하 상태에 따라 자동으로 인스턴스를 추가하거나 할 경우, 급격하게 많은 액세스 발생 시 상황에 맞춰 인스턴스를 가동하지 못할 수 있음.

 

ㅁ  해결/패턴

순간적으로 액세스가 급증하는 타이밍을 알 경우 스케줄링 된 스케일 아웃이 효과적

Scale Out 패턴과 기본 구성은 비슷하나, 스케일 아웃하는 타이밍을 시간 지정하여 실행하는 것이 주요 특징

사전에 스케일 아웃을 완료하는 것으로 트래픽 급증에 만전의 태세로 대응할 수 있으며 직전에 스케줄링이 실행되어 불필요한 비용을 줄일 수 있다.

 

ㅁ  구현

AWS AutoScaling에는 시간을 지정하여 설정을 변경하는 기능을 이용하여 스케줄링 된 스케일 아웃 구축이 가능

트래픽이 떨어지는 시간대를 지정하여 스케일 인할 수 도 있음

-       Scale Out 패턴을 참고하여 Auto Scaling을 설정

-       EC2 인스턴스를 증가시킬 시각을 설정하고 [인스턴스의 최소 대수(--min-size)]라는 설정 항목에 준비하려는 인스턴스 수로 변경

-       지정할 시각이 되면 위에서 지정했던 최소 대수까지 EC2 인스턴스가 가동

-       부하가 떨어지는 타이밍에 한 번 더 인스턴스 최소 대수를 줄이면 설정한 트리거에 따라 스케일 인 함.

 

ㅁ  장점

-       트래픽이 늘어나는 시각에 맞춰 자동으로 EC2 인스턴스를 늘릴 수 있다.

-       트래픽이 적을 때 EC2 인스턴스를 줄일 수 있어 비용을 절감할 수 있다.

-       ELB 아래에 필요한 수의 EC2 인스턴스를 배치할 수 있어 스케일 아웃과 비교하면 처리 능력이 매우 높다.

 

ㅁ  주의점

-       지정하는 시간은 UTC 시간 기준이다.

-       급격한 트래픽 증가 시에는 EC2만이 아니라 ELB도 사전에 스케일 아웃해야 한다. 이 경우에 ELB Pre-warning을 신청한다.