과부하로 서버가 원활한 서비스를 제공하지 못하는 경우, 서버의 하드웨어를 업그레이드하는 방법과 서버의 갯수를 늘리는 방법 두가지가 있다.
Scale-Up
Scale-Out
- 요청을 여러 서버에 나눠 처리할 수 있도록 교통정리를 해줄 역할 필요
- 로드밸런서 / 로드밸런싱 ( 교통정리를 해주는 기술 혹은 프로그램 )
- 로드밸런서 종류
L2 - 데이터 전송 계층에서 Mac 주소를 바탕으로 로드 밸런싱
L3 - 네트워크 계층에서 IP 주소를 바탕으로 로드 밸런싱
L4 - 전송 계층에서 IP주소와 Port를 바탕으로 로드 밸런싱
L7 - 응용 계층에서 클라이언트의 요청을 바탕으로 로드 밸런싱 (ex 엔드포인트)
- Auto Scaling의 장점
- 동적 스케일링 : 사용자의 요구 수준에 따라 리소스를 동적으로 스케일링 가능, 서버 수 제한x
- 로드 밸런싱 : 로드밸런서와 함께 사용하면 다수의 EC2 인스턴스에게 워크로드를 효과적으로 분배 가능
- 타겟 트래킹 : 특정 타겟에 대해서만 AutoScaling 가능
- 헬스 체크와 서버 플릿 관리 : EC2 인스턴스의 헬스 체크 상태 모니터링 가능. 특정 인스턴스 문제가 감지되면 자동으로 다른 인스턴스 교체
- 서버 플릿 : 다수의 EC2 서버에서 애플리케이션 호스팅할 경우 일련의 EC2 서버 집합
- EC2 Auto Scaling 활용
EC2 Auto Scaling은 오직 EC2 서버라는 리소스만 대상으로 한다.
- 시작 템플릿 (Launch Configuration)
- Auto Scaling 그룹 생성
- Scaling 유형
- 인스턴스 레벨 유지 : 기본 스케일링 계획, 항상 실행상태를 유지하고자 하는 인스턴스의 수 지정.
- 수동 스케일링 : 오토스케일링 그룹의 크기를 수동으로 변경 가능 추천 x
- 일정별 스케일링 : 트래픽 패턴 파악이 가능할 때
- 동적 스케일링 : 수요 변화에 대응하여 그룹의 용량 조정. CloudWatch가 모니터링하는 지표를 추적하여 경보 상태일 때 수행할 스케일링 규칙