본문 바로가기
IT 자격증/[AWS] SysOps Administrator

CloudFront-ALB 구조에서의 세션 유실 현상

by 쑨토리 2025. 5. 18.
반응형

A company has a stateful web application that is hosted on Amazon EC2 instances in an Auto Scaling group.

한 회사에서 상태 저정(Stateful) 웹 어플리케이션이 있고, 이 어플리케이션은 오토스케일링 그룹을 통해서 EC2 인스턴스로 호스팅되고 있음. 
- Stateful, 상태 저장이라는 것은 사용자 로그인, 장바구니 정보와 같은 세션(상태)를 인스턴스 내에 저장하는 방식임!

 

 

The instances run behind an Application Load Balancer (ALB) that has a single target group.

이 인스턴스들은 ALB 뒤에서 동작하며고 하나의 타겟그룹에 속해있음. 
즉 , ALB는 클라이언트들의 요청에 따라 여러 인스턴스로 트래픽을 분산시키는 구조

 

The ALB is configured as the origin in an Amazon CloudFront distribution.

이 ALB는 CloudFront 배포판의 오리진으로 설정

 

Users are reporting random logouts from the web application.

사용자들이 무작위로 로그아웃되는 현상이 보고되고 있음
이 무작위 로그아웃이라는 것을 이해하지 못하면 이 문제를 파악하지 못함..(내가 그랬음)

💡 무작위 로그아웃이라는 말은 결국 세션 유지에 실패하고 있다는 뜻임. 
즉 상태 저장 웹애플리케이션에서 요청이 항상 같은 인스턴스로 가지 않고 (로드밸런서에의해 무작위 배정된다고 보면 됨) 이로 인해 세션 정보가 누락되어 무작위로 로그아웃 현상이 발생하는 것. 
[구조]
클라이언트 > CloudFront > ALB > 하위 여러 Target EC2 인스턴스 
그래서 사용자가
1) 로그인 > A 인스턴스에서 세션 생성 
2) 다음 요청 > B 인스턴스로 연결 > 세션 없음 > 로그아웃 됨

이러한 현상이 발생하게 됨. 이러면 무작위 로그아웃 처럼 보이게 됨. (세션 유실)

 


Which combination of actions should a SysOps administrator take to resolve this problem? (Choose two.)

 


 

정답만 설명

-Configure cookie forwarding in the CloudFront distribution cache behavior. 

CloudFront 배포의 캐시 동작에서 쿠키 전달을 설정.

  • 기본적으로 CloudFront는 쿠키를 전달하지 않기 때문에, 로그인 정보 같은 세션이 누락됨.
  • All cookies 또는 특정 쿠키만 전달 설정 가능.

CloudFront 를 이용하는 경우에는 세션 유지를 위해 쿠키 전달은 필수!!!!!!

 

- Enable sticky sessions on the ALB target group. 

ALB 타깃 그룹에서 스티키 세션(sticky session)을 활성화합니다.

  • Sticky Session을 설정하면, 사용자가 항상 같은 인스턴스로 연결됨.
  • 상태 저장 웹 앱에서는 필수 설정입니다.

세션이 EC2 인스턴스에 저장되므로, 같은 인스턴스로 보내야 세션 유지됨.