[SEB BE] Section 4. 오토스케일링(Auto Scaling)

박두팔이·2023년 4월 5일
0

스프링프레임워크

목록 보기
17/18

서버는 언제, 어떻게 추가해야 할까?

오토스케일링이란, Scale-Out방식으로 서버를 증설할 때 자동으로 서버(리소스)를 관리해주는 기능이다.

  • 클라이언트의 요청이 많아져 서버의 처리 요구량이 증가하면 리소스를 자동으로 추가한다.
  • 반대로 처리 요구량이 줄어들면 리소스를 감소시켜 적절한 분산 환경을 만들어준다.

오토스케일링이 없다면 ?
서버의 부하가 심해져 제대로 된 서비스를 제공하지 못하는 순간이 오지 않도록, 계속 지켜보다가 부하가 일정 수치를 넘기면 서버를 증설한 뒤 연결시키는 방법이 있다. 하지만 개발자가 직접 라이브로 지켜보며 수동으로 서버를 증설해야 한다면 번거롭고 갑작스럽게 발생한 문제에 대처하는데 한계가 있다.


Auto Scaling ?

1. Auto Scaling 장점

  • 동적스케일링
    오토스케일링의 가장 큰 장점이다. 사용자의 요구 수준에 따라 리소스를 동적으로 스케일링 할 수 있다. 스케일 업 할 수있는 서버의 수에는 제한이 없고 필요한 경우 서버 두 대에서 수백, 수만대의 서버로 즉시 스케일 아웃할 수 있다.
  • 로드밸런싱
    오토스케일링은 리소스를 동적으로 스케일 업 혹은 스케일 다운한다. 로드밸런서와 함께 사용하면, 다수의 EC2인스턴스에게 워크로드를 효과적으로 분배할 수 있어 사용자가 정의한 규칙에 따라 워크로드를 효과적으로 관리 할 수 있다.
  • 타켓 트래킹
    사용자는 특정 타겟에 대해서만 오토스켈링을 할 수 있다.
  • 헬스 체크와 서버 플릿 관리
    오토스캘링을 이용하면 EC2인스턴스의 헬스 체크 상태를 모니터링 할 수 있다. 헬스체크를 하는 과정에서 특정 인스턴스의 문제가 감지되면, 자동으로 다른 인스턴스로 교체한다.

2. EC2 Auto Scaling 활용

EC2 오토스캘링은 오직 EC2 서버라는 리소스만 대상으로 한다.

시작 템플릿(Launch Configuration)

오토스캘링으로 인스턴스를 확장 혹은 축소 하기 위해서는 어떤 서버를 사용할지 결정해야 한다. 이를 위해 시작 템플릿을 사용한다.

시작 템플릿을 사용하지 않는 경우에는 시작 구성을 생성할 수 있다. 시작 구성은 EC2오토 스캘링이 사용자를 위해 생성하는 EC2인스턴스 유형을 지정한다는 점에서 시작 템플릿과 비슷하다.

Scaling 유형

  • 인스턴스 레벨 유지
    기본 스케일링 계획으로도 부르며, 항상 실행 상태를 유지하고자 하는 인스턴스의 수를 지정할 수 있다. 일정한 수의 인스턴스가 필요한 경우 최소, 최대 및 원하는 용량에 동일한 값을 설정할 수 있다.

  • 수동 스케일링
    기존 Auto Scaling 그룹의 크기를 수동으로 변경할 수 있다. 수동 스케일링을 선택하면 사용자가 직접 콘솔이나, API, CLI 등을 이용해 수동으로 인스턴스를 추가 또는 삭제 해야하는데 이 방식은 추천하지 않는 방식이다.

  • 일정별 스케일링
    예측 스케일링트래픽의 변화를 예측할 수 있고, 특정 시간대에 어느 정도의 트래픽이 증가하는지 패턴을 파악하고 있다면 일정별 스케일링을 사용하는 것이 좋다.
    예를 들어 낮 시간대에는 트래픽이 최고치에 이르고 밤 시간대에는 트래픽이 거의 없다면 낮 시간대에 서버를 증설하고 밤 시간대에 스케일 다운 하는 규칙을 추가하면 된다.

  • 동적 스케일링
    수요 변화에 대응하여 Auto Scaling 그룹의 용량을 조정하는 방법을 정의한다.이 방식은 CloudWatch가 모니터링 하는 지표를 추적하여 경보 상태일 때 수행할 스케일링 규칙을 정한다. 예를 들어 CPU 처리 용량의 80% 수준까지 급등한 상태가 5분 이상 지속될 경우 Auto Scaling이 작동돼 새 서버를 추가하는 방식이며, 이와 같은 스케일링 정책을 정의 할 때는 항상 스케일 업과 스케일 다운 두 가지의 정책을 작성해야한다.

profile
기억을 위한 기록 :>

0개의 댓글