본문 바로가기

⌛ AWS 인프라 구성하기 (MiniProject)/✅ 개발환경 구성 (EC2)

3. Lunch-templates, Userdata, Stickiness cookie를 활용한 ASG 구성

728x90
반응형

# 해당 구성도

EC2+ALB+ASG+Userdata.drawio
0.01MB

# TargetGroup 상태체크 방법

2022.05.09 - [AWS/Load Balancing] - Target Group Health checks (헬스체크)

 

Target Group Health checks (헬스체크)

# Target Group을 생성시 Health checks 라는 탭을 확인 할 수 있다. 인스턴스의 서비스가 정상적으로 동작하는지 체크를 하고 해당 정보를 화면에 표시하는 용도이다. 헬스 체크의 옵션을 보면 아래와

may9noy.tistory.com

# AutoScaling시 userdata를 정의하여 Scale-out되는 인스턴스에 jar파일을 기동 시키기

AutoScaling시 Scale-out의 조건은 시작 템플릿을 늘리는 방법으로 진행 된다.

그래서 시작 템플릿을 항상 최신의 이미지로 생성해 두어야 최신의 데이터가 반영되어 스케일 아웃 시 적용 된다.

하지만, 문제는 Scale-out만 적용되어 인스턴스 이미지만 들어나고, 실제로 실행되는 서비스가 없으면 당연히 TargetGroup의 HealthyCheck에서는 fail이 날수 밖에 없다. 이유는 타켓 그룹에서는 port를 통해서 통신을 하는데, 해당 port로 서비스되는 신호가 없다면 당연히 Unhelthy 상태를 표출한다.

그래서, 시작템플릿에는 userdata(사용자 데이터)라는 옵션이 존재한다.

시작 템플릿의 고급 세부정보를 클릭하여 가장 하단으로 내려가면 userdata를 정의할 수 있는 창이 나온다.

cd /home/ubuntu/files/build/libs/ && java -jar firstproject-0.0.1-SNAPSHOT.jar

만약, Auto-Scaling을 수행 후 늘어난 인스턴스에서 웹 서비스를 실행해야 한다면 위와같이 실행 명령어를 사용자 데이터에 기록해 줘야 한다.

 

# Stickiness를 활용한 세션 설정하기

스케일 아웃이 발생하고, 발행된 인스턴스에 userdata를 정의하여 웹 서비스 애플리케이션을 실행 하도록 구성 하였다.

여기서 또한가지 문제가 발생 하는데 세션을 유지하는 문제이다.

 

# 세션 문제를 해결하기 위해 TargetGroup에서 속성 설정하기

TargetGroup의 기본 속성

# Stickiness 세션을 설정하기

2022.05.09 - [AWS/Load Balancing & TargetGroup] - sticky session 이란?

 

sticky session 이란?

Sticky Session이란? Sticky session 이란, 세션을 사용하여 트래픽을 분산하는 것이다. 예를들어 쇼핑몰 웹사이트가 있다고 가정하자. 웹 사이트로 로그인을 하면서 session을 서버에서 생성했다.

may9noy.tistory.com

아래와 같이 Stickiness 체크박스를 활성화 후 세션 설정 옵션을 지정한다.

Stickiness이 활성화되면 로드 밸런서는 클라이언트의 세션을 대상 그룹 내의 특정 인스턴스로 바인딩한다.

추후에는 AutoScaling 후 인스턴스가 자동으로 늘어나고, 늘어날때 웹 서비스가 어떤 반응을 보이는지 체크가 필요하다.

728x90
반응형