본문 바로가기

Infrastructure/Cloud Computing

[AWS] Auto Scaling

가용성과 확장성이란

가용성(Availability)이란, 시스템이나 서비스가 정상적으로 가동 및 실행되는 시간의 비율을 의미한다. 가용성이 높다는 것은 서비스가 정상적으로 작동하는 비율이 높다는 것을 의미하며 일반적으로 '9'로 측정한다. 예를 들어 가용성 비율이 99.99%라는 것은 0.01%비율로 중단되었다는 의미이며 1년(59,808시간)동안 서비스가 52.56분 중단된다는 의미이다.
가동성 비율과 가동 중지 시간을 정리하면 아래와 같은 표가 나온다.

가동성 비율 가동 중지 시간
90% 876시간
95% 438시간
99% 87.6시간
99.9% 8.76시간
99.99% 52.56분
99.999% 5.256분

확장성(Scalability)란, 서비스나 애플리케이션이 증가하는 트래픽을 처리할 수 있도록 확장될 수 있는 정도를 의미한다. 평소에 일반적인 트래픽을 유지하던 서비스가 기간 한정 쿠폰 이벤트를 시행하여 평소의 10배 이상의 트래픽이 몰렸다고 가정하였을 때 확장성이 높은 시스템은 트래픽의 증가에 따라 시스템의 자원을 쉽게 업그레이드하여 트래픽을 처리했을 것이다. 이러한 확장성은 일반적으로 Scale Up, Scale Out 방식을 사용하여 확장성 전략을 구현할 수 있다. Scale Up은 단순히 시스템의 리소스(CPU, Memory 등)를 늘리는 방식을 말하며 Scale Out은 여러 대의 서버를 구축하는 방식을 의미한다.


Amazon Auto Scaling이란?

서버나 애플리케이션을 모니터링하고 트래픽이 몰리는 시점에 리소스를 Scale In하고 트래픽이 줄어들면 리소스를 Scale Out하여 최대한 저렴한 비용으로 안정적인 운영을 할 수 있도록 해주는 서비스다. EC2 인스턴스 및 컨테이너를 Auto Scaling하여 애플리케이션의 고가용성을 유지할 수 있다.

그림1

만약 Auto Scaling과 같은 서비스가 없다면 기업들은 서비스를 출시하기 위하여 동시 접속 최대 예상치를 계산할 것이며 이러한 최대 동접자를 처리하기 위하여 서버 구축비용에 많은 비용을 지출해야한다. 하지만 Amazon Auto Scaling을 사용하면 접속 최대 예상치를 계산하여 처리할 수 있을만큼 Auto Scaling Group의 최대 크기만 정해놓으면 된다.


Amazon Auto Scaling의 구성요소

1. Amazon Auto Scaling Group: 인스턴스의 조정 및 관리 목적으로 구성된 논리적 그룹으로 Auto Scaling을 수행하는 인스턴스의 모음이다. Auto Scaling Group을 사용하여 지정한 조건에 따라 자동으로 인스턴스의 수를 늘리거나 정상적으로 작동하지 않는 인스턴스가 발생하는 경우 새로 인스턴스를 실행시켜 최소한으로 지정한 인스턴스의 갯수를 유지할 수 있다.

그림2

2. 시작 구성: Auto Scaling Group에서 인스턴스를 시작하는 데 사용되는 템플릿이다. 시작 구성을 생성하는 경우 EC2 인스턴스의 상태를 저장한 AMI(Amazon Machine Image), 인스턴스 유형, 키 페어, 보안 그룹등 인스턴스를 생성하기 위한 정보를 지정한다. 한 번 생성된 시작 구성은 수정이 불가능하며 새로운 시작 구성으로 변경하고 싶다면 새로운 시작 구성을 생성하여 Auto Scaling Group을 업데이트 해야한다.


이 글은 아마존 웹 서비스 AWS Discovery Book 도서와 AWS 공식문서를 참고하여 작성하였다.

이미지 출처:

  • 그림 1, 2: AWS 공식 홈페이지

'Infrastructure > Cloud Computing' 카테고리의 다른 글

[AWS] IAM  (0) 2022.02.18
[AWS] CloudFront  (0) 2022.02.18
[AWS] ELB  (0) 2022.02.17
[AWS] Route53  (0) 2022.02.16
[AWS] RDS  (0) 2022.02.16