본문 바로가기

AWS

[AWS] EC2 Auto Scaling 구성 가이드

반응형

1. 개요

  • Auto Scaling은 사용자가 미리 정의한 일정 또는 리소스 부하율에 따라 서버를 자동으로 생성하거나 삭제하고, 이 결과를 사용자에게 전달해줌으로써, 서버 사용율에 따라 자원규모를 유연하게 관리하여 고가용성 확보 및 안정적인 서비스를 제공합니다.
  • Auto Scaling에 특정 정책을 설정하면 정책에 따라 Scale-out, in을 합니다.
  • 필요한 경우에는 서버를 2대에서 수백, 수만대로 스케일 아웃이 가능합니다.
  • 위의 특징으로 인해 서버의 과부하, 장애 등과 같이 서비스 불능 상황 발생시 유리합니다.
  • 온 프레미스상에서 서버증설을 위한 작업은 까다로운 반면 클라우드 환경에서는 Auto Scaling을 통해 정의한 내용에 따라 자동으로 증설 및 감소가 가능합니다.

2. 구성도

 

2.1 기본 구성

  • VPC
  • Subnet
  • EC2 인스턴스 (Web Server)
  • ALB 구성

2.2 기본 흐름 설명

  • Client가 도메인 주소나 ALB DNS주소를 웹 브라우저에 입력 시 오토스케일링에 포함된 서버로 요청을 분배합니다.
  • 오토스케일링 그룹에 포함된 인스턴스(서버)들은 상황에 따라 Auto Scaling 정책에 따라 Scaling-out, in을 합니다.

 

3. Auto Scaling 설정

3.1 커스텀 이미지 생성

  • Auto Scaling을 사용하기 위해서 기본적인 이미지 템플릿을 구성합니다.
  • 이미지 템플릿에 구성할 패키지, 구성 정보들을 미리 구성하여 더 빠른 확장성을 제공할 수 있습니다.

3.1.1 이미지 생성

EC2 > 인스턴스 선택 > 이미지 및 템플릿 > 이미지 생성 메뉴로 이동합니다.

 

 

템플릿의 이름과 이미지의 기본 볼륨 유형 및 크기를 지정합니다.

 

 

3.1.2 생성된 AMI 확인

EC2 > AMI > 내소유 메뉴로 이동합니다.

 

 

3.2 Auto Scaling 시작 구성

3.2.1 시작 구성 생성

이름: 임의값 지정 합니다.

AMI: 앞서 생성한 AMI 지정 합니다. ( Auto Scaling을 통해 관리할 EC2 인스턴스 AMI지정)

보안그룹: HTTP 80번에 대한 트래픽 오픈합니다.

키 페어: Auto Scaling을 통하여 생성 된 EC2에 접속할 키 페어 정보를 선택합니다.

 

 

3.2.2 생성 확인

EC2 > Auto Scaling > 시작 구성 메뉴로 이동합니ㅏㄷ.

 

 

3.3 Auto Scaling 그룹 생성

3.3.1 Auto Scaling 그룹 생성

EC2 > Auto Scaling > 시작 구성 > 작업 > Auto Scaling 그룹 생성 메뉴로 이동합니다.

 

 

Auto Scaling 그룹 이름: 임의 값을 설정합니다.

시작 구성: 생성한 시작 구성 선택합니다.

 

 

VPC , 가용영역 및 서브넷: 정의 조건에 따라 Auto Scaling을 통해 생성 될 EC2 인스턴스가 위치할 VPC 가용영역 및 서브넷을 지정합니다.

 

 

로드 밸런싱: ALB에서 트래픽을 분산할 수 있도록 설정할 것이기 때문에 기존 로드밸런서에 연결 / 선택, 해당 사항이 없을 경우 로드 밸런서 없음을 선택 합니다.

기존 로드 밸런서 대상 그룹: ALB의 대상 그룹 즉 해당 서버가 포함되어있는 대상 그룹 선택합니다.

상태 확인 유형: 상태 확인은 EC2, ALB 둘 다 가능 상황에 따라 설정합니다.

유예 기간: 첫번 째 상태 확인을 수행하기까지의 시간입니다.

모니터링: 모니터링 수집 활성화 체크하여 모니터링 할 수 있습니다.

 

 

그룹크기: 시작시 인스턴스의 개수, 최소 인스턴스의 개수, 최대 인스턴스의 개수를 지정합니다.

원하는 용량은 최소 용량보다 적을 수 없으며 최대 용량보다 클 수 없습니다.

 

 

알림추가: 가이드에서는 미설정 하였지만 SNS 알림여부는 필요에따라 설정 가능합니다.

 

 

태그 추가: 구분이 가능하도록 태그를 추가합니다.

 

 

4. 결과

4.1 Auto Scaling 확인

4.1.1 Auto Scaling 그룹 작업 기록 확인

EC2 > Auto Scaling 그룹 > 활동, 인스턴스 관리, 모니터링 메뉴로 이동합니다.

Auto Scaling을 통해 생성된 인스턴스에 대하여 상태 등의 작업 기록을 확인 가능합니다.

 

 

인스턴스 관리를 통해 상태확인 가능합니다.

 

 

4.1.2 인스턴스 확인

EC2 > 인스턴스

Auto Scaling의 최소 용량 개수인 2개에 맞춰 인스턴스가 자동으로 생성 된 것을 확인할 수 있습니다.

 

 

4.1.3 대상 그룹 확인

EC2 > 로드밸런싱 > 대상 그룹

Auto Scaling을 통해 생성 된 EC2 인스턴스들이 자동으로 대상 그룹에 포함되어 있음을 확인합니다.

상태 확인: healthy와 unhealthy로 나타납니다.

 

 

 

4.1.4 웹페이지 확인

 

 

4.2 Auto Scaling 정책 테스트

Scale Out: Scale Up으로는 한계가 있기에 컴퓨팅 성능 상승보다는 컴퓨팅 수를 늘리는 것을 의미합니다.

Scale In: 작업이 완료 되어 더 이상 필요없는 Scale Out으로 늘렸던 컴퓨팅 수를 줄이는 것을 의미합니다.

 

4.2.1 Auto Scaling 정책 설정

EC2 > Auto Scaling 그룹 > 대상 선택 > 자동 크기 조정 > 동적 크기 조정 정책 생성 메뉴로 이동합니다.

정책유형: 단계 조정 

조정 정책 이름: SCALE-OUT

CloudWatch 경보: 4.2.3 생성법 확인

 

 

정책유형: 단계 조정

조정 정책 이름: SCALE-IN

CloudWatch 경보: 4.2.3 생성법 확인

 

 

4.2.2 SNS 알림 설정

EC2 > Auto Scaling그룹 > Auto Scaling 그룹 이름 체크 > 활동 > 알림생성 메뉴로 이동합니다.

Scale Out과 Scale In에 대한 알림 설정 입니다.

아래 캡처 화면을 참고하여 SCALE-OUT 알림 생성을 진행합니다.

 

 

아래 캡처 화면을 참고하여 SCALE-IN 알림 생성을 진행합니다.

 

 

4.2.3 Auto Scaling - Cloud Watch 경보 생성

CloudWatch > 경보 > 경보 생성 > 지표선택 메뉴로 이동합니다.

CPU검색 후 Auto Scaling 그룹별 선택, CPUUtiliztion 선택합니다.

 

 

임계값 지정 후 다음클릭 합니다.

 

 

 

SNS알림은 기존에 설정해 두었던 SCALE-OUT으로 설정합니다.

 

 

이름 및 설명 추가 후 생성

경보이름: 임의 값 지정

 

 

Scale in에 대한 경보도 설정합니다.

임계값: ≥30

 

 

4.2.4 스케일아웃

인스턴스에 부하를 주어 Scale out 되는 것을 확인 합니다.

아래의 명령어를 통해 cpu 사용량을 늘릴 수 있습니다.

 

yes > /dev/null &

 

 

 

정책에 설정해준 용량에 따라 Scale Out, 인스턴스 개수가 늘어나는 것을 확인할 수 있습니다.

 

 

CloudWatch 상태 또한 경보 상태로 변경이 된 것을 확인할 수 있습니다.

 

 

4.2.5 스케일인

Scale-in 테스트를 위해 실행시켰던 yes 프로세스를 종료 후 Scale-in이 되는지 확인합니다.

 

 

CPU사용률이 줄어들자 최소용량인 2로 Scale-in이 되는 것을 확인할 수 있습니다.

 

 

반응형

'AWS' 카테고리의 다른 글

[AWS] Control Tower란?  (0) 2023.11.13
[AWS] Control Tower AWS Marketplace Solutions  (0) 2023.11.11
[AWS] Transit Gateway 구성 가이드  (0) 2023.11.03
[AWS] IAM 계정 생성  (0) 2023.09.05
[AWS] GWLB 구성 가이드 with Terraform(2)  (0) 2023.08.31