1) AWS Auto Scaling 그룹을 이용한 다중 서버 구성
- AWS Auto Scaling 그룹은 AWS에서 제공하는 자동 다중 서버 서비스다.
Auto Scaling 그룹은 같은 사양, 같은 환경, 같은 코드를 가지고 있는 똑같은 EC2 인스턴스들의 묶음이다.
똑같은 인스턴스들이 여러 대 존재할 수 있는 이유는 같은 AMI를 이용해서 만들어진 인스턴스들이기 때문이다.
- 그리고 Auto Scaling 그룹이라는 이름에서 알 수 있듯이, 이 서비스는 인스턴스들의 수를 자동으로 늘리고 줄여준다.
예를 들어, 서비스에 사용자가 많이 몰리는 경우 서버의 수를 늘리고
사용자가 별로 없는 경우에는 서버의 수를 자동으로 줄인다.
- 최대 사용자에 대비해서 모든 서버를 24시간 가동해두는 기존 방식과 비교했을 때,
실시간 트래픽 등의 변수를 반영해서 인스턴스의 수를 조정하기 때문에 훨씬 안정적으로 서비스를 운영할 수 있으며,
비용도 크게 절감할 수 있다.
또한 어떤 이유로 Auto Scaling 그룹 내 인스턴스의 수가 변했는지 이력을 조회하거나 이메일로 받아볼 수 있다.
2) AWS Auto Scaling 그룹의 응용 예
(1) 자원 사용량을 기준으로 한 자동 조정
- Auto Scaling 그룹 내 모든 서버 인스턴스들에 대한 평균 CPU 사용량에 대한 조정 정책을 걸어뒀다고 가정해보자.
예를 들어, 2대의 인스턴스에서 클라이언트의 요청을 나눠서 처리하고 있다가 클라이언트의 요청량이 많아져서
두 인스턴스의 평균 CPU 사용량이 10분 동안 90% 이상을 넘어서면 Auto Scaling 그룹에서 이 둘과 똑같은 인스턴스를
하나 더 생성한다.
- 그러면 2대의 인스턴스에서 나눠 처리하던 요청을 3대의 인스턴스에서 나눠 처리하게 되므로
세 인스턴스의 평균 CPU 사용량이 정상 범위로 다시 내려올 수 있게 된다.
물론 앞에서 언급한 10분, 90% 같은 조건들은 필요에 맞춰서 지정할 수 있다.
(2) 시간을 기준으로 한 자동 조정
- 실시간 자원 사용량 외에 시간으로도 Auto Scaling 조정 정책을 생성할 수 있다.
소셜 커머스와 같이 서비스의 특성상 사람들이 매일 자정에 갑자기 몰린다면
서버 비용을 아끼기 위해 24시간 서버를 실행해 두는 것이 아니라
사람들이 몰리는 자정에만 서버를 여러 대 실행해 두면 된다.
- 다만, 매일 23시 50분에 서버 관리자가 컴퓨터 앞에서 서버의 수를 늘릴 필요 없이
Auto Scaling 그룹에 예약 작업을 생성해 두면 된다.
23시 50분에 최소 서버 수를 5개로 설정해두면 Auto Scaling 그룹이 매일 그 시간에 인스턴스 수가 5대 미만일 경우
5대로 늘리는 작업을 한다.
- 예를 들어, 평소에는 3대의 서버로 모든 트래픽을 감당하다 23시 50분이 되면 자정에 늘어날 트래픽에 대응하기 위해
Auto Scaling 그룹에서 최소 인스턴스의 수를 5대로 늘린다.
현재 3대가 실행 중이기 때문에 5대를 맞추기 위해 2대를 더 실행시켜 자정에 몰려든 트래픽에 안전하게 대응할 수 있다.
3) AWS Auto Scaling 그룹의 구성
- Auto Scaling 그룹을 생성하기 위해서는 자동으로 생성할 EC2 인스턴스를 골라야 한다.
예를 들어, A, B, C 인스턴스 중 B 인스턴스를 선택하면, B 인스턴스의 현재 환경(OS, 디스크 내용 등)을 스냅숏으로 생성해서
AMI를 만든다.
- 그런 다음, 이 AMI를 이용해 어떤 설정(사양, 보안 그룹, 네트워크 설정 등)의 인스턴스를 띄울지 미리 정의해두는
시작 템플릿을 생성한다.
마지막으로 이 시작 템플릿을 이용해 인스턴스를 실행할 Auto Scaling 그룹을 생성한다.
그러면 Auto Scaling 그룹에서 B 인스턴스의 환경을 갖고 있으며 시작 템플릿에서 정의된 설정으로 생성된 인스턴스들을
자동으로 생성하고 종료한다.
'서비스 운영이 쉬워지는 AWS 인프라 구축 가이드' 카테고리의 다른 글
[서비스 운영이 쉬워지는 AWS 인프라 구축 가이드] 모니터링 시스템 구축 및 활용 (0) | 2025.05.28 |
---|