본문 바로가기

카테고리 없음

3. Scale Up 패턴

3. Scale Up 패턴 - 동적 서버 사양 업&다운




출처 : http://en.clouddesignpattern.org/index.php/CDP:Scale_Up_Pattern


문제


일반적으로 필요한 서버 자원을 개발 단계에서 예측하기 어려움, 가동 후 서버 자원이 부족하면 기능을 제공하지 못하거나 일괄 처리가 기한 내에 끝나지 않을 수 있고, 서버 자원이 많으면 비용 낭비됨.

가동 후에 서버 자원을 자유롭게 변경하는 것이 좋지만, 서버 자원은 물리적 장비 사양에 의존하기 때문에 어려움



문제 해결/패턴 설명


클라우드에서는 서버의 사양을 서버 가동 후에도 필요에 따라 변경할 수 있음.



구현


  • EC2 인스턴스를 가동하고 시스템을 구춤함
  • vmstat나 자원 모니터, CloudWatch 등으로 이용량을 파악하고, 사양 변경이 필요하면 EC2 인스턴스를 정지하고 AWS Management Console의 Change Instance Type 메뉴에서 인스턴스 타입을 변경 후 가동한다.


장점


  • 시스템 설계, 개발 시에 정확하게 서버 사양을 측정하지 않아도 됨
  • 자원 부족으로 인한 시스템 정지 등 고객에게 서비스를 하지 못하는 손실을 줄일 수 있음
  • 비용 절약도 가능


주의점


  • 서버 사양을 변경할 때 EC2 인스턴스를 정지해야함. 그 동안 서버는 오프라인 상태가 됨
  • 사양 변경이 가능해도 인스턴스 타입의 상한은 넘을 수 없음. 따라서 사양이 가장 높은 인스턴스 타입을 선택해도 자원이 부족하면 Scale Out 패턴을 채용하거나 캐싱 또는 AWS의 다른 서비스로 대체하는 것이 필요



기타


  • 처리 최고치가 예측 가능하면 예측치에 맞춰 자동으로 서버의 사양을 변경할 수 있음.
    예) 월말에 부하가 많을때는 그 때만 높은 사양으로 변경하고 그 외에는 낮은 사양으로 변경되는 스케줄 가능