로드 밸런서를 사용하게 될때 크게 2개의 형태의 로드 밸런서가 있다.
웹에 안성 맞춤인 application Load balancer 와 TCP에 안성 맞춤인 Network Load balancer
그래 앞서 설명했던 것 처럼
2022.06.19 - [IT/Cloud Service] - [공통]Load balancer 로드 밸런서
로드 밸런서는 가용성을 높여주고 자원을 효율적으로 사용하는데 큰 도움을 준다.
1개의 ALB(Application Load Balancer) 와 4개의 웹 서버의 구조로 서비스를 하고 있다고 치자.
Round Robin 방식으로 설정되어 있는 ALB이다.
최초 웹 서버로 접속을 했고 회원 로그인을 진행하였다. 웹 서버 1에 접속하였다.
사용자가 새로고침을 하였는데, 왠일인지 로그아웃이 되어있다. 라운드로빈에 의해 웹 서버 2에 접속된 상태다.
다시 로그인을 하고 잘 사용한다. 현재 웹 서버 2에서 사용하고 있다.
사용자가 다시 새로고침을 하였는데 로그아웃이 또 되어 있다. 라운드로빈에 의해 웹 서버 3에 접속된 상태다.
계속 된 로그아웃으로 사용자는 짜정이 많이 난다.
ALB는 자신의 역활을 잘 해줬다. 분산을 잘 해줬다.
하지만 웹 서버1에서 사용하던 웹 사용자의 세션 및 쿠키는 웹 서버 1과의 통신으로 얻게 된 로그인 정보다.
이게 웹 서버 2에 까지 있기를 바란다면 당신은 욕심쟁이.
물론 이를 해결하기 위해 개발 단에서의 방법이 존재한다.
그보다 ALB를 사용하는 입장에서는 더 쉬운 방법도 있다.
이거슨 바로 스티키 세션(sticky session) 라고 한다.
ALB에서 스티키 세션을 설정하면, LB는 기존에 갔던 서버로 지속적으로 연결되어 사용할 수 있도록 돕는다.
이 스티키세션을 통해서 ALB에서 사용자와 서버간에 지속할 수 있는 쿠키를 할당 한다.
더 자세한 내용은 추후에 좀더 공부해보고 남겨보도록 하겠고,
ALB의 경우 세션을 유지하기 위해서는 스티키 세션을 사용해야 한다는 점이다.
(LB 생성을 위해 target group을 만드는데 이때 sticky session을 설정할 수 있다)
그런데 TCP를 기반으로 하는 Network Load balancer 는 TCP의 연결 특성으로 인해 그 자체로 세션을 유지하는데 사용할 수 있다.
'IT > Cloud Architect' 카테고리의 다른 글
[NCP] Auto Scaling Group(Classic platform - Launch Configration) (0) | 2022.08.24 |
---|---|
[공통] Security Group[ACG], NACL (0) | 2022.06.20 |
[공통]Load balancer 로드 밸런서 (0) | 2022.06.19 |
subnet 가용 영역과 고가용성 (0) | 2022.06.10 |
VPC 너란 녀석 (0) | 2022.06.08 |