Amazon EC2 Auto Scaling을 사용하면 애플리케이션의 로드를 처리할 수 있는 정확한 수의 Amazon EC2 인스턴스를 유지할 수 있다. Auto Scaling 그룹은 즉, EC2 인스턴스 모음을 뜻한다.
- Auto Scaling Group의 최소 인스턴스 수를 지정할 수 있으며 Amazon EC2 Auto Scaling에서는 그룹의 크기가 이 값 아래로 내려가지 않는다.
- Auto Scaling 그룹의 최대 인스턴스 수를 지정할 수 있으며 Amazon EC2 Auto Scaling에서는 그룹의 크기가 이 값을 넘지 않는다.
- 원하는 용량을 지정한 경우 그룹을 생성한 다음에는 언제든지 Amazon EC2 Auto Scaling에서 해당 그룹에서 이만큼의 인스턴스를 보유할 수 있다.
- 조정 정책을 지정했다면 Amazon EC2 Auto Scaling에서는 애플리케이션의 늘어나거나 줄어드는 수요에 따라 인스턴스를 시작하거나 종료할 수 있다.
AutoScaling 구성 요소
그룹
EC2 인스턴스는 그룹에 정리되어 조정 및 관리 목적의 논리적 단위로 처리할 수 있다. 즉, 최소/최대/중간 단위로 인스턴스 수를 지정할 수 있다.
구성 템플릿
EC2 인스턴스에 대한 구성 템플릿으로 사용한다. 인스턴스의 AMI ID, 인스턴스 타입, 키 페어, 보안 그룹, 블록 디바이스 매핑 등의 정보를 지정한다.
조정 옵션
Amazon EC2 Auto Scaling은 Auto Scaling 그룹을 조정하는 여러 가지 방법을 제공한다.
Auto Scaling 이점
- 향상된 내결함성: Amazon EC2 Auto Scaling에서는 인스턴스가 비정상 상태일 때 이를 감지하여 종료한 다음 이를 대체할 인스턴스를 시작할 수 있다. 여러 개의 가용 영역을 사용하도록 Amazon EC2 Auto Scaling을 구성할 수도 있다. 하나의 가용 영역이 사용 불가 상태가 되면 Amazon EC2 Auto Scaling에서는 다른 가용 영역에서 새 인스턴스를 시작하여 이에 대처할 수 있다.
- 가용성 향상: Amazon EC2 Auto Scaling은 애플리케이션이 항상 현재 트래픽 요구를 처리할 수 있는 올바른 용량을 갖추도록 도와준다.
- 비용 관리 향상: Amazon EC2 Auto Scaling은 필요에 따라 용량을 동적으로 늘리거나 줄일 수 있다. 사용한 EC2 인스턴스에 대해서만 비용을 지불하므로, 인스턴스가 필요할 때 이를 시작하고 필요없어지면 종료함으로써 비용을 절감한다.
예시로 3가지의 Case를 보여주고자 한다.
1. 가변적인 수요에 대응
2. 웹 앱 아키텍처
3. 가용 영역 전반에 인스턴스 분산
가변적인 수요에 대응
위에 그래프처럼 날마다 애플리케이션에 대한 수요가 차이가 난다. 그렇다면 저 수요에 맞게 대응하기 위해선 성능을 좋게 구축을 한다거나, 서버의 갯수를 늘리는 수단을 적용해야한다. 근데 이게 좋은 방법일까? 아니다. 우리는 클라우드 환경에 적응을 해보자.
필요 시에만 애플리케이션에 새 인스턴스를 추가하고 더 이상 필요 없을 때 이를 해지할 수 있도록 Amazon EC2 Auto Scaling을 활용하는 것이다. 즉, EC2 인스턴스를 사용하므로 사용한 인스턴스에 대해서만 인스턴스 사용 시에 비용을 지불하면 되기 때문에 비용을 최소화하면서도 최상의 고객 경험을 제공하는 비용 효율적인 아키텍처를 갖게 되는 방안이다.
웹 앱 아키텍처
기존에는 고객 트래픽 볼륨을 처리하기 위해 여러 개의 앱 사본(Instance)을 동시에 실행한다. 이것도 비용, 효율적인가? 아니다.
Autoscaling Group을 활용한다고 했을 때 어떻게 바뀔까?
Autoscaling Group에서는 EC2 인스턴스를 생성하거나 삭제하는 시기를 결정하는 조건(Amazon CloudWatch 경보 등)의 집합을 정의할 수 있다. 예를 들면 서버의 CPU 값이 상승함에 따라 하나의 EC2 인스턴스를 동적으로 생성해줌으로써, 서버의 부하를 분산해줄 수 있다. 그렇다면 필요한 갯수만큼의 EC2 Instance를 생성할 것이고, 애플리케이션에 대한 가용성, 내결함성을 향상할 수 있다.
가용 영역 전반에 인스턴스 분산
각 지역에는 지역에 대한 고가용성을 제공하도록 설계된 여러 가용 영역이 있다.
기존에 IDC 한 곳에 웹 애플리케이션을 구축하였다고 하였을 때, IDC의 위치가 화재나, 지진 등 문제로 중단이 되었다고 하자.이때 고객들은 서비스를 이용하지 못한다는 불편함이 있다.클라우드 컴퓨팅 환경을 고려해보자. 가용 영역이라는 개념이 있다.그럼 Autoscaling Group과 어떤 연관이 있길래?Amazon EC2 Auto Scaling은 인스턴스 수가 가장 적은 가용 영역에서 새 인스턴스를 출범하려고 시도하는 방식으로 고른 분산을 수행한다. 만약 각 가용 영역에 인스턴스 생성시도가 실패하는 경우, 성공할 때까지 Amazon EC2 Auto Scaling는 다른 가용 영역에서 인스턴스 생성을 계속 시도한다.즉, 만약 a의 가용영역이 장애로 서비스를 할 수 없다고 가정하였을 때, Auto Scaling에서는 리전에 존재하는 서브넷(가용영역)에 배포를 시도할 것 이다. 그럼 나머지 가용영역에 서버를 배치함으로써, 정상적인 운영이 가능한 것이다.
이후에는 Amazon EC2 Auto Scaling Instance LifeCycle 및 자동 크기 조정 정책에 대해서 다뤄보자.
'AWS > EC2(Elastic Compute Cloud)' 카테고리의 다른 글
5. EC2 IMDS(Instance Metadata Service)란 무엇인가? (0) | 2024.01.12 |
---|---|
4. Userdata 뭐야? (0) | 2024.01.12 |
3. Instance LifeCycle (0) | 2024.01.12 |
2. EC2 Instance 구성요소 (0) | 2024.01.11 |
1. Amazon EC2 무엇인가? (2) | 2024.01.11 |