인사이트

인사이트리포트

디지털프렌스포메이션 최신 정보 및 트렌드를 제공합니다.

클라우드 플랫폼

탄력적인 클라우드 자원 활용 기술: 오토스케일링(Auto Scaling)

2020.11.13손병창
다운로드

클라우드 컴퓨팅의 대표적 장점으로 필요에 따라 서비스를 빠르게 확장하거나 축소할 수 있는 유연성을 들 수 있다. 오토스케일링(Auto Scaling)은 클라우드의 유연성을 돋보이게 하는 핵심 기술로 CPU, 메모리, 디스크, 네트웍 트래픽과 같은 시스템 자원들의 메트릭(Metric) 값을 모니터링 하여 서버 사이즈를 자동으로 조절한다. 이를 통해 사용자는 예상치 못한 서비스 부하에 효과적으로 대응하고 비용 절감 효과를 볼 수 있다.

클라우드 서비스를 이용하는 기업의 운영자는 벤더가 제공하는 자원 관리 기능을 활용해 자동 조절 정책(Auto-Scaling Policy)을 설정한다. 자동 조절 정책은 서버들의 묶음 단위인 오토스케일링 그룹(Auto-Scaling Group)에 연결되어 서비스가 유휴 상태일 때는 서버의 개수를 최소로 유지하고 부하가 발생하면 최대로 늘려 안정적이고 유연한 서비스를 구현한다.

오토스케일링 기능에 대한 이해를 돕기 위해 본 아티클에서는 AWS(Amazon Web Services)를 예로 들어 설명하겠다.

AWS의 오토스케일링 그룹에 설정되는 항목을 간략히 정리하면 다음과 같다.

AWS의 오토스케일링 그룹에 설정되는 항목: Desired - 오토스케일링 시 서버 수 지정, Lunch Configuration - 오토스케일링 그룹에서 생성될 서버의 사양 설정 정의. Minsize -오토 스케일링 그룹의 최소 유지 서버 수. MaxSize-오토 스케일링 그룹의 최대 유지 서버 수. Health Check Type - 오토스케일링 그룹의 서비스에 대한 정상 구동 여부 방식 지정. Health Check Grace Time - 오토 스케일링 그룹 에서 신규 생성 된 서버 가 정상적인 서비스 를 실행 하기위해 필요한 초기 준비 시간 ( 이 시간 동안 은 헬스 체크 대상 에서 제외 ). Cool down time - 오토스케일링에 의해 서버가 확장 및 축소될때 서비스가 안정화 되기까지의 워밍업 시간(모니터링 서비스에서 발생한 알람이 무시되며 서버 확장 후 그룹 내 서비스가 정확한 부하분산을 할 수 있을 때까지 대기)

 

오토스케일링 발생 기준을 판단하기 위한 시스템 메트릭 지표

시스템 메트릭이란 가상 서버의 컴퓨팅 자원에 해당하는 CPU, 메모리, 네트웍과 같은 클라우드 리소스의 사용량 정보를 의미한다. 오토스케일링 그룹에 포함된 가상 서버의 시스템 메트릭 값이 지정된 임계치를 초과할 경우 가상 서버 수를 늘이고(Scale-out) 임계치 미만이면 가상 서버 수를 줄이도록(Scale-in) 설정할 수 있다.

AWS의 서버 인스턴스에 대한 모니터링 메트릭 지표는 다음과 같다.

AWS의 서버 인스턴스에 대한 모니터링 메트릭 지표: CPU - used(%), Network - in/out(bytes) in/out(packets), Disk I/O - read/wirte read/write ioperations, Load Average - 1분, 5분, 15분, 1시간, 6시간 단위

CPU는 사용률을 백분율로 가늠하고 네트웍은 입/출력 바이트 혹은 패킷으로 판단한다. 평균 부하 유지 기간은 1분, 5분, 15분 단위로 설정할 수 있다. 특이한 점은 디스크 성능 지표를 백분율 계측 방식이 아닌 디스크에 실제로 읽고(read) 쓴(write) 바이트 수와 디스크 액세스 오퍼레이션 회수로 측정해 정밀한 성능 판단 자료를 제공한다는 것이다.

 

서버 생성을 위한 시작 구성 템플릿(Launch Configuration Template)

AWS는 서버를 손쉽게 생성하기 위해 오토스케일링 그룹 내에 시작 구성(Launch Configuration) 템플릿을 제공한다. 운영 중인 서비스에 부하가 가해져 자동으로 서버 생성이 필요한 경우 시작 구성의 설정 내용에 따라 서버 인스턴스를 빠르게 만들어 장애를 방지할 수 있다.

시작 구성은 서버 OS 이미지 타입, 서버 스케일 사양 명세(CPU 코어 개수, 메모리 용량, OS 기본 스토리지 용량, 초기화 스크립트) 등을 정의한다. 이 구성은 한 번 생성하면 변경할 수 없고 삭제만 가능하다. 시작 구성이 제공하는 초기화 스크립트(Init Script)를 통해 초기 서버 설정값을 손쉽게 세팅 할 수 있다.(예: 비즈니스 서비스 로직을 위한 라이브러리 다운로드 및 서비스 네트워크 설정 등)

 

오토스케일링의 동작 원리

AWS가 제공하는 오토스케일링 기능의 동작 원리는 [그림 1]과 같다.

AWS가 제공하는 오토스케일링 기능의 동작 원리: 1단계 Metrix, 2단계 Alarm 발송, 3단계 scale out 발생, 4단계 서버 프로비저닝, 5단계 LB Health Check, 6단계 오토스케일링 그룹

그림에서 파란색 원으로 표시된 단계마다 수행하는 기능은 다음과 같다.

그림에서 파란색 원으로 표시된 단계마다 수행하는 기능_ 1단계:특정 주기마다 로드밸런서의 네트워크 정보와 서버의 시스템 리소스 메트릭 정보드이 모니터링 서비스로 수집된다. 2단계: 모니터링 서비스에서 지정한 임계치 조건을 벗어나는 것이 감지되면 오토스케일링 그룹으로 알람을 발송한다. 3단계: 오토스케일링 정책은 서버수를 늘리거나 줄이는 방식이다.예 를 들어 위 의 정책 지표 기준 으로 는 그룹 의 CPU 평균 사용률 이 70 % 이상인 상태가 5분동안 지속 발생하면 오토스케일링 정책이 트리거 된다. 4 단계 등록된 정책에 부합하는 경우 지정된 서버 수만큼 프로비저닝 작업을 시작한다. AWS의 경우 현재 서비스 중인 머신 이미지와 동일한 형상으로 사전에 커스텀 이미지를 AMI 로 만들어 놓으면 서버 확장 시점에 빠른 프로비저닝이 가능하다. 5단계: AWS의 ELB에서 생성된 신규 서버의 서비스 상태 확인을 위해 단순 URL에 HTTP 요청과 200OK 응답 결과로 서비스 시작 여부를 확인할 수 있다. 6단계: 서버 상태 확인이 완료되면 서버를 서비스 로드밸런서에 추가하여 다른 서버와 동일하게 클라이언트 요구 트래픽을 처리하기 시작한다.

 

오토스케일링은 △주기적으로 특정 시간대에 트래픽이 집중되는 서비스(혹은 서버 리소스가 적게 필요한 경우) △일괄 작업, 주기적 분석과 같은 워크로드 패턴 △특정 기간에 급증하는 트래픽 패턴 등 일 또는 주 단위로 트래픽 흐름이 변화하는 서비스에 유용하다.

이때까지 살펴본 바와 같이 클라우드 환경에서 오토스케일링 기술은 시시각각 변화하는 워크로드의 요구사항에 즉각 대응할 수 있어 비즈니스 특성에 부합하는 응용 솔루션을 효율적으로 운영할 수 있도록 한다. 시스템 리소스를 수분 내에 제어할 수 있고 응용 서비스 패턴에 맞추어 트래픽을 유연하게 배분하여 서비스 성능 및 가용성을 보장받을 수 있을 뿐 아니라 비용 절감 효과도 거둘 수 있다. 클라우드 서비스의 핵심 기술인 오토스케일링을 백분 활용하여 뛰어난 탄력성을 가진 인프라를 구현해보길 바란다.

# References

- https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html
- https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html

손병창 프로

에스코어㈜ 소프트웨어사업부 엔터프라이즈플랫폼그룹

클라우드 아키텍처 및 플랫폼 개발을 담당하고 있습니다.

연관 아티클

  • 오픈소스 SW2022.09.26

    Kaniko로 docker 없이 컨테이너 이미지 빌드하기

    자세히 보기
  • SW 테크놀로지2022.09.22

    우리는 왜 웹 환경에서 Noto Sans를 사용하는가?

    자세히 보기
  • SW 테크놀로지2022.09.07

    SaaS 도입과 활용의 Governance

    자세히 보기