인프라

Auto Scaling Group 및 Scaling Policy 구성

김도리개발자 2023. 3. 13. 00:08
  • Launch Template과 Application Load Balancer로 Auto Scaling Group을 만들어보자

EC2 > Auto Scaling 그룹 메뉴 선택 후 Auto Scaling 그룹 생성 버튼 클릭
이름을 입력한 뒤 시작 템플릿을 선택하여 다음 버튼 클릭

  • Launch Template과 Launch Configuration 두가지로 고를 수 있다.

시작 템플릿으로 전에 만들었던 Lauch Template 선택하면 설정했던 값들이 보여진다.

  • 버전 : 템플릿에서 변경사항이 발생 했을 때 새로운 버전을 만들 수 있음

vpc와 가용영역 및 subnet은 위에 보이는 것 처럼 선택해주고, 인스턴스 유형 요구 사항은 이전에 만들어두었던 Lauch Template을 그대로 사용할거라 다음 버튼 누르면 된다.

  • Launch Template을 재정의해서 커스텀으로 인스턴스의 속성을 지정하거나 수동으로 인스턴스의 유형을 추가할 수 있다.
  • Auto Scaling을 통해 생성되는 인스턴스 타입이나 종류를 더 상세하고 유연하게 설정할 수 있다.

시작 템플릿으로 재정의 둘러보기

  • 인스턴스 속성 지정 : 인스턴스 속성을 기준으로 인스턴스의 CPU와 메모리 요구사항을 설정하여 인스턴스를 설정하는 옵션
  • 수동으로 인스턴스 유형 추가 : 직접 인스턴스의 타입을 선택하여 인스턴스를 생성하게 해주는 옵션 

  • 인스턴스 구매 옵션 : 인스턴스가 생성될 때 온디맨드와 스팟의 비중을 선택해주기 

  • Auto Scaling으로 생성되는 인스턴스들을 Load Balancer와 연결하여 트래픽을 분산시켜 안정성과 확장성을 가져갈 수 있다.

기존에 만들어두었던 asg용 로드 밸런서를 선택한다.
상태 확인 유예 기간의 초수 줄이고, 모니터링 체크 on 후 다음 버튼 클릭

  • EC2 Auto Scaling은 상태 확인에 실패한 인스턴스를 자동으로 교체한다.
  • ELB : Auto Scaling Group에 연결된 Load Balancer의 상태도 확인할 수 있다.

  • Group Size : Auto Scaling Group의 인스턴스 용량을 설정하는 중요한 옵션
    • 인스턴스를 몇개까지 확장/축소할 것인지 설정
    • 원하는 용량 : Auto Scaling Group이 Tracking Policy나 EC2 인스턴스 상태에 따라 활성화되기를 원하는 인스턴스의 수
      • 특히 처음 Auto Scaling Group이 생성된 시점에서는 초기에 생성되는 인스턴스의 수
    • 최소 용량 : Auto Scaling Group에서 활성화될 수 있는 최소한의 EC2 인스턴스 수
    • 최대 용량 : Auto Scaling Group에서 활성화될 수 있는 최대한의 EC2 인스턴스 수

  • Scaling Polity (크기 조정 정책) : Auto Scaling이 작동하게 되는 기준
    • 이 정책에 따라 인스턴스가 scale out/in(줄어들거나 늘어나거나) 되기도 함
  • 지표 유형 : Auto Scaling을 작동하게 하는 지표를 정할 수 있음
  • 인스턴스 요구 사항 : 지표에 포함되기 전의 시간

  • 인스턴스 축소 보호 : 지표 유형이 대상 값 아래로 내려가서 scale in이 될 때 Auto Scaling으로 생성된 EC2 인스턴스가 삭제되지 않도록 보호될 것인지 설정하는 옵션

값들 입력 후 다음 버튼 클릭
별도로 설정하지 않고 다음 버튼 클릭

  • Auto Scaling Group에서 이벤트가 발생할 때 SNS(Simple Notification Service)를 통해 알림을 받을 것인지 설정하는 것

키 밸류 입력 후 다음 버튼 클릭

  • 새 인스턴스에 태그 지정 : Auto Scaling을 통해 생성되는 EC2 인스턴스는 지정한 태그를 가지게 된다.

설정한 내용들을 마지막 검토 후 Auto Scaling 그룹 생성 버튼 클릭
생성 완료

  • Auto Scaling 그룹이 생성되었다. = 인스턴스 2개가 시작된다.

 

  • 생성된 Auto Scaling Group의 세부 정보를 확인해보자

활동 탭을 클릭한다.

  • "changing the desired capacity from 0 to 2." : 사용자가 Auto Scaling Group을 생성하였고, desired capacity를 0에서 2로 변경하겠다.
  • "instance was started in response to a difference between desired and actual capacity," : 결과적으로 desired capacity와 실제 capacity에 차이가 있기 때문에 인스턴스가 시작되었다.
  • Auto Scaling Group을 생성하고 그와 동시에 desired capacity에 따라 EC2 인스턴스 2개가 시작 되었다는 것을 작업 기록을 통해 확인해볼 수 있다.

 

  • 인스턴스가 실제로 시작되었는지 확인해보자

EC2 > 인스턴스에서 확인해보기

  • asg-ec2라는 태그를 가진 EC2 인스턴스가 새로 만들어진 것을 확인해볼 수 있다.
  • AZ도 2c, 2a에 각각 설정되어 있는 것으로 확인된다.

 

  • Auto Scaling Group에 연결한 Application Load Balancer의 Target Group을 살펴보자

타겟을 살펴본다.

  • 이 타겟 그룹을 생성할 때 별도로 EC2 인스턴스를 타겟으로 등록하지 않았는데 Auto Scaling Group을 통해 새로 생성된 EC2 인스턴스 2개가 이 타겟 그룹에 자동으로 등록이 되어있는 것으로 볼 수 있다.

 

  • Load Balancer 메뉴에서 DNS 네임을 복사하여 웹사이트로 띄워보자

  • 기존에 만들었던 웹페이지가 로드된다.

  • 새로고침을 하면 Auto Scaling Group 생성시에 시작된 EC2 인스턴스 2개가 번갈아가며 로드밸런싱 되고 있다는 것을 볼 수 있다.

 

 

다음에는 Auto Scaling Group을 만드는 과정에서 설정한 타겟 설정 Policy에 따라 Auto Scaling이 작동하는 내용을 알아보자

 

https://www.inflearn.com/course/lecture?courseSlug=aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B8%B0%EB%B3%B8&unitId=111953 

 

학습 페이지

 

www.inflearn.com