해당 글은 아래 첨부한 글과 이어집니다.
저번시간에 Auto Scaling 그룹을 생성하면서 대상 추적 크기 조정 정책(확대 정책)을 다음과 같이 생성했었음
대상 추적 크기 조정 정책 생성
- 원하는 최소 용량 : 1
- 원하는 최대 용량 : 2
- 대상 추적 크기 조정 정책
- 대상 값 : 80
- 인스턴스 워밍업 : 30
- 평균 CPU 사용률이 80 이상이 되면 최대 용량으로 지정한 2만큼 인스턴스가 스케일 아웃되도록 생성
- 확대 정책만 생성하려면 축소 비활성화 체크
이번 시간에는 인스턴스에 부하를 줘서 CPU가 80 이상 도달 했을 때, 최대 용량으로 지정한 2만큼 인스턴스가 스케일 아웃되는 것을 확인하고, 다시 특정 임계값을 도달했을 때 인스턴스 최소 용량으로 지정한 1로 줄어드는 것을 확인
EC2 > Auto Scaling 그룹 > Ga-WEB-AS
- 확대 정책만 생성되어 있음을 확인
동적 크기 조정 정책 생성 - 인스턴스 축소 정책
- 정책 유형 : 단순 크기 조정
- 크기 조정 정책 이름 : Ga-WAS-CPU-LOW
- Cloud Watch 경보 생성
CloudWatch 경보 생성
지표 선택
검색에 CPUUtilization 입력 후 EC2 > Auto Scaling 그룹별 선택
Ga-WAS-AS 선택
지표 및 조건 지정
- 기간 : 1분
- 보다 작음 < 임계값
- 30
알림 제거 누르기
- 실습 시 과금이 되는 요소를 최소화하기 위해 알림을 제거함
생성 확인
다시 동적 크기 조정 정책 생성에 돌아와서 Cloud Watch 경보 새로 고침 후 넣어주기
Cloud Watch
Ga-WAS-CPU-LOW 정책(축소 정책) → CPU 임계치가 30 이하면 경보 상태로 바뀌는 것을 확인
- 데이터 부족에서 경보 상태로 바뀌는 데 좀 걸림
- 아직 아무것도 안 했을 때(부하를 주지 않은 상태)는 CPU가 30 이하니까 경보 상태가 떠야 함
- 데이터를 수집하고 그 수집한 데이터가 CPUUtilization < 30 이니까 경보 상태임
- 만약, stress 부하를 줘서 임계치가 30이 넘어간다면 경보가 정상 상태로 바뀜을 확인하면 됨
Stress 패키지 설치
- CPU 80을 넘기기 위해 임의로 stress를 주는 패키지를 설치해 부하 테스트하는 과정
WAS-C
- AutoScaling 그룹을 생성할 때 지정한 시작 템플릿이 가용영역 c에 생성되는 WAS-C이므로 여기에 stress 패키지를 설치해야 함
[root@was-c ~]# amazon-linux-extras install epel
[root@was-c ~]# yum install stress
부하 주기
- 1개의 CPU 코어를 사용하여 (1200초) 20분 동안 스트레스를 발생시키는 것
- 5~10분 뒤 경보 확인해 보기
- 너무 오래 걸리는 거 같으면, 확대 정책에서 CPU 대상 값을 80에서 50으로 낮추고 확인하면 됨
[root@was-c ~]# stress --cpu 1 --timeout 1200
stress: info: [30912] dispatching hogs: 1 cpu, 0 io, 0 vm, 0 hdd
Cloud Watch에서 경보 확인하기
stress 주기 전 인스턴스 5대
확대 정책
- TargetTracking CPUUtilization > 80 : 경보 상태 → 인스턴스가 늘어남
- TargetTracking CPUUtilization < 80 : 정상 상태
인스턴스 WAS-C가 1대에서 2대로 늘어남을 확인
축소 정책
stress 줬던 것을 control + C 해서 중지하고, 10분 정도 뒤에 확인하기
[root@was-c ~]# stress --cpu 1 --timeout 1200
stress: info: [30912] dispatching hogs: 1 cpu, 0 io, 0 vm, 0 hdd
^C
부하를 중지하면 확대 정책은 정상 상태가 되고, 축소 정책은 경보 상태가 됨 → 인스턴스가 줄어듦
- CPUUtilization < 30 경보 상태 → 인스턴스가 줄어듦
- CPUUtilization > 30 정상 상태 → 인스턴스가 확장되고 있는 상태
인스턴스가 줄어듦
경보가 울린다는 것은 어떤 행동을 취함을 의미, 확대하거나 축소하거나
'Project > 3-Tier Architecture' 카테고리의 다른 글
[3-Tier] AWS ACM 인증서 발급 및 https 도메인 접속 테스트 (0) | 2024.03.19 |
---|---|
[3-Tier] 가비아 도메인 신청 후 AWS Route 53 연결 (0) | 2024.03.19 |
[3-Tier] AutoScaling 그룹 생성 및 LoadBalancer 라운드 로빈 테스트 (0) | 2024.03.04 |
[3-Tier] AMI(Amazon Machine Image)생성과 시작 템플릿 만들기 (0) | 2024.03.04 |
[3-Tier] Internal ALB 내부 로드밸런서 생성 (WAS ALB) (0) | 2024.03.01 |