본문 바로가기

01. operation/vii. High availability

단순한 Active - Stand by 구조..


도대체 고가용성이 뭐냐?
라고 묻는 분들이 있습니다. 그런 분들을 위해서 가장 간단하고도 심플한 구조에 대해서 언급을 하고자 합니다.

제일 단순한 구조는 Active - Stand by구조입니다.
몇몇가지 demon과 script만 짤 능력이 한번쯤은 해볼만한 작업일것입니다.

1. 가장 단순한 구조

인터넷 망----------Active Server (운영서버)
                    |
                    ------Stand by Server (휴면상태의 서버)

단순합니다... 위 구조가 Active - Stand by서버의 기본입니다.

조건은 아래와 같습니다.
1. 사용자는 운영서버로 접근을 하여 일을 처리한다.
2. 휴면상태 서버는 평소때에는 놀고 있다. (결국은 놀고 있다는 소리)

이 구조일때 Active Server에서 자기 자신의 헬스체크를 주기적으로 합니다.
만약 apache가 올라가져 있는 서버라고 할때, curl툴을 사용하여 정상적인 응답을 주는지에 대한 확인을 하면 되어집니다. (curl 툴이 아니라 script로 짠 프로그램도 가능합니다) - 나중에 이야기가 되어지겠지만 이 부분은 대부분은 L4에서 되어집니다. (DNS가 될수도 있습니다)

Active-Stand by의 Fail Over
1. 누군가는 헬스 체크를 하고 있어야 한다. (운영서버이던, 휴면서버이던)
2. 헬스 체크를 하여 Fail (장애)가 발생되어지면 Active Server는 모든 서비스를 중단하고 휴면상태 서버가 Active로 올라가야한다.
3. Active Server가 내려갈때 IP addr주소가 변경되어져야 한다 (임시 아이피?식으로)
4. Stand By가 올라갈때에는 IP addr주소가 Active 서버의 주소를 가져온다

FailOver만 보았을때 어떤 프로그램을 사용해야하고, 어떤 스크립트가 필요한지 감이 올것이라고 생각합니다.
순서는 아래와 같습니다.

1. Active Server Fail(장애발생)
2. Active Server Service stop && IP ADDR 변경
3. 1/2번 동작이 완료가 되어지면 Stand by서버는 Event값을 받아 IP Addr 주소 인계 (Active서버의)
4. 여기부터 Stand by서버가 Active서버가 되어지면서 Service up

=======================================================================================

단순하게 생각하면 위 구조가 HA가 되어지는 가장 기본적인 구조일것입니다.

여기에는 사실 많은 문제가 존재하고 있습니다.
1. data의 공유는 어떻게 처리할것인가?
2. IP주소 인계는 어떻게 할것인가? (서비스 이전)
3. Service Fail check는 어떻게 할것인가?

말씀 드리지만 이것은 가장 기본적인 구조를 설명하기 위한 방법입니다.
이러한 식으로 고가용성(HA) 구성을 진행해 나가는것입니다.

이에 대한 script / demon 는 별도로 제공하지 않겠습니다.
왜냐하면 추후에 위 관련되어진 데몬들, configure, Service health Check에 관련되어진 내용이 나타나기때문입니다.

한줄 요약하자면 이렇습니다.
서비스 장비가 죽어버리면 휴면상태 서버가 서비스를 진행하면 된다!

잠깐짬을 내어 Active - Stand By에 대해서 언급을 하였습니다. 가장 기본이 되어지는 구조이니 이해될때까지 3번만 반복하시면 될것입니다