오토 스케일링(Autoscaling)란?

부하 지표(CPU 사용률, 요청 수, 대기열 길이 등)에 따라 서버나 컨테이너의 대수를 자동으로 늘리고 줄이는 구조. 대수를 늘리는 것을 스케일 아웃, 줄이는 것을 스케일 인이라고 부른다. Kubernetes의 HorizontalPodAutoscaler는 필요한 수를 ⌈현재 수 × 현재 값 ÷ 목표 값⌉으로 구한다. 새 대수가 동작하기 시작할 때까지는 시간이 걸리므로, 급격한 부하 증가에는 여유를 둔 목표값으로 대비하고, 대수가 지나치게 자주 바뀌지 않도록 줄이기 전에 상황을 지켜보는 시간을 두는 경우가 많다.

일본어 명칭: オートスケーリング

오토 스케일링(Autoscaling)은(는) 시스템 구성과 신뢰성 설계, 클라우드와 컨테이너의 기초 등 2개 분야의 연습 문제 2개에 나와요.

분야: 클라우드와 컨테이너의 기초

도전해 보기: 오토 스케일링(Autoscaling) 관련 문제

부하에 따라 서버 대수를 자동으로 늘리고 줄이는 오토 스케일링을 사용하는 시스템의 설계로 일반적으로 바람직한 것은?

  1. A각 서버의 로컬 디스크에 그 서버만 가지는 업무 데이터를 저장해 둔다
  2. B이용자의 세션 정보를 각 서버의 메모리가 아니라 공유 데이터 스토어에 저장하여, 어느 서버가 요청을 처리해도 같은 결과가 되게 한다
  3. C대수를 줄일 때는 처리 중인 요청이 있어도 즉시 서버를 정지한다
정답과 해설 보기

정답: B. 이용자의 세션 정보를 각 서버의 메모리가 아니라 공유 데이터 스토어에 저장하여, 어느 서버가 요청을 처리해도 같은 결과가 되게 한다

오토 스케일링에서는 서버가 언제 추가되거나 삭제되어도 문제가 없도록, 각 서버에 고유한 상태를 갖게 하지 않는(스테이트리스로 하는) 설계가 바람직합니다. 세션 정보나 업무 데이터를 공유 데이터 스토어에 두면 어느 서버가 요청을 받아도 똑같이 처리할 수 있고, 대수를 줄여도 데이터는 사라지지 않습니다. 대수를 줄일 때는 새 요청의 분배를 멈추고, 처리 중인 요청이 끝나기를 기다린 후에 정지합니다.

해설 속 오토 스케일링(Autoscaling)

오토 스케일링(Autoscaling)이(가) 나오는 문제 (2)

  1. 부하에 따라 서버 대수를 자동으로 늘리고 줄이는 오토 스케일링을 사용하는 시스템의 설계로 일반적으로 바람직한 것은?
  2. Pod의 컨테이너에 위의 설정을 한 Deployment에서 Pod가 4개 동작하고 있으며, 모든 Pod가 CPU를 400m(0.4코어)씩 사용하고 있다. HorizontalPodAutoscaler의 CPU 사용률 목표를 60%로 하고, 필요한 Pod의 수는 ⌈현재 수 × 현재 사용률 ÷ 목표 사용률⌉로 구한다고 하자. 필요한 Pod의 수로 올바른 것은?

관련 용어

Pod 컨테이너(Container) 가용 영역(Availability Zone) 공동 책임 모델(Shared Responsibility Model) 관측 가능성(Observability) 블루-그린 배포(Blue-Green Deployment) 서버리스(Serverless) 오브젝트 스토리지(Object Storage) 이뮤터블 인프라스트럭처(Immutable Infrastructure) 카나리 릴리스(Canary Release)

용어집으로 돌아가기