💪 HA (High Availability) 를 한국어로 간단히 직역하자면 "고가용성" 이다.
즉, 사용할 가능성이 높다는 뜻으로 "절대 고장 나지 않음" 을 의미.
즉, 네트워크나 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 말한다.
최근 들어 기업의 모든 비즈니스가 디지털화 되면서, 고 가용성이 보장된 서비스를 제공해야 하는 케이스가 점점 많이 발생하고 있다. 또한 단 한번의 예상치 못한 서버 다운은 기업 신용 실추 등의 문제와 직결되어 손실이 매우 크다.
* 이미지 출처 - 제 14회 한국자바개발자 컨퍼런스 가이드집
💡 서버이중화란?
운영 중인 서비스의 안정성을 위해 각종 자원을 이중 또는 그 이상으로 구성하는 것
따라서, 하나의 서비스에 장애가 발생하는 경우 다른 서버를 통해 서비스를 지속가능하게 해준다.[참고] clustering 클러스터링? 다수의 서버를 중복 구성하는 것
장애가 일어난 Active 서버를 내리고 대기하고 있던 Stand by 서버를 올리는 것을 failover 라고 한다. 이를 보통 네트워크 장애 발생 시 노드간 failover가 실행 되도록 설정했다고 말한다.
failover 발생 시 Active 서버에 할당한 가상 IP주소 (대표 IP, Alias IP)를 제거하고 Stand by 서버에 해당 주소를 재할당 하기 때문에, 클라이언트는 동일한 IP 주소 그대로 접속이 가능하다.
장애 또는 재해 시 빠르게 서비스를 재개하여 오류가 발생하더라도 사용자는 인지하지 못하도록 하기 위함.
원활한 서비스를 위해 한 개의 장비에서 일정량 이상의 트래픽을 처리하는 경우 응답시간이 늦어질 수 있다.
HA (High Availiability) 서비스와 디스크 RAID 구성, 오라클의 RAC (Real Application Clusters) 등으로 구현 가능하다.
* 이미지 출처 - 트루아이티 - 서버이중화 | HASYS Web Manager
1번 서버에서 장애 발생 시 2번 서버가 1번 서버를 대신하여 바로 서비스 하기 위해서는 양쪽 데이터는 항상 100% 동일해야 한다는 무결성을 보장해야 한다.
이렇게 DATA를 동일하게 맞추기 위해서는 Data Replication (데이터복제) 기능이 반드시 필요하다.
이 때, Master (Read, Write) - Slave (Read) 구조를 가진다.
다수의 Slave 구축으로 Read 부하를 분산 시킬 수 있다.
Master-Slave 구조에서 한 개의 Master에 여러 Slave가 있는 구조를 클러스터링 구조라고 하며 DDR 구조라 한다.
Stand by 서버는 Active 서버가 언제 장애가 발생할 지 모르니 항상 감시하고 있어야 한다.
이러한 구성은 Active-Standby 구성이라고 한다.
보통 서버 이중화의 구성은 Active-Active 구성과 Active-Standby 구성으로 나뉜다.
데이터가 실시간 복제된다는 점.
실수로 반영된 데이터 혹은 바이러스에 감염된 파일도 복제가 되어 2번 서버 또한 감염될 수 있다는 점.
이러한 단점을 보완하기 위해서는 백업 솔루션도 함께 추가 도입해야 할 것이다.
* 출처 - 서버이중화 솔루션 및 로드밸런싱 | 둥굴둥굴둥굴레차
💡 HASYS 란?
High Availability System 을 나타내며, HASYS 구성 멤버 시스템들을 마치 하나의 가상 시스템(Single Virtual System) 처럼 사용할 수 있도록 꾸며주는 '고 가용성 시스템'을 의미