Cloud Infra Architecture (AWS)/AWS Build

[Trouble Shoting] AWS web (apache) fail-over 오래 걸림

seongduck 2024. 5. 20. 19:13

서버에 가용성을 위해 ELB를 설정했음에도 불구하고, 가용성 테스트시 fail-over 까지 오랜시간이 걸린 경험이 있다.
 
다음과 같은 조치로 원인을 파악 및 해결할 수 있다.
 
1. ELB 설정
교차 영역 로드 밸런싱 설정

1) 연결되어 있는 NLB -> 속성 편집
2) "로드 밸런서 대상 선택 정책" -> "교차 영역 로드 밸런싱 비활성화 - 기본값" 설정

 
2. TG 설정
ELB에 연결되어 있는 TG의 Healthy Check 주기를 변경한다.

1) 리스너 선택
2) "상태검사" - "편집"
3) 정상 임계 값 / 비정상 임계 값 / 제한 시간 / 간격 시간 최소화

 
3. 개발툴 프레임 워크 확인
1, 2를 설정했음에도 불구하고 fail-over 시간이 오래걸린다면
다음과 같은 원인을 생각해 볼 수 있다.
 

1. 정적와 동적 컨텐츠를 같이 불러온다. (정적 - 동적 컨텐츠 분리 안함)
2. React 등 최신 프레임워크 및 기술을 사용하지 않아, 렌더링 문제

 
3-1. Cloud Trail을 통해 서버 중지된 시간 확인

1. cloudTrail
2. 이벤트 기록
3. ec2 stop 시간 확인

 
3-2. 시간 확인 후 apache 서버 accesslog 확인

1. a/c 가용영역의 서버에 접속
2. accesslog가 쌓이는 위치로 이동
3. less +G access.오늘날자.log #실시간 말고 고정된 로그
4. tail -f access.오늘날자.log | grep Apple #맥북 접속시 맥북 로그만 보려고 (실시간)

로그가 .xml 식으로 호출되면 동적/정적이 같이 불러오는 경우이다.
이경우는 인프라단말고, 개발측에 문의하거나, 프레임워크 및 정적 컨텐츠 이동 여부를 확인해야 한다.
 
필자의 경우 a/c 가용영역 각각의 서버로 50%식 동적/정적 컨텐츠가 호출되어 fail-over 시간이 오래걸렸다.
 
3. 4. 으로 Accesslog를 살펴보면 각각의 서버에 하나씩 로그가 떠야하는데, 반반씩 다른 로그가뜨는 것을 확인할 수 있다.