본문 바로가기

자격증/AWS Certified Security - Specialty

[AWS SCS] ELB Sticky Sessions

728x90
반응형

스티키 세션(Sticky Sessions) 이해하기

AWS의 로드 밸런서(Load Balancer)를 사용할 때, 클라이언트 요청을 특정 백엔드 인스턴스에 지속적으로 연결하는 스티키 세션(Sticky Sessions) 또는 **세션 어피니티(Session Affinity)**를 설정할 수 있습니다. 이번 글에서는 스티키 세션의 개념, 작동 방식, 사용 사례, 설정 방법 등을 알아보겠습니다.


스티키 세션이란?

스티키 세션은 클라이언트가 로드 밸런서에 요청을 보낼 때, 동일한 백엔드 인스턴스로 요청이 전달되도록 보장하는 기능입니다. 기본적으로 로드 밸런서는 요청을 백엔드 인스턴스에 고르게 분산하지만, 스티키 세션을 활성화하면 특정 클라이언트는 동일한 인스턴스와 지속적으로 연결됩니다.

예를 들어:

  • 클라이언트 1이 첫 번째 요청을 EC2 인스턴스 A로 보냈다면, 두 번째 요청도 EC2 인스턴스 A로 전달됩니다.
  • 클라이언트 2는 EC2 인스턴스 B와 연결되고, 이후 요청도 계속 EC2 인스턴스 B로 전달됩니다.

스티키 세션은 다음 로드 밸런서에서 사용할 수 있습니다:

  • 클래식 로드 밸런서(CLB)
  • 애플리케이션 로드 밸런서(ALB)
  • 네트워크 로드 밸런서(NLB)

작동 방식

스티키 세션은 **쿠키(cookie)**를 통해 작동합니다. 클라이언트가 요청을 보낼 때, 요청에 스티키 세션 정보가 포함된 쿠키가 전달됩니다.

쿠키의 주요 정보

  • 스티키 세션 정보: 클라이언트를 특정 인스턴스와 연결하는 정보.
  • 만료 날짜: 쿠키가 만료되면 클라이언트는 다른 인스턴스로 리디렉션될 수 있습니다.

사용 사례

스티키 세션은 다음과 같은 상황에서 유용합니다:

  1. 사용자 세션 유지: 로그인 정보를 유지하여 사용자 경험을 개선.
  2. 중요 데이터 보존: 세션 데이터(예: 장바구니 정보)를 보호.

주의점

  • 스티키 세션을 활성화하면 특정 인스턴스에 요청이 집중될 수 있어 로드 불균형이 발생할 수 있습니다.

쿠키 유형

스티키 세션에서 사용할 수 있는 쿠키 유형은 두 가지입니다:

1. 애플리케이션 기반 쿠키 (Application-based Cookie)

  • 생성 주체: 백엔드 애플리케이션
  • 특징:
    • 애플리케이션에서 필요한 속성 포함 가능
    • 타겟 그룹별로 쿠키 이름 지정 필요
    • 예약된 이름(AWSALB, AWSALBAPPOR, AWSALBTG) 사용 불가

2. 지속 시간 기반 쿠키 (Duration-based Cookie)

  • 생성 주체: 로드 밸런서
  • 쿠키 이름:
    • ALB: AWSALB
    • CLB: AWSELB
  • 특징:
    • 로드 밸런서에서 지속 기간 설정 가능 (예: 1초 ~ 7일)

스티키 세션 설정 방법

스티키 세션은 타겟 그룹(Target Group) 설정에서 활성화할 수 있습니다. 다음은 설정 단계입니다:

1. 타겟 그룹 열기

AWS 콘솔에서 로드 밸런서와 연결된 타겟 그룹을 선택합니다.

2. 속성 수정

  • "Edit Attributes" 옵션 선택
  • "Stickiness" 활성화

3. 쿠키 유형 선택

  • 로드 밸런서 생성 쿠키: 지속 기간 설정 가능 (예: 1일).
  • 애플리케이션 기반 쿠키: 커스텀 쿠키 이름 지정 (예: MYCUSTOMCOOKIEAPP).

4. 설정 저장

변경 사항을 저장하고 적용합니다.


스티키 세션 확인 방법

  1. 웹 개발 도구(Web Developer Tools) 열기
    • 브라우저에서 네트워크(Network) 탭을 사용.
    • 요청 및 응답에 포함된 쿠키 정보 확인.
  2. 동작 테스트
    • 동일한 클라이언트가 동일한 EC2 인스턴스에 연결되는지 확인.

비활성화 방법

스티키 세션을 비활성화하려면:

  1. 타겟 그룹 속성 수정 메뉴로 이동.
  2. Stickiness 옵션 비활성화 선택.
  3. 기본 로드 분산 방식으로 복귀.

결론

스티키 세션은 사용자 경험을 향상하고 세션 데이터를 보호하는 데 유용한 기능입니다. 그러나 로드 불균형 가능성을 고려하여 애플리케이션 요구 사항에 맞게 적절히 설정해야 합니다.

728x90
반응형