본문 바로가기

study/IT 인프라

인프라 아키텍처의 종류

그림으로 공부하는 IT 인프라 구조 #1

인프라 아키텍처란?

  • IT 인프라 - IT의 기반이 되는 것
  • 인프라 아키텍처 - IT 인프라의 구조

 

집약형과 분할형 아키텍처

집약형 아키텍처

image-20200210015302777

  • 대형 컴퓨터 하나로 모든 업무를 처리하는 형태

  • 구성이 간단함

  • 한 대의 컴퓨터로 업무를 처리하기 때문에 장비 고장으로 업무가 중단이 되면 안됨

  • 한대의 컴퓨터를 구성하는 부품들을 다중화(예: CPU 2개)해서 단일 고장점 방지해 안정성이 높음

  • 유한 리소스 관리를 통해 서로 다른 업무 처리를 동시에 실행(마치 한 대의 컴퓨터 안에 여러 사람이 동거하는 것처럼)

  • 대형 컴퓨터는 도입 비용 및 유지 비용이 큼

  • 확장성에 한계가 있음

    • 확장성: 사용자 수의 증대에 유연하게 대응할 수 있는 정도

 

분할형 아키텍처

image-20200210015514346

  • 여러대의 (소형)컴퓨터를 조합해서 하나의 시스템을 구축하는 구조
  • 안정성은 대형 컴퓨터 보다 낮으나, 여러 대의 컴퓨터를 이용해 한 대가 고장이 나도 안정성을 보장
  • 분할형 아키텍처는 표준 OS나 개발 언어를 이용하기 때문에 '오픈 시스템' 이라고도 부름
  • 여러 대의 컴퓨터를 연결해서 이용하기 때문에 '분산 시스템'이라고도 부름
  • 낮은 비용으로 시스템을 구축할 수 있음
  • 서버 대수를 늘려 성능을 향상 시킬 수 있기 때문에 확장성이 좋음
  • 서버 수가 늘어나면 관리 구조가 복잡해짐
  • 한 대가 망가지면, 영향 범위를 최소화하기 위한 구조를 검토해야함

 

물리 서버와 논리 서버의 차이

  • 서버

    • 분할형 아키텍처에서 이용되는 컴퓨터
    • 컴퓨터 자체(하드웨어)를 가리키는 경우도 있고, 컴퓨터에서 동작하고 있는 소프트웨어를 지칭하기도 함
  • 서버란 용어는 원래 '특정 역할에 특화된 것'을 뜻함

  • 논리적인 서버

    • 컴퓨터 내부에서 여러 소프웨어 서버가 작동
    • 웹 서버 : 인터넷에 접속시, 사용자 입력 HTML 생성을 담당
    • DB 서버 : 대량의 데이터를 저장해서 요청에 따라 데이터를 제공
  • 물리 서버

    • 컴퓨터 자체를 가리킴

 

수직 분할형 아키텍처

  • 분할형에서는 서버 분할 방식(역할 분담)을 고려해야함
  • 수직 분할형 아키텍처는 역할에 따라 또는 아래 계층으로 나뉨

 

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

image-20200210021411184

  • 업무 애플리케이션, 미들웨어, 데이터베이스 등의 소프트웨어를 물리 서버 상에서 운영

  • 클라이언트(단말) 가 접속해서 이용하는 형태

  • Client/Server 앞글자를 따서, C/S 라고 부름

  • 클라이언트 측에 전용 소프트웨어를 설치해야함

    • 클라이언트에 주로 PC, 스마트폰, 태블릿 등이 단말로 사용됨
  • 예 : 주식 판매 시스템에서, 그래프 표시나 주가 흐름 분석은 PC에서 하고 필요에 따라 서버에서 주가 데이터를 갖고 옴

  • 서버 측은 데이터 입출력만 하면 되기 때문에 처리당 부하가 낮아 많은 클라이언트가 동시에 요청을 보내도 문제가 없음

  • 클라이언트 측에서 많은 처리를 할 수 있어서 소수의 서버로 다수의 클라이언트를 처리 가능

  • 클라이언트 측의 소프트웨어 정기 업데이트 필요

  • 서버에 처리가 집중되면 확정성에 한계가 발생할 수 있음

 

3계층형 아키텍처

image-20200210012934668

  • 프리젠테이션 계층, 애플리케이션 계층, 데이터 계층 -> 3층 구조로 서버가 분할되어 있음

  • 사용자가 웹 브라우저를 통해 시스템에 접속함

    • 예시) 인터넷 검색 시스템
    • 사용자가 웹브라우저에 입력한 화면은 웹서버(프레젠테이션 계층)에 전달
    • 웹서버는 받은 요청을 애플리케이션 서버(AP 서버, 애플리케이션 계층)에 전달
    • AP 서버는 검색 키워드를 바탕으로 무엇을 검색해야 할지 판단 한 뒤, DB(데이터 계층)에 데이터 요청
  • 장점

    • 서버 부하 집중 개선

    • 클라이언트 단말의 정기 업데이트가 불필요

    • '처리 반환'에 의한 서버 부하 저감

      • 모든 처리가 AP 서버나 DB 서버를 사용하지 않아도 됨
      • 이미지 파일만 읽는 요청이면, 웹 서버만으로도 처리를 완료해 결과를 반환할 수 있음
  • 단점

    • 구조가 클라언트-서버 구성보다 복잡함

 

수평 분할형 아키텍처

  • 수직 분할형 아키텍처 는 각 서버별로 다른 역할을 하도록 시스템을 수직으로 확장하는 구조
  • 수평 분할형 아키텍처 는 용도가 같은 서버를 늘려가는 방식
  • 서버 대수가 늘어나면 한 대가 시스템에 주는 영향력이 낮아지고 안정성이 향상됨
  • 처리를 담당하는 서버 대수가 늘어나면 전체적인 성능 향상도 가능

 

단순 수평 분할형 아키텍처

image-20200210013010105

  • 수평 분할을 sharding(샤딩) / partitioning(파티셔닝) 이라고 함

  • 장점

    • 수평으로 서버를 늘리기 때문에 확장성이 향상됨
    • 분할한 시스템이 독립적으로 운영되기 때문에 서로 영향을 주지 않음
  • 단점

    • 데이터를 일원화(동시에)해서 볼 수 없음
    • 애플리케이션 업데이트는 양쪽에 동시에 해줘야함
    • 처리량이 균등하게 분할되지 않으면 서버별 처리량에 치우침이 생김

 

공유형 아키텍처

image-20200210013044498

  • 일부 계층에서 상호 접속이 이뤄짐

  • 장점

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

    • 분할한 시스템 간 독립성이 낮아짐
    • 공유한 계층의 확장성이 낮아짐

 

지리 분할형 아키텍처

스탠바이형 아키텍처

image-20200210013118706

  • 스탠바이 구성, HA(High Availability) 구성, 액티브-스탠바이 구성 으로 불림

  • 물리 서버를 최소 두 대를 준비해, 한 대가 고장이 나면 가동 중인 소프트웨어를 다른 한대로 옮겨 운영하는 방식

  • 소프트웨어 재시작을 자동으로 하는 구조를 페일오버(failover) 라고 함

  • 장점

    • 물리 서버 고장에 대처 가능
  • 단점

    • 보통 페일오버 대상 서버(스탠바이 서버)가 놀고 있는 상태라 리소스 측면에서 낭비 발생

 

재해 대책형 아키텍처

평상시의 재해 대책 사이트 데이터 반영 : 서버 장비를 최소 구성 및 동시 구성으로 별도의 사이트에 배치 하고 소프트웨어도 사용 환경과 동일하게 설정

image-20200210010334009

 

재해 발생 시의 이용 : 재해 발생 시 전혀 다른 사이트에 있는 정보를 이용함

image-20200210010428286

 

  • 재해에 대응하기 위한 재해 복구(disaster recovery) 구성

    • 예) 특정 데이터 센터(사이트)에 있는 상용 환경에 고장이 발생하면 다른 사이트에 있는 재해 대책 환경에서 업무 처리를 재개 하는 것
  • 문제점

    • 애플리케이션 최신화, 데이터 최신화
    • 어느정도 실시간성을 유지해서 사이트 간 동기 처리를 해야함

 

클라우드형 아키텍처

image-20200210013337058

  • 3계층형 시스템의 일부 또는 전부가 클라우드 서비스 제공자가 보유하고 있는 물리 서버에서 동작

  • 대부분 가상화 기술에서는 서버가 가상적인 존재로 동작함

    • 가상화 : 물리 서버를 가상화 기능으로 여러 대의 가상 서버로 분할하는 방식
  • 어떤 계층을 클라우드 상에 배치하는가에 따라 명칭이 달라짐

    • SaaS(Software as a Service) 모델

      • 서버 뿐 아니라 애플리케이션을 포함한 업무 시스템을 클라우드 서비스 회사가 제공
      • Gmail 같은 웹 메일 서비스
    • PaaS(Platform as a Service) / IaaS(Infrastructure as a Service)/DBaaS(Database as a Service) 모델

      • 일반적인 3계층형 시스템을 구성하는 서버의 일부 혹은 전부를 클라우드 상의 리소스로 대체
      • 물리 서버를 구입하는 것에 비해 비용이 낮고 바로 사용 가능
      • 보안 문제나 클라우드 서비스 제공자와의 네트워크 연장 문제 등이 있을 수 있음