세션 지속성이란?

세션 지속성은 “세션” 기간 동안 또는 작업이나 트랜잭션을 완료하는 데 걸리는 시간 동안 클라이언트의 요청을 동일한 백엔드 웹 또는 애플리케이션 서버로 전달하는 것을 말합니다.

트래픽이 많은 웹사이트는 수백만 명은 아니더라도 수십만 명의 사용자를 빠르고 안정적으로 지원해야 합니다. IT 조직은 서버를 종종 서버 팜이라고 부르는 서버 그룹으로 묶어 이러한 대규모 트래픽을 지원합니다. 로드 밸런서는 서버 그룹 전면에 위치하여 효율성을 극대화하는 방식으로 트래픽을 개별 서버로 전달합니다.

사용자가 웹사이트를 5분 동안 탐색하는 경우 해당 사용자는 아마도 여러 백엔드 서버에서 정보를 가져오게 됩니다. 웹 브라우저 또는 백엔드 서버가 사용자의 다음 작업을 더 빠르게 수행할 수 있는 정보를 저장하여 웹 환경을 개선하려고 할 때 매번 동일한 서버에 액세스하지 않으면 문제가 발생할 수 있습니다. 이 경우 사용자의 모든 요청이 동일한 서버로 전송되는 것이 중요하지만 반드시 그렇다고는 할 수 없습니다.

성능 향상을 위해 백엔드 서버는 사용자가 요청한 데이터를 캐시하는 것은 물론, 사용자가 요청할 것으로 예상되는 추가 정보를 미리 캐시할 수 있습니다. 하나의 대규모 문서 다운로드와 같이 사용자에게는 단일 요청처럼 보이지만 실제로는 여러 요청-응답 트랜잭션으로 나뉘어 클라이언트와 서버 간에 전송되는 경우가 많습니다. 사용자가 요청된 정보를 받는 가장 효율적인 방법은 해당 정보가 이미 캐시된 서버에 액세스하는 것입니다.

다른 예를 들자면, 사용자가 양식 작성, 제품 구매 또는 계정 업그레이드 등과 같은 여러 단계가 필요한 트랜잭션에 참여할 수 있습니다. 클라이언트와 서버가 데이터를 교환할 때 트랜잭션이 원활하게 진행되도록 세션에 대한 상태 정보(컨텍스트라고 함)를 저장해야 합니다. 이 경우 세션 지속성을 사용하면 트랜잭션을 훨씬 쉽게 성공적으로 완료할 수 있습니다.

로드 밸런서 또는 애플리케이션 딜리버리 컨트롤러(ADC)는 서버 그룹 전면에 위치하며 필요한 기간 동안 사용자 세션을 특정 서버에 연결하는 로직을 구현합니다.

NGINX Plus의 지원 방법

NGINX PlusNGINX는 Dropbox, Netflix, Zynga 등과 같이 트래픽이 많은 웹사이트에서 사용되는 동급 최고의 로드 밸런싱 솔루션입니다. 전 세계 3억 5천만개 이상의 웹사이트가 콘텐츠를 빠르고 안정적이며 안전하게 제공하기 위해 NGINX Plus와 NGINX Open Source를 사용하고 있습니다.

소프트웨어 기반 로드 밸런서인 NGINX Plus는 비슷한 기능을 갖춘 하드웨어 솔루션보다 훨씬 비용이 낮습니다. NGINX는 기본적으로 쿠키 및 고정 경로를 사용하는 등 여러 가지 방법으로 세션 지속성을 관리합니다.