지난 시간에 Route53을 활용하여 블로그를 만들었다.
그것을 활용하여 이번 시간엔 Auto Scaling을 통해 scale out, scale in을 해보겠다.
1. 인스턴스 이미지 생성
시작 구성 생성할 때 필요한 인스턴스의 이미지를 생성한다.
이미지 이름 : MY-AMI
재부팅 안 함 : 활성화
2. ALB 생성
ALB 이름 : MY-ALB
ALB 보안그룹 : SG-ALB (인바운드 규칙 : HTTP, 위치 무관)
대상 그룹 : TG-ASG (비어있음)
3. 시작 구성 생성
시작 구성 이름 : MY-LC
4. Auto Scaling Group 생성
Auto Scaling 그룹 이름 : MY-ASG
시작 구성으로 전환
기본 VPC
2개 가용 영역 선택
내가 만들어둔 ALB 선택
대상 그룹 TG-ASG 선택
더 건들지 말고 다음 클릭
원하는 용량 : 2
최소 용량 : 2
최대 용량 : 2
조정 정책 : 없음 (추후에 추가할 거임)
SNS 주제로 SCALE-OUT, SCALE-IN 생성
MY-ASG라는 Auto Scaling 그룹이 생성되었다.
EC2 인스턴스에 2개의 인스턴스가 새로 생성된 것을 확인할 수 있다.
각각 WEB01, WEB02로 이름을 지어준다.
대상그룹에 새로 추가된 인스턴스들이 등록된 것을 볼 수 있다.
이제 MY-ASG에 정책 추가를 하여 scale out, scale in을 해보도록 한다.
정책 유형 : 단계 조정
조정 정책 이름 : SCALE-OUT
CloudWatch 경보가 생성되지 않았으므로 경보 생성 링크를 눌러준다.
지표 선택을 누른다.
cpu를 검색하고
EC2 > Auto Scaling 그룹별을 클릭한다.
지표 이름 : CPUUtilization 선택
70 <= 임계값이 되도록 선택한다.
SNS 주제를 SCALE-OUT으로 선택한다.
경보 이름 : SCALE-OUT-ALERT로 하고 생성한다.
CloudWatch 경보를 생성하고 만들어진 SCALE-OUT-ALERT를 선택한다.
작업 수행에 1개씩 추가되도록 조정하고 생성한다.
SCALE-IN도 마찬가지로 생성해준다. (작업 수행 : 1개씩 제거, 30 >= 임계값)
만들어진 Auto Scaling Group의 조정 정책이다.
이제 인스턴스에 인위적인 과부하를 줘서 scale out, scale in을 해보겠다.
Auto Scaling 그룹에 의해 만들어진 WEB01, WEB02에 SSH로 접속한다.
5. Scale out
WEB01과 WEB02의 CPU 사용률은 0%이다.
이제 yes > /dev/null & 을 입력해서 cpu 사용량을 과부하시켜보겠다.
CPU 사용률이 급격히 높아진 것을 볼 수 있다. 이제 몇 분 정도 기다리면
SCALE OUT 조정 정책에 의해 인스턴스 수가 늘어나는 것을 볼 수 있다.
9분 정도 지나고 보니 경보 상태가 되었고 인스턴스가 하나 늘어난 것을 확인할 수 있다.
새로 만들어진 인스턴스 이름을 WEB03으로 하고 최대 용량 4가 될 때까지 좀 더 기다린다.
몇 분 더 지나고 보니 인스턴스가 하나 더 늘었으며 SCALE OUT 지표는 더 이상 오르지 않는다.
성공적으로 SCALE OUT이 성공하였다.
6. Scale in
이제 Scale in을 해본다.
ssh에 접속한 인스턴스들에게 했던 yes 프로세스를 kill 해준다.
cpu 사용률이 줄어든 것을 볼 수 있다. (다른 인스턴스도 똑같은 작업함)
이제 scale in이 되는지 기다려본다.
CloudWatch 지표 그래프에서 cpu사용률이 점점 줄어드는 것을 확인할 수 있다.
임계값이 30 밑으로 떨어지니 경보 상태가 되었고
원하는 용량이 3으로 떨어졌다.
제일 처음 만들어졌던 WEB01이 먼저 삭제되는 것을 볼 수 있다.
최소 용량이 2 될 때까지 scale in이 되는 것을 볼 수 있다.
성공적으로 Scale out, Scale in이 되었다.
+ 추가해야할 것
Auto Scaling Group에 의해 생성된 인스턴스들이 기존에 지워졌었던 인스턴스의 ip와 다르기때문에
사용자들이 접속할 때 접속이 안된다. 그래서 Route53에서 내가 만든 도메인에서 레코드 추가하여 ALB에 대한 엔드포인트 추가해줘야한다. 그래야 ALB에 등록된 대상그룹에 있는 인스턴스들이 blog.studyroom.shop으로 접속할 수 있게된다.
'AWS' 카테고리의 다른 글
[AWS 실습] CloudFront를 이용하여 S3 콘텐츠 배포하기 (0) | 2021.01.10 |
---|---|
[AWS 실습] EFS(Elastic File System) 사용해보기 (1) | 2021.01.07 |
[AWS 실습] Route53을 활용하여 블로그 만들기 (0) | 2021.01.05 |
[AWS 실습] ALB를 이용하여 컨텐츠 관리하기 (0) | 2021.01.04 |
[AWS 실습] 리전간 VPC 피어링 (0) | 2021.01.03 |