2023. 4. 5. 16:28ㆍCloud
◎ 로드 밸런서
-> 클라이언트-서버 통신 중 서비스에 매우 많은 사용자가 접속하면 서버에 과부하가 오고, 서버는 정상적으로 클라이언트에게 서비스를 제공할 수 없게 된다.
-> 로드 밸런서는 여러 대의 서버를 두거나 서버를 확장하여 서버의 부하를 분산한다. Scale-up 방식과 Scale-out 방식이 있다.
1. Scale-Up
- Scale-Up은 물리적으로 서버의 사양을 확장하는 하드웨어적 방식이다. 서버의 수를 늘리지 않아도 되기 때문에 프로그램 구현 상 변화가 없는 장점이 있다. 하지만 서버의 사양을 높이기 위한 비용이 많이 들고, 하드웨어 업그레이드에는 한계가 있다. 서버를 확장한 만큼 클라이언트의 요청도 증가하면 서버 과부하는 해결하지 못한다.
2. Scale-Out
- Scale-Out은 서버의 수를 증가시켜 서버에 가해지는 과부하를 분산시키는 방식이다. 많은 수의 요청이 들어와도 여러 대의 서버에 나누어 처리하기 때문에 물리적으로 서버의 사양을 확장하지 않아도 Scale-Up 보다 저렴한 비용으로 서버 과부하를 해결할 수 있다.
◎ 로드 밸런서 종류
-> 로드 밸런서는 클라이언트의 요청을 어떤 기준으로 분산시키는지에 따라 그 종류가 나뉜다.
◎ 오토스케일링
-> 서버의 부하가 과해지면 서버를 확장을 해야 한다. 이 때 언제 어느 시점에 서버를 확장해야하는지 매번 개발자가 확인할 수 없다. 오토스케일링은 Scale-Out방식으로 서버를 증설할 때 자동으로 서버를 관리한다.
-> 클라이언트의 요청이 많아져 서버의 처리 요구량이 증가하면 새 리소스를 자동으로 추가하고 처리 요구량이 줄면 리소스를 감소시켜 서버를 관리한다.
◎ 오토스케일링의 장점
- 동적 스케일링 : 사용자의 요구 수준에 따라 리소스를 유동적으로 스케일링 할 수 있다.
- 로드 밸런싱 : 로드 밸런싱과 오토스케일링을 같이 쓰면 다수의 EC2 인스턴스에게 워크로드를 효율적으로 분배할 수 있어 사용자가 정의한 규칙에 따라 워크로드를 효과적으로 관리할 수 있다.
- 타켓 트래킹 : 사용자는 특정 타겟에 대해서만 오토스케일링할 수 있고, 사용자가 설정한 타겟에 맞게 EC2 인스턴스의 수를 조정한다.
- 헬스 체크 & *서버 플릿 관리 : EC2 인스턴스의 헬스 체크 상태를 모니터링할 수 있고, 헬스 체크 과정에서 특정 인스턴스의 문제가 발생 시 자동으로 다른 인스턴스로 교체한다.
* 서버 플릿 : 다수 EC2 서버에서 애플리케이션을 호스팅하는 경우 EC2 서버 집합을 AWS에서 서버 플릿이라고 한다.
오토스케일링은 적정 수준의 서버 플릿 용량 유지에도 도움을 준다.
- 만약 애플리케이션이 5대의 EC2 서버에서 실행 중일 때 5대 서버에 대해 헬스 체크 상태를 모니터링 하다가 특정 서버에 문제 발생 시 즉시 대응한다. 여기에서 서버가 다운 되면 오토 스케일링은 5대 서버 인스턴스에 대한 처리 용량 유지를 위해 부족한 만큼의 서버를 추가 실행시키는 방식으로 서버 플릿을 유지한다.
◎ EC2 오토스케일링 활용
-> 시작 템플릿
- 오토스케일링으로 인스턴스를 확장하거나 축소하려면 어떤 서버를 사용할지 결정해야 한다. 이 과정은 시작 템플릿을 통해 할 수 있다. 인스턴스에 대한 모든 정보를 담고 있다.
-> 오토스케일링 그룹 생성
- 오토스케일링 그룹은 스케일 업 및 스케일 다운 규칙의 모음이다. EC2 인스턴스 시작~삭제 까지의 모든 동작에 대한 규칙과 정책이 담겨 있다.
-> 스케일링 유형
- 인스턴스 레벨 유지 : 항상 실행상태를 유지하려는 인스턴스의 수를 지정할 수 있다. 일정 수의 인스턴스가 필요한 경우 최소, 최대 혹은 원하는 용량에 동일한 겂을 설정할 수 있다.
- 수동 스케일링 : 오토스케일링의 크기를 수동으로 변경할 수 있다. 사용자가 직접 콘솔, API 등을 이용해 수동을 인스턴스를 추가/삭제 해야 한다.
- 일정별 스케일링 : 에측 스케일링 트래픽의 변화를 예측할 수 있고, 특정 시간대에 얼마나 트래픽이 증가하는지 패턴을 파악하고 스케일링을 사용하는 것이 좋다.
- 동적 스케일링 : 수요 변화에 대응하여 오토스케일링 그룹의 용량을 조정하는 방법을 정의한다. 예를 들어 CPU 처리 용량의 80% 수준까지 올라간 상태가 5분 이상 지속된 경우 오토 스케일링이 작동하여 서버를 추가하는 방식이다. 스케일링 정책을 정의할 때 항상 스케일 업과 스케일 다운 이 두가지의 정책을 작성해야 한다.