1장 인프라 아키텍처

2023. 3. 10. 18:47

인프라란 무엇일까?

  • 아키텍처의 직역은 '구조'
  • 인프라 아키텍처는 IT 인프라의 구조를 의미함

집약형과 분할형 아키텍처

  • IT 인프라는 컴퓨터로 구성되고 기본적 구성방식은 '잡약형'과 '분할형'이다.
  • 집약형 아키텍처
    • 주요 업무를 모두 한 대의 컴퓨터로 처리하는 방식이다.
    • 주로 '기간 시스템'이라 불리는 기업 내 핵심 업무 시스템에 이용하는 경우가 많음
    • 장점
      • 한 대의 대형 컴퓨터만 있으면 되므로 구성이 간단함
      • 대형 컴퓨터의 리소스 관리나 이중화에 의해 안정성이 높고 고성능이다.
    • 단점
      • 대형 컴퓨터의 도입 비용과 유지 비용이 비쌈
      • 확장성에 한계가 있음
  • 분할형 아키텍처
    • 여러 대의 컴퓨터를 조합해서 하나의 시스템을 구축하는 구조
    • 표준 OS나 개발 언어를 이용하기 때문에 '오픈 시스템'이라고도 부른다.
    • 여러 대의 컴퓨터를 연결해서 이용하기 때문에 '분산 시스템'이라 부르는 경우도 있다.
    • 장점
      • 낮은 비용으로 시스템을 구축할 수 있다. (소형 컴퓨터는 대형 컴퓨터에 비해 저렴하다.)
      • 서버 대수를 늘릴 수 있어서 확장성이 높다
    • 단점
      • 대수가 늘어나면 관리구조가 복잡해진다.
      • 한 대가 망가지면 영향 범위를 최소화하기 위한 구조를 검토해야 한다.
  • 물리 서버와 논리서버의 차이
    • 분할형 아키텍처에서 이용되는 컴퓨터를 서버라고 부른다.
    • 서버는 컴퓨터 자체(하드웨어)를 지칭하는 경우를 물리 서버라고 부름
    • 컴퓨터에서 동작하고 있는 소프트웨어를 가리키기도 함, 이를 논리서버라 부름

수직 분할형 아키텍처

  • 분할형에서는 서버 분할 방식을 고려해야함 (서버 각각의 역할 분담)
    • 각각의 서버가 전혀 다른 업무를 할지, 비슷한 업무를 할지에 대한 관점이다.
  • '수직'이라고 부른 이유는 서버 측면에서 봤을때 역할에 따라 '위'또는 '아래' 계층으로 나뉘기 때문

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

  • 클라이언트 - 서버형은 수직 분할형의 한 예
  • 업무 app, 미들웨어, db 등의 소프트웨어를 '물리 서버'상에서 운영
  • 이들 소프트웨어에 클라이언트 혹은 단말이라 불리는 소형 컴퓨터(혹은 스마트폰)가 접속해서 이용하는 형태
  • 클라이언트 측에 전용 소프트웨어를 설치해야한다.
  • 장점
    • 클라이언트 측에서 많은 처리를 실행할 수 있어서 소수의 서버로 다수의 클라이언트를 처리할 수 있음
  • 단점
    • 클라이언트 측의 소프트웨어 정기 업데이트 필요
    • 서버에 처리가 집중되면 서버 확장성에 한계가 발생함

3계층형 아키텍처

  • 클라이언트-서버형을 발전시킨 구조
  • 프레젠테이션 - 애플리케이션 - 데이터, 총 3층 구조로 분할되어있음
  • 프레젠테이션 계층 (View 역할, 웹서버)
    • 사용자 입력을 받는다.
    • 웹 브라우저 화면을 표시한다.
  • 애플리케이션 계층 (업무 처리단, AP 서버)
    • 사용자 요청에따라 업무를 처리함
  • 데이터 계층 (DB 서버)
    • 애플리케이션 계층의 요청에 따라 데이터 입출력을 한다.
  • 장점
    • 서버 부하 집중 개선
    • 클라이언트 단말의 정기 업데이트가 불필요
    • '처리 반환'에 의한 서버 부하 저감
  • 단점
    • 구조가 Client - Server 구성보다 복잡함

수평 분할형 아키텍처

  • 용도가 같은 서버를 늘려가는 방식
  • 수직 분할형과 수평 분할형은 배타적인 관계가 아니다, 대부분의 시스템이 이 두 가지 방식을 함께 채택함

단순 수평 분할형 아키텍처

  • 수평 분할을 sharding(샤딩) 혹은 partitioning(파티셔닝)이라 부르기도 함
  • 예를들어 서울 본점과과 부산 지사가 같은 업무를 하는경우 같은 형태의 3계층형 아키텍처 두개를 사용할 수 있다.
    • 시스템이 두개로 독립되기 때문에 서로 영향을 미치지 않는다.
    • 서울 측 시스템에 장애가 발생하더라도 부산 측 시스템에 영향을 주지 않아 독립성이 향상됨
  • 장점
    • 수평으로 서버를 늘리기 때문에 확장성이 향상됨
    • 분할한 시스템이 독립적으로 운영되므로 서로 영향을 주지 않음
  • 단점
    • 데이터를 일원화하여 볼 수 없다.
    • 애플리케이션 업데이트는 양쪽을 동시에 해 주어야 함
    • 처리량이 균등하게 분할돼 있지 않으면 서벼별 처리량에 치우침이 생김

공유형 아키텍처

  • 일반 기업에서는 일부 게층에서 상호 접속이 이루어지는 경우가 있다.
  • 서울측에서 필요에 따라 부산 시스템에 접속할 수 있고, 반대의 경우도 가능하다.
  • 데이터의 경우 한 곳에서 집중적으로 관리하는 것이 보안이나 관리상 유리한 경우가 있다.
  • 장점
    • 수평으로 서버를 늘리기 때문에 확장성이 향상된다.
    • 분할한 시스템이 서로 다른 시스템의 데이터를 참조할 수 있다.
  • 단점
    • 분할한 시스템 간 독립성이 낮아짐
    • 공유한 계층의 확장성이 낮아짐

지리 분할형 아키텍처

  • 수직, 수평 분할 아키텍처를 조합하여 목적에 적합한 구성을 만들 수 있음
  • 업무 연속성 및 시스템 가용성을 높이기 위한 방식이다.

스탠바이형 아키텍처

  • 스탠바이 구성 = HA(High Availability) 구성 = 액티브-스탠바이 구성, 모두 같은 말이다.
  • 물리 서버를 최소 두대를 준비하여 한 대가 고장나면 가동 중인 소프트웨어를 다른 한 대로 옮겨서 운영하는 방식
    • 소프트웨어 재시작을 자동으로 하는 구조를 'Failover'라고 함 (= 페엘, F/O)
  • 물리 서버 고장에 대처할 수 있지만 페일오버 대상 서버(스탠바이하고 있는 서버, 놀고있는 서버)에서 리소스 낭비가 발생 할 수 있음
  • 스태바이를 따로 두지 않고 양쪽 서버를 교차 이용하는 경우도 많다.
  • 가상화 서버를 이용할 경우 서버상의 소프트웨어 뿐만아니라 가상 서버별로 다른 물리서버에 페일오버하는 방식도 선택될 수 있음

재해 대책형 아키텍처

  • 특정 데이터 센터에 있는 상용 환경에 고장이 발생하면 다른 사이트에 있는 재해 대책 환경에서 업무처리를 재개하는 구조
  • 서버 장비를 최소 구성 및 동시 구성으로 별도 사이트에 배치한다.
    • 그 후 소프트웨어도 상용 환경과 동일하게 설정
    • 재해가 발생했을 때 전혀 다른 사이트에 있는 정보를 이용하게 됨
  • 신경써야할 점은 애플리케이션과 데이터의 최신화이다.

+ Recent posts