인프라
Auto Scaling Group 및 Scaling Policy 구성
김도리개발자
2023. 3. 13. 00:08
- Launch Template과 Application Load Balancer로 Auto Scaling Group을 만들어보자
- Launch Template과 Launch Configuration 두가지로 고를 수 있다.
- 버전 : 템플릿에서 변경사항이 발생 했을 때 새로운 버전을 만들 수 있음
- Launch Template을 재정의해서 커스텀으로 인스턴스의 속성을 지정하거나 수동으로 인스턴스의 유형을 추가할 수 있다.
- Auto Scaling을 통해 생성되는 인스턴스 타입이나 종류를 더 상세하고 유연하게 설정할 수 있다.
- 인스턴스 속성 지정 : 인스턴스 속성을 기준으로 인스턴스의 CPU와 메모리 요구사항을 설정하여 인스턴스를 설정하는 옵션
- 수동으로 인스턴스 유형 추가 : 직접 인스턴스의 타입을 선택하여 인스턴스를 생성하게 해주는 옵션
- 인스턴스 구매 옵션 : 인스턴스가 생성될 때 온디맨드와 스팟의 비중을 선택해주기
- Auto Scaling으로 생성되는 인스턴스들을 Load Balancer와 연결하여 트래픽을 분산시켜 안정성과 확장성을 가져갈 수 있다.
- 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 그룹이 생성되었다. = 인스턴스 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개가 시작 되었다는 것을 작업 기록을 통해 확인해볼 수 있다.
- 인스턴스가 실제로 시작되었는지 확인해보자
- 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이 작동하는 내용을 알아보자