Auto Scaling이란?
애플리케이션의 수요에 따라 자동으로 리소스를 조정하여 트래픽 변화에 대응하는 서비스.
애플리케이션이나 서비스에 필요한 서버(가상머신)를 자동으로 늘리거나 줄이는 것을 관리해 주는 도구
목표
Auto Scaling으로 웹서버 생성 후 cpu로 부하를 줬을 때 이 변화에 맞춰서 대응할 수 있는지 확인
구축 순서
1. (ALB)대상그룹 생성
2. 로드밸런서 생성
3. 서버 생성
4. 이미지(AMI) 생성
5. 템플릿 생성
6. 오토스케일링 그룹 생성
7. 테스트
1. 대상그룹 생성
웹서버를 운영 할 것이므로 80번 포트에 대한 대상그룹 생성
따로 서버는 선택하지 않고 대상그룹만 생성
2. 로드밸런서(ALB)생성
HTTP 프로토콜을 사용하므로 Application Load Balancer 생성
외부에서 접근이 돼야 하니 인터넷 경계로 선택
HTTP:80 포트로 들어온 요청을 방금 생성한 대상그룹으로 전달
3. 서버 생성
서버 생성 후 내부에 nginx 서비스까지 설치하여 웹 서버 확인(어느 웹 서비스든 상관없다)
4. 이미지(AMI) 생성
여기서 생성한 AMI에는 해당 서버에서 설치 & 수정한 모든 내용이 저장되어 있다.
즉 nginx를 생성 후 이미지를 생성하면, 해당 이미지로 재생성 한 서버에도 nginx서비스가 설치되어 있다.
5. 템플릿 생성
생성한 AMI 선택
인스턴스 유형, 키페어, 보안그룹 자신의 환경에 맞게 설정
6. 오토스케일링 그룹 생성
위에서 생성한 템플릿 선택
네트워크 선택
기존 로드밸런서에 연결
상태 확인 유예 기간은 처음에는 300초인데 너무 길기 때문에 60초 정도로 줄이자
- 원하는 용량: ASG가 생성될 때, 활성화시킬 인스턴스의 개수
- 원하는 최소 용량: 사용량이 없을 때, 최소한으로 활성화시킬 인스턴스의 개수
- 원하는 최대 용량: 사용량이 많을 때, 최대한으로 활성화시킬 인스턴스의 개수
본인이 원하는 크기로 설정하자. 이 글에서는 최소 2개, 최대 4개로 설정하였다.
CPU 값에 따라서 확장/축소를 반복하게 만들 목적이므로 "대상 추적 크기 조정 정책" 활성화
지표 유형을 평균 CPU 사용률, 값은 70%로 설정
내 서버의 평균 CPU 값이(2대면 2대의 평균) 70% 이상일 때 AutoScaling으로 서버가 늘어난다.
알람 추가는 선택사항
7. 테스트
dhkang-test 서버 2대가 생성되었다(원하는 용량을 2로 설정)
첫 번째에 보이는 dhkang-test-original 서버는 처음에 nginx설치 후 이미지를 생성한 서버이며 굳이 삭제를 하지 않았기 때문에 보이는 것이며 해당 서버는 autoscalig으로 생성된 서버가 아니다.
대상그룹 - 대상 확인
포트를 80으로 설정했으니 보안그룹에서 0.0.0.0/0 80 포트를 허용하면 상태 확인이 Healthy가 나온다.
만약 이 규칙이 뚫려있지 않다면 unhealthy라고 나온다.
부하 테스트를 위해 stress 서비스를 설치 후 각 서버에서 stress 명령어로 cpu 부하를 주었다.
cpu부하로 인해 서버가 생성된 것을 확인할 수 있다. (최대로 설정한 크기인 4대까지)
ALB 대상그룹에도 늘어난 것 확인
로드밸런서 DNS주소로 접속해도 잘 나온다.
'AWS > Service' 카테고리의 다른 글
[AWS] EFS (0) | 2024.04.25 |
---|---|
[AWS] EBS (0) | 2024.04.24 |
[AWS] VPN (with GCP) (0) | 2023.05.03 |
[AWS] Athena (0) | 2023.05.02 |
[AWS] AWS Backup (0) | 2023.04.30 |