7.1 안정성 및 이중화

  • 상용 시스템에서 시스템 인프라가 '업무 기능의 토대'가 되지만 요구되는 몇 가지가 있다.
    • 그 중 하나가 안정성이다 = 고가용성
    • 안정성(=고가용성)이란 시스템 서비스가 가능한 한 멈추지 않도록 하는 것을 의미한다.

  • 상용 웹 시스템에서는 미들웨어 기능이나 구조로 이중화, 감시, 백업의 세 가지 수단을 구현하여 목표를 실현한다.

이중화

  • 하나의 기능을 병렬로 여러 개 나열해서 하나에 장애가 발생해도 다른 것을 이용해서 서비스를 계속할 수 있는 것
  • 이중화에 필요한 구조
    • 부하분산
    • 내부적 생존 감시
    • 마스터 결정
    • 페일오버

7.2 서버 내 이중화

  • 전원, 장치 등의 이중화
    • 전원 한쪽이 고장나 전원이 공급되지 않더라도 시스템을 가동하기 위함
  • 네트워크 인터페이스 이중화
    • PCI 슬롯에 꽂은 카드도 이중화가 가능하다.
    • 카드 이중화 및 포트 이중화를 통해 카드 장애 및 포트 장애에 대응한다.
    • 네트워크 인터페이스 이중화는 하드웨어 또는 OS로 구현한다.
      • 일반적으로 액티브-스탠바이 구성이다.
      • 액티브 측에 문제가 생겨 장비가 교체되는것을 페일오버(Failover)라고 한다.

7.3 저장소 이중화

  • HDD 이중화
    • 저장소 이중화의 주요 대상이다.
    • 가동 빈도가 높아서 고장나기가 쉽다
    • RAID는 여러 HDD묶어서 그룹을 만들고 이것을 논리적은 HDD로 인식하는 기술이다.
    • 논리적 HDD는 LU(Logical Unit)이라 한다. (서버가 인식하는 HDD는 LU이다.)
  • RAID 장점
    • 안정성 확보
    • 성능 향상
    • 용량 확장

7.4 웹 서버 이중화

  • 웹 서버를 이중화하는 방법 중 하나가 DNS를 이용해서 하나의 호스트명에 대해 복수의 IP 주소를 반환하는 것이다.
    • DNS 라운드 로빈을 통해 하나의 호스트에 복수 IP주소를 할당한다.
  • 조금 더 고도화된 방식은 부하분산 장치를 통한 방법이다 (로드 밸런서)
    • 클라이언트가 가지고 있는 쿠키를 이용해 부한분산 장치가 같은 서버에 요청을 한다.

7.5 AP 서버 이중화

  • AP 서버 이중화는 두 가지 기능을 이용해서 구현한다.
    • 첫 번째는 웹 서버와 같이 부하분산 장치를 이용하거나, AP 서버가 가진 웹 서버 요청 이중화 기능을 이용하여 AP 서버 요청을 분산시키는 것이다.
    • 두 번째 구현 방법은 세션 정보 이중화다.
      • 세션 정보를 작성하여 클러스터 내 다른 서버에 복제하는 방식
  • DB 연결 이중화
    • AP 서버에는 DB서버에 접속 시에 사용할 커넥션을 사전에 여러 개 생성 해 둔다.
      • 연결 풀링 (Connection Pooling)이라 한다.

7.6 DB 서버 이중화

  • 주류 방법은 액티브-스탠바이형의 클러스터 구성이다.
    • 클러스터 구성은 HA 구성이다.
    • 클러스터의 노드나 서비스 관계는 마스터-워커 개념을 기반으로 하고 있다.
  • 클러스터 소프트웨어를 이용한 액티브-스탠바이 구성을 서비스를 병렬로 실행할 수 없고 데이터 일관성을 중시하는 서비스/시스템에 적합하다.
    • 예를 들어 데이터 베이스, 파일 서버, 잡 관리 시스템 등이다.

 


이번 챕터는 간단하게 정리를 했는데, 인프라 구조에 대해 깊게 들어가면 지금 현재 공부 목적에서 좀 벗어날 것 같아서 자세한 내용은 생략했다.

+ Recent posts