본문 바로가기
서버/AWS

[AWS]8. EC2 Auto Scaling 실습(ELB에 적용) (2)

by jamong1014 2022. 6. 12.
반응형
 

AWS Auto Scaling

AWS Auto Scaling은 애플리케이션을 모니터링하고 용량을 자동으로 조정하여, 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지합니다. AWS Auto Scaling을 사용하면 몇 분 만에 손쉽게 여러

aws.amazon.com

 

EC2 Auto Scaling 실습 단계


Auto Scaling 그룹 생성

 

Auto Scaling 카테고리에 'Auto Scaling 그룹' 에서 'Auto Scaling 그룹 생성'을 눌러줍시다.

 

 

Auto Scaling 그룹 이름 정하고 시작 템플릿을 생성 해줍시다.

 

여기서 '시작 템플릿' 이라는 것은 EC2 인스턴스가 자동으로 생성하는데 있어서 어떤 형식의 인스턴스를 생성할 것이냐를 정해주는 것입니다.

 

 

시작 템플리 이름(필수) 작성

'EC2 Auto Scaling에 사용할 수 있는 템플릿을 설정하는데 도움이 되는 지침 제공' 체크 활성화

 

 

AMI를 설정하는 부분인데 인스턴스 생성할 때처럼 똑같이 프리티어로 원하는 OS 지정해주시거나 아니면 저처럼 사전에 만들어놓은 AMI으로 설정 하셔도 됩니다.

(이미 만들어놓은 AMI으로 지정한 것은 일일히 Apache, SSH 등을 생성할 때마다 설치 하지 않기 위함입니다.)

 

다른 방식으로는 '사용자 데이터' 부분을 이용 할 수 있습니다.

(밑에서 확인)

 

 

인스턴스 유형과 키 페어도 마찬가지로 EC2 인스턴스 생성 할 때와 똑같이 하시면 됩니다.

'키 페어 이름' 을 지정하지 않은 이유는 키 페어 없이 브라우저 기반으로 SSH 터널링을 바로 이용할 수 있는 방법을 사용할겁니다. (추후 포스팅을 통해 다루겠습니다.)

 

 

네트워크 설정은 보안 그룹 HTTP 80 포트만 허용된 보안 그룹을 사용하겠습니다. (원하시는 방식대로 설정)

스토리지 구성도 원하시는 용량으로 설정

 

 

마지막으로 고급 설정에 '사용자 데이터' 를 통해 새 인스턴스를 생성하고 어떤 명령을 내릴것인지 설정할 수 있습니다.

이 설정을 통해 굳이 미리 만들어진 AMI가 아니어도 원하는 프로세스대로 설정 할 수가 있습니다.

(선택 사항입니다.)

 

'시작 템플릿' 생성 끝

 

다시 Auto Scaling 그룹 구성으로 돌아옵니다.

 

방금 만든 '시작 템플릿' 선택 후 다음

 

 

네트워크 부분에 가용 영역 및 서브넷을 선택할건데 이 부분은 어떤 가용 영역에 할당을 해줄 것인가를 선택하는겁니다.

굳이 모두 선택 안할 이유가 없기 때문에 4개의 가용 영역 모두 선택해줍시다.

 

 

기존 로드밸런서에 연결 - 기존 로드 밸런서 대상 그룹 선택

 

로드 밸런서 ELB 생성하는 방법은 전 포스팅을 참고해주시기 바랍니다.

https://jamong1014.tistory.com/140

 

[AWS]6. ELB(Elastic Load Balancer) 개념 및 실습

웹 서버 로드 밸런싱 | 서버 로드 밸런싱 | Amazon Web Services Application Load Balancer Gateway Load Balancer Network Load Balancer aws.amazon.com ELB(Elastic Load Balancer)란 들어오는 애플리케이션..

jamong1014.tistory.com

 

 

'ELB 체크 활성화'

이 기능은 EC2 인스턴스가 정상작동 되고 있고 인스턴스안에서 구동 되고 있는 웹 서버가 중지가 됐을 때 ELB로 Health Check를 통해서 용량 조정을 하는 기능입니다.

 

만약 ELB를 체크 하지 않았다면 EC2 기준으로 그냥 웹 서버 작동이 멈추어도 인스터스만 잘 돌아간다면 용량 조정을 하지 않는것이죠.

 

 

 

원하는 용량, 최소 용량, 최대 용량을 지정해주겠습니다.

모두 2로 하고 2개의 인스턴스 서버에서 줄거나 늘려지면 2개로 계속 유지 되게 하겠습니다.

 

이제 끝으로 나머지는 필수 선택 사항이 아니므로 넘어가겠습니다.

계속 '다음' 하셔서 'Auto Scaling 그룹 생성' 해주시면 됩니다.

 

Auto Scaling 그룹 생성 된 모습


EC2 기준 인스턴스 용량 조정 확인

 

인스턴스 목록을 보시면 자동으로 2개의 인스턴스가 새로 생긴것을 확인 할 수 있습니다.

왜냐하면 제가 설정한 인스턴스 용량은 최소 용량, 최대 용량 모두 2개이기 때문에 2개로 유지가 되어야 하기 때문이죠.

 

그럼 한번 1개의 인스턴스를 삭제 해 보겠습니다.

 

 

 종료 중..

 

 

종료가 이루어지고 새로운 인스턴스가 자동으로 한개 생성됩니다.

 

이로써 EC2 인스턴스는 1개로 줄이든 3개로 늘리든 무조건 2개로 유지됩니다.

(용량 수정은 Auto Scaling 그룹 편집을 통해 수정 할 수 있습니다.)

수정 할 때는 무조건 버전을 Latest로 하여서 수정하시기 바랍니다.

최신 버전을 계속 유지함으로써 수정된 내용이 적용됩니다.


ELB 기준 인스턴스 용량 조정 확인

 

이번엔 하나의 인스턴스에서 작동중인 웹 서버를 중단시켜보도록 하겠습니다.

 

인스턴스 SSH로 접속해 'sudo service apache2 stop' 으로 중단 시켜보겠습니다.

 

 

웹 서버가 중단 되자마다 ELB 측에서 Health Check를 통해 웹 서버가 중단된걸 확인하고 새로운 인스턴스를 올립니다.

중지된 서버는 기다리면 알아서 종료되고 삭제됩니다.

 

인스턴스가 삭제되고 새로 생성 될 때마다 로드 밸런서 대상 그룹에 자동적으로 포함되고 ELB가 거기에 맞춰서 작동합니다.

 

Auto Scaling으로 생성된 인스턴스가 자동으로 로드밸런서 대상 그룹에 포함된 모습

 

인스턴스 용량이 어떻게 되든 Auto Scaling에 의해 자동으로 생성된 인스턴스는 로드밸런서에  Auto Scaling을 적용시켜줬기 때문에  알아서 대상 그룹에 포함됩니다.

 

 

 

반응형