시작 전
- 이전 포스팅 참고 : ALB 만들고 EC2와 연결하여 확인하기 [Auto Scaling 자동 동기화-1]
- 목적 : AutoSacling을 통해 사용자의 수요에 따른 탄력적인 인스턴스환경을 구성한다.
- 이 포스팅은 Windows10, AWS에서 기능 확인을 위한 최소한의 환경만 구성하였다.
Auto Scaling
Auto Scaling 시작 구성 생성
- EC2 → 시작 구성 → 시작 구성 생성에서 아래 사진과 같이 설정한다.
Auto Scaling Group 생성
- EC2 → Auto Scaling 그룹 → Auto Scaling 그룹 생성
- 이름과 시작구성을 선택 ( 초기 시작템플릿 설정 우측에 시작 구성으로 전환 버튼이 있다.)
- VPC 및 서브넷 설정
- 일반적으로 2개이상의 서브넷을 지정하여 AutoScalingGroup을 생성한다.
- [간단하게] ALB 만들고 EC2와 연결하여 확인하기에서 생성한 ALB를 연결한다.
- 그룹 크기 및 조정 정책 설정
- 원하는 용량 : 시작할 때의 인스턴스 개수 (초기에 인스턴스 2개를 생성한다.)
최소 용량 : 최소한으로 유지할 인스턴스 개수 (2개 까지만 Scale-In된다.)
최대 용량 : 최대한으로 유지할 인스턴스 개수 (4개 까지만 Scale-Out된다.)
- 조정 정책은 간단하게 Scale Out을 확인하기 위해 위와 같이 설정했다. ( CPU에 작은 부하만 일어나도 Scale Out이 일어나도록 설정함)
- 원하는 용량 : 시작할 때의 인스턴스 개수 (초기에 인스턴스 2개를 생성한다.)
- 태그를 추가해주어 AutoScaling을 통해 생성되는 인스턴스들에게 공통된 태그를 부여한다. (중요)
- 설정을 검토한 후 그룹을 생성하면 Auto Scaling을 통해 EC2 인스턴스가 실행된다.
테스트
간단한 테스트
- 인스턴스 삭제해보기
- AZ-c에 생성된 인스턴스를 삭제한다.
- 최소 용량을 맞추기 위해 새로운 인스턴스가 자동으로 실행된다.
- 인스턴스 삭제해보기
Jmeter를 사용한 Scale In / Out 테스트
- Java 설치 - Jmeter를 위한 필수 소프트웨어
- 여기를 눌러 다운로드 페이지로 이동후 파일 다운로드
- 다운로드 받은 파일을 실행하여 설치
- Jmeter를 설치한다.
- 여기를 눌러 다운로드 페이지로 이동후 파일 다운로드
- 압축을 풀고 폴더 내부의 jmeter.bat 파일을 실행한다.
- 아래 사진과 같이 CMD와 함께 Jmeter가 실행된다.
- Test Plan 우클릭 → Add → Threads → Threads Group을 클릭하여 Thread Group 생성
- Thread Group 우클릭 → Add → Config Element → HTTP Request를 클릭하여 HTTP Request 생성
- Thread Group의 Thread를 설정해준다.
- HTTP Request Defaults에 ALB의 DNS주소, Port를 입력 후 상단의 시작 버튼을 클릭 (http://를 DNS앞에 붙여주면 오류없이 잘 실행된다.)
- 테스트 전 후의 ALB를 모니터링 한다.
- 오전 10:54개의 인스턴스가 추가된 것을 확인
- 부하 테스트가 끝난 후 다시 CPU 사용률이 안정적으로 변한것을 확인
- 약 5~10분 후 인스턴스가 더이상 4개를 유지할 필요가 없다고 판단하여 Scale-In 된다.
- Java 설치 - Jmeter를 위한 필수 소프트웨어
결론
- Auto Scaling을 통해 탄력적으로 증감하는 서버 환경을 구성할 수 있다.
Uploaded by Notion2Tistory v1.1.0