지난 포스팅에서 로드밸런싱으로 부하를 분산시키는 실습까지 진행하였다.
이번 포스팅에서는 인스턴스에 트래픽을 유입시키고 경보를 설정하여 부하 알림을 받고
오토스케일링을 활용하여 부하를 처리하는 것 까지 실습을 진행해보려고 한다.
Amazon SNS(Simple Notification Service)
- 메시지 전달을 위한 완전관리형 서비스
- 여러 시스템 또는 사용자에게 푸시 알림, SMS, 이메일, Lambda 호출 등을 통해 메시지를 빠르게 전달할 수 있다.
- 퍼블리셔-구독자 모델을 기반으로 하며, 다양한 구독자에게 동시에 메시지를 전송하는 데 적합하다.
토픽(Topic)
- Amazon SNS에서 메시지를 발행(publish)하고 구독자들에게 전달하는 중앙 허브
- 발행자는 토픽에 메시지를 보내고, 구독자들은 해당 토픽을 구독하여 메시지를 수신한다.
구독(Subscription)
- 특정 SNS 토픽에 연결되어 메시지를 수신하는 방식
- 이메일, SMS, Lambda, HTTP 등 다양한 방식으로 토픽의 메시지를 받아볼 수 있다.
CloudWatch 경보
- 지정한 메트릭(예: CPU 사용률)이 특정 임계값을 초과하거나 미달할 때 자동으로 알림을 전송하거나 조치를 실행하는 기능이다.
- 경보 상태는 OK, 경고(ALARM), 데이터 부족(INSUFFICIENT_DATA)로 구분된다.
- SNS를 통해 이메일, Lambda, Auto Scaling 등과 연동해 대응할 수 있다.
오토 스케일링(Auto Scaling)
- EC2 인스턴스 수를 트래픽이나 부하에 따라 자동으로 늘리거나 줄이는 서비스이다.
- Auto Scaling 그룹(ASG)을 만들고 최소/최대 인스턴스 수와 조건을 설정하면, CloudWatch 알람 등의 조건에 따라 자동 조정된다.
- 트래픽 급증 시 인스턴스를 추가하고, 부하가 줄면 제거해 비용 효율성과 안정성을 동시에 확보할 수 있다.
주제(topic) 생성

이메일로 메세지를 수신받기 위해 표준유형 선택

나머지 설정을 그대로 유지한 상태로 주제 생성
구독 생성
주제 > mytopic > 구독 생성

프로토콜 : 이메일
엔드포인트 : 수신받을 메일 주소 입력

엔드포인트로 등록한 이메일 확인

Confirm subscription 클릭하여 구독 확인

webserver-a 인스턴스에 경보 설정

생성한 토픽 지정

경보 임계값 설정
webserver-a 인스턴스의 CPU 사용률이 30%이상일때 트리거가 발생하도록 설정

로드밸런서 DNS로 브라우저에 접속하여 부하테스트 클릭
→ 해당 인스턴스로 트래픽이 유입

CPU 사용률 30%이 초과되었다는 이메일 알림이 온것을 확인 할 수 있다.

CloudWatch 대시보드 확인

이제 오토 스케일링으로 애플리케이션의 부하를 처리하여 부하가 일어났을때
EC2 인스턴스를 자동으로 증가 시켜 보도록 할 예정이다.
대상그룹 등록된 대상 제거
my-tg의 등록된 대상을 취소한다.

오토스케일링을 위해 시작 템플릿을 생성한다.
오토스케일링 실행시 해당 템플릿의 인스턴스가 생성된다.

Auto Scaling 지침 활성화

my-ami로 이미지 등록

기존 보안그룹 선택하여 my-sg 선택

리소스 유형 (인스턴스, 볼륨) 추가 후 시작 템플릿 생성

오토 스케일링 그룹 생성

앞서 만든 시작템플릿 (my-lt)선택

네트워크 설정
- VPC : my-vpc
- 가용영역 및 서브넷 : public-subnet-a, public-subnet-c

기존 로드밸런서에 연결하고
로드밸런서 대상 그룹 선택

오토스케일링 크기 설정

지표유형
- 평균 CPU 사용률 30
→ CPU 사용률이 30이상일 시 오토스케일링 실행

토픽+ 엔드포인트 설정
- 시작, 종료, 시작실패, 종료실패시마다 이메일로 알림이 간다.

Name태그 추가 후 오토스케일링 그룹 생성

그룹을 생성하면서 인스턴스 두개가 새롭게 추가되었다.


로드밸런스 대상그룹 확인
→ ASG 그룹으로 생성한 인스턴스가 대상으로 등록이 되어있어야 한다.

웹 브라우저로 로드밸런서 DNS 주소로 요청
→ ASG를 통해 생성된 인스턴스 응답 확인
→ 메일함 확인시 토픽이 발행되었다.

부하테스트 클릭 → 5분 경과 후 인스턴스가 자동으로 증가한다.
만약 인스턴스가 추가되지 않았을때, 동적 크기 조정 정책 추가


오토스케일링으로 현재 총 4개의 인스턴스가 ASG에 추가된 것을 볼 수 있다.
