정환타 개발노트

[AWS 웹서비스 구축] 8. Auto Scaling (With AWS ELB) 본문

Dev-AWS

[AWS 웹서비스 구축] 8. Auto Scaling (With AWS ELB)

JungHwanTa 2020. 1. 19. 20:06

이번에는 부하분산 처리를 하기 위한 AWS 기능 중 하나인 Auto Scaling을 적용할 것이다.

 

Auto Scaling

Auto Scaling은 EC2 인스턴스의 트래픽에 따라 추가적으로 인스턴스를 생성하고 자동으로 삭제하여 최적의 서버환경을 제공하는 서비스이다. 일반적으로 이전에 적용한 ELB와 함께 사용된다.

 

ELB와 함께 사용이 된다면 트래픽이 많아질 경우 자동으로 Auto Scailing 되어 인스턴스가 새로 생겨나게 되고 ELB는 들어오는 트래픽들을분산하여 자동으로 부하분산 처리를 할 수 있다.

 

일단 먼저 EC2의 AMI(Amazon Machine Image)가 필요하다.

 

AMI 생성

1. [서비스] -> [EC2] -> [인스턴스] 에서 Auto scaling을 적용할 인스턴스의 이미지를 생성한다.

인스턴스를 선택해 [작업] -> [이미지] -> [이미지 생성]을 한다.

(이때 ELB가 적용된 인스턴스를 사용한다.)

 

2. 이미지 이름을 입력하여 AMI를 생성한다.

 

Auto Scaling 생성

Auto Scaling 생성을 하기 위해서는 시작 구성을 설정하고 Auto Scaling Group을 생성하는 두가지 과정을 거쳐야한다.

시작 구성 설정에서는 자동으로 생성될 인스턴스에 대한 설정을 적용하고,

Auto Scaling Group 생성에서는 Auto Scaling에 대한 설정을 한다.(시작 인스턴스 갯수, ELB 적용, 생성조건 등)

 

1. [서비스] -> [EC2] -> [AUTO SCALING] -> [Auto Scaling Group]에서 [Auto Scaling Group 생성]을 한다.

 

 

2. 다음으로 AMI를 선택한다. 좌측의 [내 AMI]에서 방금 생성한 AMI를 선택한다.

 

 

3. 생성할 인스턴스 유형을 선택한다.(필자는 t2.micro 선택)

 

4. [세부 정보 구성]에서는 인스턴스 이름을 입력하고 다음으로 넘어간다.

(하단에 [모니터링]을 체크하면 CloudWatch의 Monitorling 기능을 사용할 수 있다.)

[고급 세부 정보]를 열어 새로운 인스턴스가 생성될 때 자동으로 서버를 실행하도록 명령어를 입력한다.


+ 여기서 사용자 생성 VPC를 사용한다면 '모든 인스턴스에 퍼블릭 IP 주소 할당'을 체크하여 새로 생성되는 인스턴스에 public IP를 자동으로 할당해준다.

 

 

5. 스토리지는 기본구성을 적용하고, [보안그룹]은 마스터 EC2 인스턴스와 동일한 보안그룹을 적용해준다.

 

 

6. 마지막으로 키페어를 선택하고 [시작 구성 생성]을 마무리한다.

다음으로 바로 [Auto Scaling Group]으로 넘어가게 된다.

생성할 그룹의 이름을 입력하고, VPC와 서브넷을 선택한다 (서브넷은 웹서버가 동작하는 EC2가 있는 Public 서브넷을 선택한다.)

 

7. [고급 세부 정보] 에서는 이전에 생성한 로드 밸런서를 선택하고 모니터링을 원한다면 CloudWatch 모니터링을 체크한다.

(로드밸런서 생성은 하단의 링크 참고하시면 됩니다.)

2020/01/19 - [Dev-AWS] - [AWS 웹서비스 구축] 7. ELB 생성(Elastic Load Balancer)

 

 

8. 다음으로 Auto Scaling의 조건을 입력한다.

생성될 인스턴스의 조정범위를 1-3으로 입력하고(인스턴스가 최대 3개까지 생성됨)

평균 CPU 사용율이 80프로 이상일때 생성되도록 입력한다.

 

 

9. 다음은 Auto Scaling에 대한 알림을 설정한다. 보낼 대상과 수신 이메일을 입력하고 넘어간다.

 

 

10.  이름 태그를 지정하여 입력한다.

 

 

검토 후 생성을 하게 되면 Auto Scaling 설정이 끝난다. 

 

결과적으로 서버의 트래픽에 따라 Auto Scaling이 적용되어 자동으로 관리를 해준다.

만약 신규로 서비스를 시작하는 스타트업과 같은 회사에서 배포시에 대상 트래픽이 얼마나 될지 모르니 Auto Scaling을 적용한다면 좋은 솔루션이 될 것 같다.

Comments