0. SPOF(Single Point Of Failure)란?
'단일 장애점'이라고도 합니다.
시스템 내의 한 부분에 장애 발생하여
전체 시스템이 정상적으로 작동하지 않는 상황에서
장애가 발생한 해당 부분을 말합니다
1. SPOF의 예
어떤 회사의 서버가 모든 데이터를 저장하고 있을 때, 이 서버가 고장나면 회사의 모든 IT 시스템이 마비가 될겁니다.
이 경우, 서버가 SPOF가 됩니다.
대표적인 예들은 다음과 같습니다.
1. 네트워크 스위치 : 하나의 네트워크 스위치가 모든 네트워크 연결을 담당하는 경우, 이 스위치가 고장나면 전체 네트워크가 마비됩니다.
2. 전기 공급 : 데이터 센터나 서버에 전기 공급이 중단되면, 서버와 스토리지가 다운되어 서비스 불가 상태에 빠집니다.
3. 데이터베이스 : 데이터베이스가 모든 데이터를 저장하고 있는 상황에서 문제가 생겼을 경우, 전체 시스템이 정상적으로 작동하지 못합니다.
4. 로드 밸런서 : 로드 밸런서가 모든 트래픽을 분산시키는 경우, 로드 밸런서에 문제가 생기면 해당 서비스에 접속하는 모든 사용자들에게 서비스를 정상적으로 제공하지 못합니다.
2. SPOF의 해결 방법
SPOF를 방지하거나, 안정성을 높이는 방법이 쓰입니다.
1. 중복성(Redundancy) 부여 : 동일한 기능을 수행하는 시스템을 여러 개 구동하여 SPOF를 방지하는 방법입니다.
2. 로드 밸런싱 or 부하 분산(Load Balancing) : 로드 밸런싱은 여러 대의 서버에 부하를 분산시켜 서비스의 안정성을 높이는 방법입니다. 특정 서버에 과부하가 걸리는 걸 막을수 있습니다.
3. 백업(BackUp) : SPOF가 발생하더라도 데이터 및 시스템을 복원할수 있는 대비책이라 할수있습니다.
4. 결함 허용 시스템(Fault-Tolerant Systems) 구성 : 시스템 내에 장애가 발생하더라도 정상적으로 기능을 유지할 수 있도록 설계된 시스템입니다.
3. SPOF 예시에 대한 해결 방법들
1. 네트워크 스위치가 SPOF인 경우 : STP(Spanning Tree Protocol)을 사용하여 SPOF를 제거할 수 있습니다. STP는 불필요한 링크를 차단하고, 여러 개의 스위치를 연결한 네트워크에서 루프를 방지하기 위해 사용됩니다. STP를 설정하면, 특정 스위치에서 문제가 발생했을 때, 다른 스위치에서 해당 스위치를 우회하여 네트워크가 정상적으로 동작하게 합니다.
다른 해결 방법들로는 Switch Stack 구성, Redundant Switch 추가, Switch port 연결 등이 있습니다.
2. 전기 공급이 SPOF인 경우 : 무정전 전원 공급장치 or UPS(Uninterruptible Power Supply)를 사용하여 SPOF를 제거할 수 있습니다. 정전을 대비한 비상용 배터리와 같다고 생각하시면 됩니다.
다른 해결 방법들로는 비상 발전기 설치, 멀티 호밍(Multi-Homing) 등이 있습니다.
3. 데이터베이스가 SPOF인 경우 : 레플리케이션 or 복제(Replication)을 사용하여 SPOF를 제거할 수 있습니다. 말 그대로 데이터베이스를 다중화하여 하나의 데이터베이스에 장애가 발생하여도 다른 데이터베이스에서 데이터를 읽을 수 있어 SPOF를 해결 할 수 있습니다. 일반적으로 마스터-슬레이브 Replication을 사용하여 마스터 서버에 변경 사항을 저장하고, 슬레이브 서버에는 마스터 서버의 데이터를 복제하게끔 관계를 지어줍니다.
다른 해결 방법들로는 Clustering, Database Mirroring, 클라우드 서비스 사용, 데이터베이스 백업 등이 있습니다.
4. 로드 밸런서가 SPOF인 경우 : 여러 대의 로드 밸런서를 구성하는 방법으로 SPOF를 제거할 수 있습니다. 하나의 로드 밸런서에 장애가 발생하면 다른 로드 밸런서로 트래픽을 전달할 수 있도록 하는 것입니다. 이를 통해서 로드 밸런서의 가용성(Availability)을 높일 수 있습니다. 여기서 가용성이란, 정상 운영이 가능한 정도를 말합니다.
다른 해결 방법들로는 클라우드 서비스 사용, 하드웨어 로드 밸런서 사용 등이 있습니다.
'Computer Science' 카테고리의 다른 글
윈도우의 CLI, CMD vs PowerShell vs Windows Terminal (0) | 2023.03.11 |
---|