# 해당 구성도
# TargetGroup 상태체크 방법
2022.05.09 - [AWS/Load Balancing] - Target Group Health checks (헬스체크)
# 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 이란?
아래와 같이 Stickiness 체크박스를 활성화 후 세션 설정 옵션을 지정한다.
Stickiness이 활성화되면 로드 밸런서는 클라이언트의 세션을 대상 그룹 내의 특정 인스턴스로 바인딩한다.
추후에는 AutoScaling 후 인스턴스가 자동으로 늘어나고, 늘어날때 웹 서비스가 어떤 반응을 보이는지 체크가 필요하다.
'⌛ AWS 인프라 구성하기 (MiniProject) > ✅ 개발환경 구성 (EC2)' 카테고리의 다른 글
4. Lunch-templates, Userdata, Stickiness cookie, SecurityGroup를 활용한 ASG 구성 (0) | 2022.05.10 |
---|---|
2. ASG (AutoScalingGroup) 적용하기 (0) | 2022.05.04 |
1. ALB를 활용 웹프로그램 서비스 하기 (0) | 2022.05.02 |