로드밸런서 종류별 설정 방법
1. Application Load Balancer (ALB) - L7 레이어
ALB는 쿠키를 직접 제어하므로 가장 세밀한 설정이 가능합니다.
설정 경로: EC2 콘솔 → [대상 그룹(Target Groups)] → 해당 그룹 선택 → [속성(Attributes)] → [편집].
유형 선택:
부하 분산 장치 생성 쿠키 (Duration-based): ALB가 스스로
AWSALB라는 쿠키를 만듭니다. 유효 기간(1초~7일)을 설정할 수 있습니다.애플리케이션 기반 쿠키 (Application-based): 내 앱에서 이미 쓰고 있는 쿠키 이름(예:
JSESSIONID)을 그대로 활용합니다. 앱의 로직과 세션을 일치시킬 때 유리합니다.
2. Network Load Balancer (NLB) - L4 레이어
NLB는 쿠키를 읽을 수 없으므로 Client IP를 기반으로 세션을 유지합니다.
설정 방법: 대상 그룹 속성에서 [고정(Stickiness)]을 활성화하고 유형을
Source IP로 설정합니다.특징: 클라이언트의 IP가 바뀌지 않는 한 동일한 타겟으로 연결됩니다. (Proxy나 NAT를 거쳐오는 사용자가 많을 경우 특정 서버로 트래픽이 쏠릴 위험이 있습니다.)
세션 유지 방식 비교
구분 | ALB (기간 기반) | ALB (앱 기반) | NLB (Source IP) |
식별 기준 | ALB 생성 쿠키 | 앱 커스텀 쿠키 | 클라이언트 IP 주소 |
유연성 | 높음 | 매우 높음 | 보통 |
권장 상황 | 일반적인 웹 서비스 | 특정 세션 로직이 있는 앱 | TCP/UDP 기반 고성능 앱 |
주의점 | 쿠키 차단 시 작동 안 함 | 앱 설정과 동기화 필요 | IP 공유 시 부하 불균형 |
Tip
Sticky Session은 양날의 검입니다.
세션 유지를 켜는 순간, 로드밸런서의 가장 큰 장점인 '균등한 부하 분산' 효과가 떨어집니다. 특정 서버에 접속한 사용자들이 헤비 유저라면 그 서버만 비명을 지르게 되죠.
가장 모범적인 설계는 'Stateless(무상태)' 아키텍처입니다. 서버 메모리 대신 Amazon ElastiCache(Redis)를 세션 저장소로 쓰면, 세션 유지를 켜지 않아도 사용자가 어떤 서버에 접속하든 끊김 없는 경험을 할 수 있고 오토스케일링도 훨씬 자유로워집니다.
댓글
댓글 0개
이 문서에는 댓글을 달 수 없습니다.