이 장의 주제인 AWS 오토 스케일링 서비스를 살펴보기에 앞서,
먼저 스케일링은 무엇이고 어떤 종류로 분류되는지 이해해야 한다!
스케일링
스케일링이란
IT 측면에서 스케일링(scaling)이란 IT 자원을 확장하거나 축소하는 기능을 의미한다
IT 자원의 사용 요구는 항상 고정적이지 않고 특정 상황이나 이벤트에 따라 가변적이다
=> 이렇게 IT 자원의 사용 요구가 가변적일수록 자원의 성능 및 수량을 확장하거나 축소하는 개념인 스케일링은 필수이다
(스케일링으로 IT 자원의 고가용성과 내결함성을 확보할 수 있음)
스케일링의 종류
스케일링 기법은 확장 및 축소 방향에 따라 수직 스케일링과 수평 스케일링으로 구분된다
수직 스케일링
수직 스케일링은 IT 자원의 용량을 확장, 축소하는 것으로 스케일 업(scale-up)과 스케일 다운(scale-down)으로 분류한다!
IT 자원에 부하가 증가하면 CPU나 메모리 등을 성능이 높은 것으로 대체하는 것을 스케일 업
IT 자원에 부하가 감소하면 CPU나 메모리 등을 성능이 낮은 것으로 대체하는 것을 스케일 다운 이라고 한다
=> 수직 스케일링은 부하 상태에 따라 IT 자원 자체 성능을 조정하는 것으로 정의
수평 스케일링
수평 스케일링은 IT 자원의 수량을 확장, 축소하는 것으로 스케일 인(scale-in)과 스케일 아웃(scale-out)으로 분류한다!
IT 자원에 부하가 증가하면 자원 수량을 늘리는 것을 스케일 아웃
IT 자원에 부하가 감소하면 자원 수량을 줄이는 것을 스케일 인 이라고 한다
=> 수평 스케일링은 부하 상태에 따라 IT 자원의 수량을 조정하는 것으로 정의
AWS 오토 스케일링 서비스
AWS는 클라우드 자원에 대한 스케일링 서비스를 제공하는데, 이 서비스를 AWS 오토 스케일링이라고 한다
=> 오토 스케일링이라는 명칭에서 알 수 있듯이, 스케일링으로 클라우드 자원을 '동적으로' 확장하거나 축소하여 클라우드 자원의 규모를 조정한다
수동으로 스케일링을 수행하려면 언제 어느 시점에 부하가 발생할지 예측하기 어려운 상태에서 항시 부하 상태를 모니터링 해야하므로 굉장히 번거롭고 불편한 작업이다!
=> AWS는 클라우드의 온디맨드 특성으로 요구가 있을 때 즉시 자원을 할당한다는 측면에서 동적인 스케일링 작업을 수행
AWS 오토 스케일링 기능으로 클라우드 자원 규모를 조정하는 대상에 Amazon EC2 인스턴스, Amazon ECS, Amazon DynamoDB의 테이블 및 인덱스, Amazon Aurora의 복제본 등이 있다
Amazon EC2 오토 스케일링이란
Amazon EC2 오토 스케일링 서비스란 EC2 인스턴스에 설치된 애플리케이션 워크로드를 수용하도록 동적으로 EC2 인스턴스 수를 확장하거나 축소하여 워크로드를 유지하는 서비스를 의미한다
=> EC2 인스턴스에 대해 수평 스케일링으로 스케일 아웃과 스케일 인을 동적으로 수행하는 개념
(인스턴스 수를 확장, 축소 하는 것이므로!)
AWS EC2 오토 스케일링 구성 요소
그룹 : EC2 인스턴스를 오토 스케일링으로 조정하고 관리하기 위해 EC2 인스턴스를 논리적으로 구분하는 그룹으로 구성
=> 그룹을 생성할 때 EC2 인스턴스의 최소 및 최대 인스턴스 수와 최초 요구하는 인스턴스 수 등 정보를 지정할 수 있음
구성 템플릿 : EC2 인스턴스를 구성하는 템플릿으로 인스턴스 AMI, 인스턴스 유형, 키 페어, 보안 그룹 등 정보를 지정할 수 있음
조정 옵션 :오토 스케일링 그룹을 조정하는 다양한 방법을 정의하는 것으로, 지정한 조건이나 일정에 따라 오토 스케일링 그룹을 조정할 수 있다
Amazon EC2 오토 스케일링의 인스턴스 수명 주기
Amazon EC2 오토 스케일링은 일반적인 EC2 인스턴스와는 다른 수명 주기(life cycle)가 있다
=> 이런 수명 주기는 Amazon EC2 오토 스케일링이 인스턴스를 시작하고 서비스에 들어갈 때 시작되며, 인스턴스를 종료할 때는 서비스에서 제외하고 대상을 종료
인스턴스 확장에 따른 이벤트
Amazon EC2 오토 스케일링에서 인스턴스 확장에 따른 이벤트는 밑의 경우에 발생한다
1. 오토 스케일링 그룹의 크기를 수동으로 늘리는 경우
2. 저장된 수요 증가에 따라 오토 스케일링 그룹의 크기를 자동으로 늘리는 조정 정책을 적용하는 경우
3. 특정 시간에 오토 스케일링 그룹의 크기를 자동으로 늘리는 예약된 작업을 수행하는 경우
이런 인스턴스 확장 이벤트가 발생하면 오토 스케일링은 할당된 구성 템플릿을 사용하여 필요한 수의 인스턴스를 시작함
(이때 인스턴스 상태는 '대기 중'으로 시작됨)
인스턴스가 완전히 구성되면 오토 스케일링에 연결되어 '실행 중' 상태에 들어감
=> 여기에서 오토 스케일링이 로드 밸런서와 연결되면 로드 밸런서가 인스턴스를 자동으로 등록하는 작업이 진행되고
'실행 중' 상태로 전환
인스턴스 축소에 따른 이벤트
Amazon EC2 오토 스케일링에서 인스턴스 축소에 따른 이벤트는 밑의 경우에 발생한다
1. 오토 스케일링 그룹의 크기를 수동으로 줄이는 경우
2. 저장된 수요 감소에 따라 오토 스케일링 그룹의 크기를 자동으로 줄이는 조정 정책을 적용하는 경우
3. 특정 시간에 오토 스케일링 그룹의 크기를 자동으로 줄이는 예약된 작업을 수행하는 경우
이런 인스턴스 축소 이벤트가 발생하면 오토 스케일링은 하나 이상의 인스턴스를 종료한다
(이때 오토 스케일링은 종료 정책을 이용하여 종료할 인스턴스를 결정함)
=> 선택된 대상 인스턴스의 상태는 '종료 중'으로 전환되며, 다시 '실행 중' 상태로는 돌아갈 수 X
인스턴스가 완전히 종료되면 오토 스케일링에서 삭제되어 '종료됨' 상태에 들어감
=> 여기에서 오토 스케일링이 로드 밸런서와 연결되면 오토 스케일링은 로드 밸런서가 인스턴스의 등록을 취소할 때 까지 기다렸다 '종료 됨' 상태로 전환됨
이런 인스턴스 축소 이벤트를 수행하여 어떤 인스턴스를 종료할 때 바로 삭제되지 않고 일정 시간 대기하기도 함
예를 들어 대상 인스턴스에서 파일을 내려받고 있을 때는 바로 삭제하지 않고 사용자 요청을 처리할 수 있도록 지정된 시간만큼 기다리는데, 이런 상태를 '드레이닝(draining)'이라고 함
=> 드레이닝 상태에서는 새로운 연결 수행 X
이렇게 인스턴스 확장, 축소 이벤트에 따른 수명 주기가 동작하여 인스턴스 상태를 전환하며
(인스턴스 확장, 축소 이벤트에 따라 인스턴스를 실행, 종료)
인스턴스 자원의 수요와 서비스 중인 인스턴스 자원을 최대한 일치시킬 수 있음!
Amazon EC2 오토 스케일링 조정 옵션
Amazon EC2 오토 스케일링 조정 옵션은 오토 스케일링 그룹을 조정하는 다양한 방법을 제공한다
1. 인스턴스를 일정한 수로 유지
오토 스케일링 조정 옵션으로 오토 스케일링 그룹의 인스턴스를 지정된 수로 유지할 수 있음
=> 실행 중인 인스턴스를 주기적으로 확인하여 비정상 상태의 인스턴스가 있으면 해당 인스턴스를 종료하고 새로운 인스턴스를 시작해서 일정한 수로 유지
2. 수동 조정
수동 조정은 오토 스케일링의 가장 기본적인 방법으로, 오토 스케일링 그룹의 최대/최소 용량을 수동으로 변경할 수 있다
3. 동적 조정
동적 조정은 트래픽 변화에 따라 오토 스케일링 그룹의 용량을 조정한다
- 대상 추적 조정 : 대상 인스턴스를 추적해서 특정 지표의 목표 값을 기준으로 유지하기 위해 오토 스케일링을 적용
=> 예를 들어 평균 CPU 사용률 50%를 목표로 하는 지표 값으로 대상 추적 조정 정책을 생성하면, 인스턴스 수를 조정하여 지표 값에 맞게 유지
- 단계 조정 : 오토 스케일링 그룹의 용량을 단계별로 조정하여 오토 스케일링을 적용
=> 임곗값 기준으로 임곗값을 넘어서는 크기에 따라 단계적으로 조정
- 단순 조정 : 오토 스케일링 그룹의 용량을 단일하게 조정하여 오토 스케일링을 적용
=> 임곗값 기준으로 임곗값을 넘어서는 크기와 무관하게 단일하게 조정
과 같은 동적 조정 정책을 지원한다!
4. 일정을 기반으로 예약된 조정
작업 시간이나 날짜에 따라 오토 스케일링을 수행하는 것으로, 그룹의 인스턴스 수를 늘려야 할지 또는 줄여야 할지 정확히 아는 경우에 유용하다
=> 예를 들어 업무 시간에는 사용량이 많고 업무 시간 이후에는 사용량이 줄어드는 것처럼 반복되는 일정에서는 업무가 시작되면 예약된 조정을 바탕으로 미리 용량을 추가할 수 있음
5. 일정을 기반으로 예측 조정
지난 측정값으로 누적된 기록을 이용하여 트래픽 흐름의 일일 및 주간 패턴을 예측해서 오토 스케일링 그룹의 인스턴스 수를 늘리거나 줄일 수 있다
이렇게 Amazon EC2 오토 스케일링은 다양한 조정 옵션을 제공하기 때문에 자원의 애플리케이션이 가진 특징을 충분히 이해하고 적합한 조정 기능을 선택하는 것이 중요하다!
Amazon EC2 오토 스케일링을 사용할 때 별도로 발생하는 요금은 없다!
=> 사용한 EC2 인스턴스와 CloudWatch 경보에 따른 요금만 발생
'Infra > AWS 교과서' 카테고리의 다른 글
[AWS 교과서] 10장, 11장 - 워드프레스 (5) | 2024.01.22 |
---|---|
[AWS 교과서] 8장 - AWS IAM 서비스 (1) | 2024.01.19 |
[AWS 교과서] 7장 - AWS 고급 네트워킹 서비스(2) (0) | 2024.01.18 |
[AWS 교과서] 7장 - AWS 고급 네트워킹 서비스(1) (0) | 2024.01.18 |
[AWS 교과서] 6장 - AWS 데이터베이스 서비스(2) (0) | 2024.01.16 |