AWS Auto Scaling

2019. 4. 12. 16:57

이번에는 저번 포스팅에 이어서 aws에서 빼놓을 수 없는 기능 auto scaling을 구성해보겠습니다~

마찬가지로 구성은 위의 그림을 참고해주세요

EC2의 카테고리에 보면 Auto Scaling이 있는데요

여기에는 'Launch configurations(시작구성)'과 'Auto scaling Groups' 항목이 있습니다.

간략히 설명하자면, 시작구성은 Auto Scaling 그룹에서 EC2 인스턴스를 시작하는 데 사용하는 인스턴스 구성 템플릿입니다.

시작구성을 만들 때 인스턴스에 대한 정보를 지정하고, 시작하는 방법은 EC2인스턴스를 만드는 것과 유사합니다.

Auto Scaling 그룹은 유사한 특성을 공유하고

인스턴스 조정 및 관리 목적의 논리적 그룹으로 취급되는 EC2인스턴스의 모음이라고 보면 되겠습니다.

 

 

 

 

 

 

그럼 먼저 시작구성부터 시작해보겠습니다.

'Launch Configurations'에서 create을 클릭합니다.

일반적으로 우리가 EC2생성할 때의 과정과 유사한 화면이 나타납니다.

 

t2.micro를 선택했습니다.선택 후 configure details를 눌러주세요

위와 같이 설정을 해줍니다. 저는 private 단의 인스턴스로 auto scaling을 구성하려고 하기 때문에 인스턴스에 퍼블릭 IP를 할당하지

않는 것으로 설정했습니다. (사실 세번째꺼를 선택해도 되지만, 어쨌든 저는 default VPC를 사용하지 않아서 첫 번째 것을 선택했습니당 ㅎㅎ)

 

그 뒤의 storage는 기본 값으로 두고, security group을 설정합니다.

security group은 이전에 private 인스턴스를 만들 때 사용했던 보안그룹을 똑같이 적용했습니다.

이제 생성을 마치면 됩니다!

이런식으로 'launch configuration'이 완료되었습니다:)

 

 

 

 

 

 

이제 본격적으로 Auto Scaling group을 만들어 보겠습니당. 카테고리에서 'Auto Scaling Groups'를 선택해주세요

'Create Auto Scaling group'을 클릭합니다.

'launch configuration'은 이전 과정에서 생성한 'private-autoscaling'을 선택해주었습니다.

 

Auto Scaling Group이름을 적어줍니다.

여기서 Group Size는 그룹에서 항상 보유해야 할 인스턴스 개수로, 목표 용량이라고 합니다.

저는 구성도처럼 두 개의 az에서 auto scaling을 구성할 것이기 때문에 Group Size는 '2'로 지정해주었습니다.

(각각의 az에 1개의 인스턴스를 항상 보유하고 있을 것이므로, '2'를 적었습니다. 단일 az라면 '1'로 해도 무방하겠져)

 

 

 

다음으로 'Configure scaling policies'에서 위의 화면대로 하나씩 설정해줍니다.

조정정책을 사용하여 이 그룹의 용량을 조정합니다!

('단계 또는 단순 조정 정책을 사용하여 Auto scaling 그룹 조정'을 클릭하면 위와 같이 나타나요)

경보 임계값 위반 연속기간은 1분으로 설정해두었습니다(test환경이니까효)

저는 CPU Utilization 임계값을 40%로 설정했습니다. 40%이상이면 2개씩 인스턴스가 추가되도록 설정했습니다.

 

 

감소 정책은 증가 정책과 반대로 설정하면 됩니다.

 

 

알림 설정은 옵션인데, 저는 확인을 위해서 설정해주었습니다.

이를 설정하면 메일로 인스턴스가 시작되거나 종료될 때 메일로 알림을 받을 수 있습니다.

이제 마지막으로 생성을 누르면 생성이 됩니다!

 

이렇게 Auto Scaling group이 성공적으로 생성되었네요!

하지만 여기서 끝이 아닙니다 ㅎㅂㅎ

구성도처럼 전 포스팅에서 만든 Classic Load Balancer와 방금 생성한 Auto scaling group을 연결시킬겁니다!

 

 

하단에 보면 'Classic Load Balancers'부분이 비어있죠? 여기에 전에 만든 로드밸런서를 넣어줄 겁니다.

오른쪽 상단에 edit을 눌러주세요

 

마우스로 클릭하면 생성한 로드밸런서 이름이 나타납니다. 이를 선택하고 저장해주세요!

이런식으로 CLB의 이름이 나타나게 됩니다~

이렇게 해서 Auto Scaling 구성에서 ELB 연결까지 과정이 완료되었습니다!

그럼 제대로 작동하는지 확인을 해볼까요??

 

 

 

 

 

 

확인

 

ELB에 연결되어 있기 때문에 로드 밸런서의 DNS 주소로 해당 사이트가 접속을 해봅니다.

접속한 후에 왼쪽 상단의 'LOAD TEST'를 클릭하면 CPU Load가 100%까지 치솟게 됩니다. 

(시간이 조금 걸릴 수 있습니다) AWS EC2콘솔에서 인스턴스를 확인하면 auto scaling 정책에 따라 인스턴스 2개가 생성되고 있는 모습을 볼 수 있습니다.

 

Auto Scaling group에서도 마찬가지로 인스턴스가 생성중인 것을 확인할 수 있습니다.

 

그리고 생성이 완료되면 위와 같이 'instances' 항목에 인스턴스가 등록된 것을 볼 수 있습니다.

 

ELB에도 자동으로 생성된 인스턴스가 붙게 됩니다!

 

 

 

 

 

 

증가하는 걸 확인했으니 감소하는 것도 확인해봅니다

Load test를 끄고 조금 기다려 봅니다.

 

 

auto scaling groups에서 확인해보면, 두개의 인스턴스가 종료되고 있습니다.

 

terminate가 되고 나면 위 그림처럼 다시 두 개의 인스턴스만 남게 되는 것을 확인 할 수 있습니다.

잘 작동하는 걸 확인할 수 있죠:)

 

 

 

 

 

 

 

이것으로 Auto scaling 구성 및 테스트 과정 포스팅을 마칩니다:-)

 

 

 

 

 

'TECH > AWS' 카테고리의 다른 글

AWS ELB 생성  (0) 2019.04.11
Bastion host on AWS  (0) 2019.04.05

BELATED ARTICLES

more