IT/Load Balancing

Persistence

jk.jeong 2021. 1. 25. 10:12

Persistence

- 어플리케이션이 사용 중인 세션을 같은 서버에 지속적으로 할당하는 기능.

- 하나의 서버에서 처리하고 있던 것을 처리 도중 다른 서버로 부하분산시키면 처리 자체에 정합성이 맞지 않음.

ex) 쇼핑몰 - '장바구니에 넣고 정산한다' 라는 일련의 동작을 하나의 세션, 하나의 처리로 간주하고 지속적으로 하나의 서버에만 할당하여 처리 정합성을 보장.

종류 Persistence 설명
L3 Persistence 출발지 IP Persistence 출발지IP주소를 기준으로 일정 시간, 동일한 서버에 할당
목적지 IP Persistence 목적지IP주소를 기준으로 일정 시간, 동일한 서버에 할당
L7 Persistence Cookie Persistence
(Insert Method)
어떤 서버에 접속했는지 알리는 쿠키를 응답문에 삽입해, 쿠키 유효기간 동안 동일한 서버에 할당
HTTP Header Persistence 특정  HTTP헤더를 기준으로 일정 시간, 동일한 서버에 할당

* Cookie Persistence 장비에 따라서 Persistence Record를 작성하지 않는 경우가 있음. Persistence Record를 만들지 않는 경우는 Cookie 정보만 보고 Persistence를 실행.

1.  출발지 IP Persistence

접속 클라이언트 IP주소를 사용해 동일한 서버에 지속적으로 할당하는  L3 Persistence. L3 계층으로 서비스를 거치지 않아 알기 쉬운 구성. 일정 시간 사용하지 않으면 해당 레코드를 삭제. 시간은 너무 짧으면 다른 서버에 할당, 너무 길면 장치나 서버에 부하가 걸릴 수 있음. NAPT환경이나 Proxy 서버를 경유하는 환경에서는 한 대의 서버에 수많은 접속이 할당되는 단점. 

2. 목적지 IP Persistence

서버의 IP 주소를 기준으로 같은 서버에 할당하는 L3 Persistence. 서버 부하분산 환경 보다 회선 부하분산 환경에서 많이 사용.

3. Cookie Persistence

HTTPS와 SSL 가속 환경의 HTTPS에서만 유효한 L7 Persistence. 쿠키가 가진 정보를 기준으로 일정 시간 세션을 지속. 클라이언트마다 유연하게 세션을 유지할 수 있어서 HTTP 부하분산 시 자주 사용.

 

4. HTTP Header Persistence