본문 바로가기

카테고리 없음

Deep Health Check 패턴 - 시스템 상태 확인

ㅁ  풀어야 할 문제

로드 밸런서의 상태 확인 기능을 이용하면 로드 밸런서에 연결되어 있는 서버의 상태를 확인하고 처리를 분배할 수 있음

웹 서버, 프락시 서버, 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 패턴을 같이 사용하는 것이 좋다.