이중화 (Duplication, Duplex)
이중화는 말 그대로 장비를 두개 놓는것
- 장비의 성능을 끌어올리기 위해
- 서비스의 지속성을 보장하기 위해
=> 한쪽 장비 다운 시 반대쪽 장비에서 서비스하기 위함
일반적으로 시스템의 결함내성을 위해서는 시스템의 중요 요소를 중복시켜 하나의 요소에 오류가 발생하더라도 중복된 다른 요소가 이를 대체하여 서비스를 계속 유지시키는 이중화 방식을 채택
이중화 방식은 어느 한 쪽만이 동작하다가 장애 발생 시 다른 한 쪽이 동작을 이어감
중요도가 낮은 트래픽이 흐르는 장비는 이중화로 괜찮지만, 중요한 데이터를 저장해야 하는 서버나 스토리지라면 삼중화, 사중화 시키기도 함 - 다중화 (은행권 등)
-> Active-Standby 이중화와 Active-Active 이중화 방식
FailOver
FailOver가 이중화와 같은 개념
FailOver는 평소에 사용하는 서버와 그 서버의 클론 서버를 가지고 있다가 사용 서버가 장애로 사용이 어렵게 되었을 경우 클론 서버로 그 일을 대신 처리하게 해서 무정지 시스템을 구축하게 해 주는 것을 의미
LoadBalancing
- L4 장비 담당
-> L4장비는 트래픽의 부하를 보고 자신과 연결된 서버에게 부하분산 서비스를 제공
-> 회선 이중화를 통하여 한쪽 회선에 많은 트래픽이 흐를 경우 반대쪽 회선에 트래픽을 보내주는 부하분산 역할을 수행
- LoadBalance란 두 개 이상의 서버가 일을 분담처리해 서버에 가해지는 부하를 분산시켜 주는 것
- > 여러 대의 처리기-서버가 병렬로 작업을 처리하도록 하여 서버의 부하를 균형 있게 잡아줌
=> 한 처리기에 너무 많은 부하가 걸리거나 너무 적게 걸려 낭비되지 않도록 작업을 적절히 분배하고, 필요한 경우에는 작업을 한 처리기에서 다른 처리기로 이동시킴
보통은 사용자가 처리기-서버에 부하가 걸릴만한 상황을 고려하여 조건을 설정하고 조건이 충족된 상황에서 다른 서버가 일을 분담 처리
서버 이중화
- 서버 인프라 설계 및 운영시 서비스의 안정적인 운영을 위해 서버 이중화를 구성
- 서버 이중화는 물리적 또는 논리적인 서버(또는 LAPR) 등을 구성하여 하나의 서비스에 장애가 발생하는 경우 다른 서버를 통해 서비스를 지속가능
- 서버 이중화 또는 다중화란 운영중인 서비스의 안정성을 위하여 각종 자원(전기, 서버기기, OS, 미들웨어, DB 등)을 이중또는 그 이상으로 구성하는 것
-> 이러한 구성은 HA(high Availability) 서비스와 디스크 RAID 구성, 오라클의 RAC(real Application Clusters) 등 으로 구현
서버 이중화 목적
1. (Failover) 장애 또는 재해시 빠른 서비스 재개를 위함
- 하드웨어, 미들웨어 등 다양한 지점에서 오류가 발생할 수 있으며 사용자가 이를 인지하지 못하도록 하기 위함
- 서비스의 일시적인 중단이 발생하더라도(다운타임 발생하더라도) 재빠르게 대응 가능
-> 대응 과정은 예측 가능 시 1차적으로 자동으로 Failover 할 수 있도록 설계
2. (로드밸런싱_Load balancing, 부하분산) 원활한 서비스의 성능을 보장 하기 위함
- 하나의 기기에서 일정량 이상의 사용자 트랜잭션을 처리하는 경우 응답시간이 느려질 가능성 있음
- 사용 트랜잭션의 패턴과 사용량 등을 분석하여 부하를 분산하여 효율적인 업무처리가 가능
-> 로드밸런싱은 구현하고자 하는 지점에 따라 미들웨어, 네트워크, OS 등 다양한 지점에서 구현가능
서버 이중화 방법
보통 서버 이중화를 구성은 Active-Active / Active-Standby 으로 구현
- Active-Active 구성은 부하분산 등의 목적으로 주로 활용, 서비스 단위를 나누어서 분산
- Active-Stand by 구성의 경우에는 즉각적인 Failover를 위해 구성
서버 이중화 구성도
Active-Active
- L4 스위치 등의 부하분산(SLB) 로드밸런싱을 통해 기능 또는 성격 등에 따라 1번 또는 2번 서버로 나누어서 처리하도록 구성
- 웹 서버 이후에 데이터베이스 서버에 접근이 필요한 경우에도 2개 이상의 서버를 둠
서버이중화 : Active-Active 구조
- 대부분 웹서버는 L4 스위치 SLB(Server Load Balancing)으로 구성하고 DB서버는 Oracle RAC(Real Application Cluster)를 활용
- 디스크 공유도 마찬가지인데 Veritas CFS(Cluster File System) 등으로 구성할 수 있다. 이러한 구성은 특정기기 장애시 1번 또는 2번 서버등으로 서비스를 지속 운영할 수 있다는 장점이 있고 Down Time이 존재하지 않음
Active-Standby
- Active-Standby 구조는 서버를 이중화하여 구성하지만 동시에 부하분산을 통해 모든 기기에서 서비스하는 것이 아니라 장애시에 서비스를 이전하여 운영하는 형태로 구성된 것을 의미
- 흔히 운영시스템이라고 부르는 운영시스템 서버(메인 서버)가 장애시 서비스 장애를 즉시 인지하여 서브 서버로 서비스를 이전.
서버이중화 : Active - Stand By 구조
- 이러한 과정은 클러스터 하트비트(Heart) 등으로 시스템의 정상상태를 주기적으로 체킹하고 특이사항이 발생하는 경우 시스템 엔지니어의 의사결정을 통해 수동으로 서브 서버로 서비스를 전환하거나, 크리티컬한 장애시 자동으로 서비스를 전환
-> 불가피한 장애에 대비하는 것이며 서비스의 다운타임을 최소화시키고자 함
'CS' 카테고리의 다른 글
세션, 캐시, 쿠키의 차이점 (1) | 2024.09.19 |
---|---|
@All/NoArgsConstructor (0) | 2024.06.23 |
스프링 시큐리티 (0) | 2024.06.06 |
소켓 통신 (0) | 2024.05.27 |
[Spring] @Repository, @Service, @Controller, @Component (0) | 2024.05.13 |