본문 바로가기

Developer/Develop

인프라 아키텍처에 대해서

<집약형과 분할형 아키텍처>

  • 집약형 아키텍처 : 하나의 컴퓨터로 모든 주요 업무를 처리를 한다.

    컴퓨터는 하나로 사용하지만, 컴퓨터를 구성하는 주요 부품은 다중화 되어있기 때문에, 하나가 고장나더라도 업무를 계속할 수 있다.

    복수의 서로 다른 업무 처리를 동시에 실행할 수 있도록 유한 리소스 관리를 한다.

    ex) 기간시스템

    장점 : 한 대의 대형 컴퓨터만 있으면 되므로 구성이 간단하다.

    대형 컴퓨터의 리소스 관리나 이중화에 의해 안정성이 높고 고성능

    단점 : 대형 컴퓨터 도입 비용과 유지 비용이 비싸다

    확장성의 한계

  • 분할형 아키텍처 : 여러 대의 컴퓨터를 조합해서 하나의 시스템 구축

    여러대의 컴퓨터가 연결돼 있어서 데이터 서로 교환
    장점 : 낮은 비용으로 시스템 구축 가능 (최대 100배 차이)
    서버 대수를 늘릴 수 있기 때문에 확장성이 높음

    단점 : 서버 수가 늘어나면 운영 구조가 복잡해진다.
    한 대가 망가지면 영향 범위를 최소화하기 위한 구조를 검토해야함

 

<수직 분할형 아키텍처>

  • 클라이언트-서버형 아키텍처

    업무 애플리케이션, 미들웨어, 데이터베이스 등의 소프트웨어를 물리 서버에서 운영하고, 
    소프트웨어에 클라이언트 또는 단말이라 불리는 소형 컴퓨터가 접속해서 이용하는 형태 (C/S) -> 역할별로 수직분할

    C/S 서버는 클라이언트 측에 전용 소프트웨어를 설치해야한다. 

    -> 특정 업무는 PC에서하고, 데이터를 취득하는 등의 업무는 서버에서 한다.

     

    장점 : 클라이언트 측에서 많은 처리를 실행할 수 있어서, 소수의 서버로 다수의 클라이언트 처리 가능

    단점 : 클라리언트 측의 소프트웨어 정기 업데이트 필요 (window, linux ...)
    서버 확장성의 한계

     

  • 3계층형 아키텍처 : C/S형 발전

    프레젠테이션 계층, 애플리케이션 계층, 데이터 계층으로 나뉜다.

    프레젠테이션 계층
    : 사용자의 입력 + 웹 브라우저 화면 표시
    애플리케이션 계층 : 사용자 요청 (Request)에 따라 업무 처리
    데이터 계층 : 애플리케이션 계층의 요청에 따라 데이터 입출력

    장점 : 특정 서버에 부하가 집중되는 문제 개선
    클라이언트 단말의 정기 업데이트 불필요 + 사용자는 웹 브라우저만 준비
    모든 처리가 AP 서버나 DB 서버를 거치지않아도됨

    단점 : C/S 구성보다 복잡하다.

 

<수평 분할형 아키텍처>

수평 분할형 아키텍처는 용도가 같은 서버를 늘려나가는 방식이다.
-> 서버 한 대가 시스템에 주는 영향령 낮아지고, 안정성 향상

Sharding(샤딩) or Partitioning(파티셔닝) 이라고도 불림

  • 단순 수평 분할형 아키텍처

    서울 지사 시스템과 미국 지사 시스템을 분할해놓는 것. -> 각각 독립성 향상
    사용자가 많은 경우에는 지역별이 아닌, 사용자 ID 기준으로 서버를 샤딩하기도 한다.

     

    장점 : 수평으로 서버를 늘리기 때문에 확장성 향상
    분할한 시스템이 독립적으로 운영되므로, 서로 영향을 주지 않는다.

    단점 : 샤딩된 서버들의 데이터를 동시에 이용할 수 없다. (매번 각각 업데이트해줘야함)
    각 서버별로 사용자가 균등하지 않다면, 처리량에 치우침이 발생한다.

  • 공유형 아키텍처



    장점 : 수평으로 서버를 늘리기 때문에 확장성 향상
    분할한 시스템이 서로 다른 시스템의 데이터 참조 가능

    단점 : 분할한 시스템 간 독립성 저하
    공유한 계층의 확장성 저하

 

<지리 분할형 아키텍처>

  • 스탠바이형 아키텍처 : 스탠바이구성 = HA(High Availability) 구성 = 액티브-스탠바이 구성

    이 때, 소프트웨어 재시작을 자동으로 하는 구조를 페일오버(Failover, 페일, F/O) 라고한다.

     

    장점 : 물리 서버 고장에 대처 가능
    페일오버 서버를 두지않고, 동시에 교차 이용 가능하도록 한다면 좋다.

    단점 : 페일오버 대상 서버(스탠바이)는 평상시에 놀고 있는 상태 -> 리소스 낭비

  • 재해 대책형 아키텍처



    장점 : 재해 발생 대비 가능

    단점 : 갱신 되는 데이터들 간의 동기 처리를 해야하므로 비용, 대상 데이터 등을 고려해야함.

 

 

참조 : 그림으로 공부하는 IT 인프라 구조