여려개의 서버가 있고 접속자가 많아 과부하가 걸릴 수 있는 상황이 왔을 때, 적절하게 여러 서버로 분산시켜 주는 것
- 가용성 : 항상 사용 가능한 상태를 유지하는 것
- 서버들의 부하를 분산해주기 때문에 더 많은 클라이언트들이 접속할 수 있음
- 혹시 서버가 고장이 나더라도 다른 서버들이 응답하기 때문에, 가용성 향상
- 서버에 문제 발생을 확인하는 기능도 있음
- Hot-Standby : 예전 방식의 로드 밸런싱
종류
ALB(Application Load Balancer) : 7계층 로드 밸런서 -> URL등을 보고 부하를 분산, Round Robin 지원
NLB(Network Load Balancer) : 4계층 로드 밸런서 -> Port번호를 보고 부하를 분산, Hash Function 지원(Sticky Session), EIP(고정IP)(Elastic IP Address : 탄력적 IP 주소)를 부여할 수 있음
분산 방법
- Round Robin (순차 분배) : 1 - 2 - 3 - 4 - 1 .... 처럼 순차적으로 트래픽을 분산해준다. (서버의 스펙이 모두 동일할 경우)
- Weighted Round Robin (가중치를 고려한 분배) : 서버들의 스펙이 차이가 있을 때
- Least Response Time (응답시간을 고려한 분배) : 응답시간이 짧은 서버에 우선 분배 한다.(평소에 로드밸런서가 서버들의 응답시간을 주기적으로 확인해서 빠른 쪽에 우선 분배)
- Least Connection (연결 개수가 가장 작은 쪽에 우선 분배) :
- 인터넷 쇼핑을 오랫동안 하는 Browser -> Connection이 계속 유지됨
- 검색해보고 바로 나가는 Browser -> Connection이 빨리 끝남
- Connection이 작은쪽에 부여
- Hash, Function을 활용 : IP, Port 등을 고려해서 Hash값을 계산 -> 일치되는 경우에는 같은 서버에 고정해서 연결
- Sticky Session(세션이 고정됨)
실습
우선 한 개의 인스턴스를 생성한 뒤 템플릿 생성 -> 인스턴스에 우클릭 후 이미지 및 템플릿 -> 인스턴스에서 템플릿 생성
그 후 템플릿으로 시작 -> 템플릿을 생성했던 기반 인스턴스의 설정값 그대로 인스턴스를 바로 생성할 수 있음
그 후
sudo apt update
sudo apt install vim
sudo apt install apache2
cd /var/www/html
sudo mv index.html index.old
sudo vi index.html
미리 만들어놓은 html을 편집기로 열어서 복사후 파일 생성
이렇게 하는 이유는 로드밸런싱이 작동함을 구분하기 위해서 이다. (원래는 사용자는 인식하지 못하게 똑같게 하는 것이 맞음)
로드밸런서 생성
ALB 선택
라우터에 명시적 서브넷 2개 설정 후 2개 선택
internet - facing 외부랑
internal 내부만
create target group
그 다음 아래 DNS이름으로 접속하고 새로고침을 해보면 red Server와 blue Server가 랜덤으로 나오게 된다
'SK Rookies 9 > Cloud' 카테고리의 다른 글
오토스케일링 (0) | 2022.09.30 |
---|---|
NLB (0) | 2022.09.30 |
IAM (0) | 2022.09.29 |
3Tier & aws EC2 - RDS 연계 (0) | 2022.09.28 |
aws RDS (0) | 2022.09.28 |