[AWS] Amazon Auto Scaling

용어 정리

가용성(Availability)

가용성이란, 해당 시스템이나 서비스가 가동 및 실행되는 시간의 비율을 말한다. 가용성이 높다는 것은 서비스의 가동률이 높다는 것을 의미하여, 이러한 가용성은 보통 ‘9’로 측정한다.

예를 들어, 가용성 수준이 ‘세 개의 9(three Nines)’인 서비스는 가동되어 실행되는 99.9%의 시간만큼 지원할 수 있다는 것을 말한다. 24x7x365(하루 24시간 / 일주일 7일 / 일년 365일)을 기준으로 했을 때 1년 동안 서비스 중지가 8.76시간이라는 것을 의미한다.

다음은 인프라의 가용성 비용에 따른 서비스 가동 중지 시간을 정리한 내용이다.

가용성 비율가동 중지 시간(24시간 기준)
90%876시간(36.5일)
95%438시간(18.25일)
99%87.6시간(3.65일)
99.9%8.76시간
99.99%52.56분
99.999%5.256분

매우 중요한 업무 시스템이나 평상시 서비스 중지 및 다운타임을 가져갈 수 없는 시스템을 설계해야 하는 경우 인프라의 가용성을 극대화 할 수 있는 아키텍처로 인프라를 구성한다. 이러한 시스템을 ‘고가용성 시스템’이라 말한다.

확장성(Scalability)

확장성이란, 서비스나 응용 프로그램이 증가하는 성능 요구에 맞게 향상될 수 있는 정도를 나타낸다. 동시 접속자가 100명인 시스템이 있다고 가정할 때 특정 시즌이나 이벤트로 인해 동시 접속자가 10배에서 100배 이상 많이 접속하는 경우 확장성이 높은 시스템은 사용자 증가에 따라 시스템의 자원이나 리소스를 손쉽게 추가/삭제할 수 있다.

이러한 확장성은 물리적 하드웨어 환경에서 스케일 업(Scale Up) 스케일 아웃(Scale Out)이라는 두 가지의 확장성 전략을 이용하여 구현할 수 있다.

스케일 업은 단일 하드웨어에 대해 시스템 리소스(프로세서, 메모리, 디스크, 네트워크 어댑터 등)를 추가하거나 기존 하드웨어를 더욱 강력한 것으로 교체하는 작업이 포함되며, 스케일 아웃은 서버를 여러 대 추가하여 처리 능력을 향상시키는 방법이다.

AWS의 Auto Scaling은 클라우드의 이점을 살려 인프라의 증설/축소를 손쉽게 구현할 수 있어서 확장성 및 탄력성 높은 시스템을 구축할 수 있다.

Amazon Auto Scaling

Amazon Auto Scaling은 애플리케이션을 모니터링하고 용량을 자동으로 조정하여, 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지한다. => 규모 조정을 위한 서비스

AWS에서 제공하는 서비스 중 가장 클라우드답다고 할 수 있다. 예를 들어, 전세계 게이머를 대상으로 신규 모바일 게임을 오픈하는 경우 이벤트와 홍보를 통해 많은 사용자가 동시에 접속하게 된다.

  • 사용량을 확정할 수 없고 이벤트나 서비스의 특성에 따라 사용량에 변화가 빈번하게 발생할 때 적합한 서비스이다.

클라우드가 아니라 일반 H/W로 시스템을 구성한다면 사용자의 접속 예상 최대치를 산정하여 H/W를 구매해야 한다. 비용적인 측면에서 보면 많은 초기 투자가 필요하며, 사용자가 줄어 들어 더 이상 많은 시스템이 필요하지 않더라도 구매했던 H/W를 다시 처분할 수 없다.

동일한 상황에서 AWS의 Auto Scaling을 사용한다면 초기 H/W 구매나 투자는 필요하지 않다. 서비스 오픈 초기 서버의 사용자가 급증하면 Auto Scaling을 사용하여 인스턴스를 늘려 성능을 유지하고, 이용자가 줄어 평상시 상황이 유지되면 인스턴스를 자동으로 줄여 비용을 줄이는 효과를 볼 수 있다.

이렇듯 AWS Auto Scaling은 서버나 애플리케이션을 모니터링하고 리소스를 자동으로 조정(Scale In/Scale Out)하여, 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지할 수 있다.

구분내용
서비스명Amazon Auto Scaling
설명성능과 비용을 최적화하도록 애플리케이션 규모 조정
주요 특징– Auto Scaling을 사용하면 애플리케이션 가용성을 간편하게 관리
– 사용자가 정의한 조건에 따라 EC2 용량이 자동으로 확장/축소
– 실행 중인 EC2 인스턴스의 수를 원하는 수준으로 유지 가능
– 수요가 급증할 경우 인스턴스의 수를 자동으로 증가(Scale In)
– 수요가 적을 경우 자동으로 용량을 감소시켜 비용 낭비를 최소화(Scale Out)
– 수요 변화가 많지 않은 애플리케이션과 사용량이 시, 일, 주 단위로 변하는 애플리케이션 모두에 알맞은 상품
프리티어 (Free TierAuto Scaling의 사용은 무료이지만, AWS 리소스에 대한 비용과 Cloudwatch 비용은 발생됨

AWS Auto Scaling에서 더 많은 내용을 확인할 수 있다.

Amazon Auto Scaling 구성 요소

1. Amazon Auto Scaling 그룹

Amazon Auto Scaling 그룹은 인스턴스의 조정 및 관리 목적으로 구성된 논리적 그룹으로 Auto Scaling을 수행하는 인스턴스의 모음이다.

예를 들어, B2B용 웹 사이트를 여러 인스턴스에서 서비스한다면 애플리케이션의 성능을 향상시키기 위해 Auto Scaling 그룹을 사용하여 지정된 조건에 따라 자동으로 인스턴스 수를 늘리거나, 비정상적으로 동작하는 경우 고정된 수의 인스턴스를 유지하거나, 비용 절감을 위해 인스턴스의 수를 자동으로 조정할 수 있다.

이러한 Auto Scaling 그룹은 인스턴스의 수를 조건에 따라 자동 조정 및 관리하는 Amazon Auto Scaling의 핵심 기능이다.

2. 시작 구성

시작 구성은 Auto Scaling 그룹에서 인스턴스를 시작하는 데 사용하는 템플릿이다. 시작 구성을 생성하는 경우 Amazon Machine Image(AMI), 인스턴스 유형, 키 페어, 하나 이상의 보안 그룹, EBS 등 인스턴스에 대한 정보를 지정한다.

시작 구성은 여러 개의 Auto Scaling 그룹에 지정될 수 있으나, Auto Scaling 그룹은 하나의 시작 구성만을 지정할 수 있다. 또한 시작 구성은 한 번 생성한 이후에는 수정/변경할 수 없다.

따라서 시작 구성을 변경하여 Auto Scaling 그룹에 적용하고자 한다면, 시작 구성을 새롭게 생성하여 Auto Scaling 그룹을 업데이트 해야 한다.

3. Amazon Auto Scaling 그룹 조정

Auto Scaling 그룹 조정은 인스턴스의 수를 늘리거나 줄이는 기능이다. 조정 작업은 이벤트와 함께 시작되거나, Auto Scaling 그룹의 인스턴스를 시작하거나 종료하도록 수행하는 조정 작업과 함께 수행된다.

인스턴스의 조정 옵션은 다음과 같다.

  • 현재 인스턴스 수준 유지 관리 : 최소 또는 향상 지정된 수의 인스턴스를 실행 유지 관리하도록 구성할 수 있다.
  • 수동 조정 : Auto Scaling 그룹에서 최소, 최대 또는 원하는 용량의 변경 사항을 조정 변경할 수 있다.
  • 일정을 기반으로 조정 : 예측 가능한 일정에 따라 수요가 증가하거나 감소하는 경우 일정에 따른 확장 및 축소 작업을 시간 및 날짜 함수를 통해 자동으로 수행되도록 구성할 수 있다.
  • 온디맨드 기반 조정 : 리소스를 조정하는 가장 효과적인 방법으로 인스턴스의 CPU 사용률이 15분 동안 90% 유지될 때마다 인스턴스를 확장하도록 구성하는 정책을 생성할 수 있다. 이는 변화하는 조건에 따라 효과적으로 자원의 조정을 가능하게 한다. CPU, 메모리 사용량, 네트워크의 대역폭이 일정 수준 이상인 경우 새로운 인스턴스를 시작하고, 네트워크 대역폭이 다시 내려가면 인스턴스를 종료하는 정책을 수립하여 적용할 수 있다. 이러한 모니터링 기반의 조정은 2개의(확장/축소) 정책을 통해 작업을 수행한다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다