ㅁ 풀어야 할 문제
로드 밸런서의 상태 확인 기능을 이용하면 로드 밸런서에 연결되어 있는 서버의 상태를 확인하고 처리를 분배할 수 있음
웹 서버, 프락시 서버, AP 서버, DB 서버의 구성에서 웹 서버 앞에 로드 밸런서가 있는 경우 로드 밸런서는 웹 서버의 상태를 확인하고 상태가 좋지 않은 웹 서버를 분리시킬 수 있으나 프락시 서버와 AP 서버, DB 서버 등 그 뒤에 위치하는 서버의 상태를 로드 밸런서는 파악할 수 없다.
ㅁ 해결/패턴
클라우드의 로드 밸런서가 가진 상태 확인 기능을 이용해 PHP나 자바 서블릿 등의 동적 페이지(프로그램)을 확인하게 설정
그 프로그램으로 웹 서버, 프락시 서버와 AP 서버, DB 서버 등의 동작을 확인하고, 그 결과를 로드 밸런서에 넘김
AWS의 로드밸런서 서비스 ELB의 상태 확인 기능은 특정 URL의 HTTP(S) 액세스 성공 여부에 따라 상태를 확인
이를 이용해 상태 확인 대상을 동적 페이지로 설정
- ELB를 가동하고 상태 확인 기능을 활성화
- AP 서버에 동작하는 프로그램을 생성, 그 프로그램을 DB에 액세스
- ELB 상태 확인 URL은 위의 프로그램으로 지정, 그 URL에 대한 요청에 대해 프로그램이 동작하게 설정
- ELB로부터 상태 확인
- 시스템의 동작에 필요한 모든 서버의 상태 확인 가능
- 상태 확인에 응답하는 프로그램 작성 방법에 따라 폐국(요청을 받지 않게 함) 처리를 하거나 장애 내용에 따라 사용자가 지정한 에러 정보를 출력 가능
- 서버 수가 많을 경우 상태 확인 자체가 부하를 줄 수 있어 상태 확인 간격을 고려
- DB 서버가 SPOF(단일 고장점)로 된 경우, 그 서버가 정지하면 과잉 반응을 보이면서 모든 서버를 정지시킬 위험이 있음
- DB 서버 부분이 SPOF로 되지 않게 DB Replication 패턴을 같이 사용하는 것이 좋다.