- 설정한 조건(특정 자원 사용량 : CPU, Memory)에 따라 EC2 Instance의 수를 시작 템플릿을 기반으로 Scaleout(In)
관리대장 작성
- VPC
- Subnet
- PUB-2A (10.17.1.0/24)
- PUB-2C (10.17.11.0/24)
- IGW
- Routing table
- RT-PUB
- Routing : 0.0.0.0/0 => IGW-00
- Subnet : PUB-2A, PUB-2C (명시적에 추가)
- Security group
- ALB-SG (22, 80, 443, ICMP)
- WEB-SG (22, 80, 443, ICMP)
(1) VPC

(2) Subnet


(3) IGW


(4) Routing table




(5) Security group


(6) EC2 Instance 시작 템플릿 생성
#!/bin/bash
sudo dnf update -y
sudo dnf install -y nginx stress
echo 'location / { return 200 "Served by: $hostname\n"; add_header Content-Type text/plain; }' | sudo tee /etc/nginx/default.d/location.conf
sudo systemctl restart nginx


- 기존 보안 그룹에서 WEB-SG를 선택한다.
- 서브넷은 PUB-2A를 선택한다.
- 가용영역은 2a 부분인 az1을 선택한다.

- 아래로 내려서 자동화하기 위해 고급 세부 정보 > 사용자 데이터를 입력한다.

- (주의) 고급 네트워크 구성에서 퍼블릭 IP 자동 할당 해야 스트레스 상태를 확인할 수 있다.

(7) Load balancer
- Application load balancer를 사용한다.

- 네트워크 매핑에서 VPC를 적용한 후, 사용 영역 및 서브넷을 설정한다.

- 보안 그룹은 ALB 적용할려고 만들어 놓은 ALB-SG를 사용한다.


- 대상 그룹 생성을 해준다.
- 중간에 설정하는 과정이 있는데, 아직 띄운 인스턴스는 없어서 넘어가준다.


- 대상 그룹에 ALB-TG가 생긴 것을 볼 수 있다.

(8) Auto scaling


- 오토 스케일링 이름을 작성
- 시작 템플릿 Web-Template를 선택해준다.

- 다음으로 넘어가면, 네트워크도 설정할 수 있다.
- VPC 선택하고, 가용 영역은 PUB-2A, PUB-2C 둘 다 선택하였다.

- 다음으로 넘어가면 다른 서비스와 통합에서 로드 밸런서와 묶을 수 있다.
- 기존 로드 밸런서에 연결을 선택한다.
- 아래에 보면 ALB-TG를 선택하였다.(위에서 만든 것)

- 다음으로 넘어가면, 그룹 크기 및 크기 조정 구성을 설정할 수 있다.
- 기본으로 놓고 넘어갔다. (오토스케일링 생성 완료)


- 인스턴스 관리 부분 가면 시작되었을 때 인스턴스 목록을 볼 수 있다.
- 모니터링도 볼 수 있다.


- EC2>인스턴스에 들어가보면 하나 자동으로 만들어져 있을 것이다.

- ASG-Web 오토스케일링에서도 인스턴스 떠 있는 것을 확인한다.

- ASG-Web에서 Automatic scaling을 부분에 들어가서 "동적 크기 조정 정책 생성"을 누른다.

- 대상 추적 크기 조정을 선택한다.
- 이름 및 옵션을 설정한다.


- (상황) 시작 템플릿 부분에서 퍼블릭IP를 설정하지 않으면 외부에서 들어갈 수 없다.
- 시작 템플릿을 만들면 Latest가 생겨 있을 것이다.

- 기존꺼를 종료 시켜서 Terminating 되었고, 새로운 것이 만들어져서 InService가 되었다.

(9) Stress test

- Private key 사용해서 접근한다. (만약 여기서 안되면 시작 템플릿 수정해야한다.)

- Latest를 설정해놨기 때문에 시작 템플릿의 버전이 바꼈으면 자동 반영된다.


# 스트레스
sudo stress --cpu 2 --timeout 300
# 사용량 순서대로 확인
top





- CPU 사용량 99%되도록 만들어보니, 인스턴스가 늘어났다.

- 로드 밸런서 부분에 "리소스 맵"을 확인해보면, 적용된 정책, 대상 그룹, 대상에 대한 정보를 확인할 수 있다.

- 로드밸런서에 있는 DNS를 주소창에 입력해서 어떤 값이 나오는지 확인한다.

curl 10.17.11.32

- 부하가 줄어들면 자동으로 인스턴스가 종료된다.


- 종료 순서 : 인스턴스 삭제 > AutoScaling 삭제(동적 정책 삭제 후 삭제, 인스턴스관리에서 분리) > 로드밸런서 삭제> 대상그룹 삭제 > ...
