이전에는 운영 서버 인스턴스 내부의 환경을 구축하고 실제 클라이언트의 요청까지 처리하는 법을 배웠다. 이렇게도 운영 서버를 서비스할 수 있지만, 대부분의 운영 환경에서는 한 대의 서버 인스턴스가 아닌 여러 대의 서버 인스턴스로 서비스한다. 이유는 많은 트래픽에 대응하고 서버에 장애가 생겨도 서비스가 안전하게 돌아갈 수 있게 하기 위함이다.
이번 포스팅에서는 늘어난 트래픽을 감당하기 위해서 서버의 수를 늘려 Scale out 하는 다중 서버 환경을 구성해볼 것이다. 또한 단순히 서버의 수를 늘리는 것뿐만 아니라 트래픽에 따라 서버의 수를 자동으로 늘리고 줄이는 Auto Scaling을 구성해 보며 이해를 해볼 것이다.
Auto Scaling Group = 다중 서버 환경을 가능하게 해주는 그룹이다. 이를 통해 인스턴스들의 수를 자동으로 늘리고 줄여준다.
- 비용절감
- 안정적인 서비스를 운영
시작 템플릿 생성 - 인스턴스 생성
Auto Scaling 그룹 생성
Auto Scaling으로 인스턴스 자동 추가 및 제거
CPU 사용률이 80% 넘어가면 인스턴스 하나는 추가하고 80 % 이하로 떨어지면 인스턴스 하나 줄이는 정책을 추가 했었다. 확인을 해보니 자원 사용량에 따른 Auto Scaling 기능이 제대로 동작하고 있는 것을 확인 할 수 있었다.
$ sudo amazon-linux-extras install epel -y
$ sudo yum install stress -y
$ stress --cpu 1 --timeout 600
서버에 접속하고 임의로 cpu의 사용륭을 높이기 위해 stress 애플리케이션을 설치했다. 600초 동안 1개의 cpu 사용량을 최대로 늘려줬다. 이후 cpu 사용률이 다시 정상적으로 줄어든 후 대기 시간인 300초가 지나면 인스턴스 수가 1대로 줄어드는 것을 확인할 수 있었다.
Auto Scaling 그룹 개념 정리
Auto Scaling 그룹으로 수동으로 처리해야 할 일을 대신해서 처리하는 아주 간단한 프로그램이었다. Auto Scaling 그룹으로 설정되어 있는 템플릿에 있는 내용을 그대로 가져다 쓸 수 있어서 편리했던 것 같다.
'Cloud(AWS)' 카테고리의 다른 글
[AWS] EC2 (0) | 2024.12.20 |
---|---|
[AWS] Elastic 로드 밸런싱을 이용한 서버 트래픽 분산 (0) | 2024.12.16 |
[AWS] 웹 서버 & 웹 애플리케이션 서버 설치 (0) | 2024.12.16 |
[AWS] 웹 애플리케이션 서버 구축 (0) | 2024.12.09 |
[AWS] 인스턴스(EC2) 생성 (0) | 2024.12.09 |