Thinking Out Loud

[IT Infra 기초] 인프라 아키텍처 본문

IT Infra

[IT Infra 기초] 인프라 아키텍처

주롱주롱 2021. 10. 7. 16:23

# 인프라 아키텍처

1. 집약형 아키텍처

2. 분할형 아키텍처

   1) 수직분할형 아키텍처

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

       (2) 3계층형 아키텍처

   2) 수평분할형 아키텍처

       (1) 단순 수평분할형 아키텍처

       (2) 공유형 아키텍처

   3) 지리분할형 아키텍처

       (1) 스탠바이형 아키텍처

       (2) 재해 대책형 아키텍처


1. 집약형 아키텍처

- 대형 컴퓨터(범용장비, 호스트, 메인프레임 등)로 모든 업무 처리

- 한 대로 업무를 처리하기 때문에 장비 고장 등으로 업무가 멈추지 않도록 이중화

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

- 기간 시스템(기업 내 핵심 업무시스템)

   ex) 은행 '계정 시스템'

2. 분할형 아키텍처

- 여러 대의 컴퓨터를 조합해서 하나의 시스템을 구축하는 구조

- 여러 컴퓨터가 연결되어 있어 데이터를 서로 교환, 대형 컴퓨터가 했던 처리를 다수의 소형 컴퓨터로 분할 처리

- 오픈 시스템(표준 OS나 개발언어 이용), 분산 시스템(여러 대의 컴퓨터를 연결해서 이용) 이라고도 부름

# 집약형 아키텍처 vs 분할형 아키텍처

  집약형 아키텍처 분할형 아키텍처
장점 - 한 대의 대형 컴퓨터만 있으면 되므로 구성이 간단
- 대형 컴퓨터의 리소스 관리나 이중화
  → 안정성↑, 고성능
- 낮은 비용
- 서버 대수를 늘릴 수 있어 확장성↑
단점 - 대형 컴퓨터 도입 · 유지 비용이 비쌈
- 확장성에 한계 존재
- 서버 대수↑ → 관리 구조 복잡도↑
- 한 대가 망가지면 영향 범위를 최소화하기 위한 구조를 검토해야함 (서버별 역할 검토 필요)

 

# 수직분할형 아키텍처 vs 수평분할형 아키텍처

- 수직분할형 : 서버별 다른 역할(작업)

- 수평분할형 : 서버별 비슷한 작업

* 배타적 관계 X

 

2-1. 수직분할형 아키텍처

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

= Client/Server Architecture, C/S 구조

- 업무 애플리케이션, 미들웨어, DB 등의 SW를 '물리 서버' 상에서 운영, 이들 SW에 '클리어언트(단말)' 소형컴퓨터가 접속해 이용하는 형태

- 화면 표시 및 단순 계산은 클라이언트(단말)에서 실행, 필요한 경우 서버에 의뢰

- 클라이언트 측에 전용 SW 설치 필요

 1) 예

     - ex) 주식판매 시스템 - Client(PC) : 그래프 표시, 주가 흐름 분석 / Server : 주가 데이터 입출력

     - ex) 기업 IT 시스템 - 업무 app 기능 추가, 버그 수정 등 정기적 업데이트 필요

 2) 장점

     - 클라이언트 측에서 많은 처리 실행 가능 → 소수의 서버로 다수의 클라이언트 처리 가능

 3) 단점

     - 클라이언트 측의 SW 정기 업데이트 필요 → 불편, 이용자가 없데이트하지 않을 경우 위험 요소 발생 가능 

     - 서버 확장성에 한계 발생 가능 (서버에 처리 집중시)

    ※ 이러한 단점을 개선하려 한 것이 '3계층형 아키텍처'

 

2-1-2. 3계층형 아키텍처

- 클라이언트-서버형 아키텍처를 발전시킨 것

- 일상에서 사용하는 사이트 및 사내업무 시스템의 구조

 1) 3층 구조

     - 프레젠테이션 계층 : 사용자 요청(입력)을 받아서, 웹 브라우저 화면에 표시

     - 애플리케이션 계층 : 사용자 요청에 따라 무엇을 할지 판단, 업무 처리. 필요 시 데이터 계층에 질의

     - 데이터 계층 : 데이터 입출력

 2) 장점

     - 서버 부하 집중 개선

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

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

        (ex. 이미지 파일만 읽으면 되는 경우 웹서버 만으로도 처리 완료 및 결과 반환 가능)

 3) 단점

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

 

2-2. 수평분할형 아키텍처

- 용도가 같은 서버를 늘려가는 방식

- 더 높은 확장성 실현 가능

- 서버 대수↑ ⇒ 한 대가 시스템에 주는 영향력↓ ⇒ 안정성↑

                  ⇒ 성능↑

 

2-2-1. 단순 수평 분할형 아키텍처

- 시스템별로 가로로 분할

- 수평분할 = 샤딩(Sharding), 파티셔닝(Partitioning)

- 거리상으로 멀리 떨어진 시스템에 자주 이용 (ex. 서울 본사 / 부산 지사)

- 공장처럼 각 거점이 완전 독립된 운영을 하고 있는 경우에 적합

 1) 장점

     - 수평으로 서버를 늘리기 때문에 확장성↑, 성능↑

     - 분할한 시스템이 독립적으로 운영되므로 서로 영향 X (독립성↑)

 2) 단점

     - 데이터를 일원화해서 볼 수 없음

     - 애플리케이션 업데이트는 양쪽을 동시에 해줘야함

     - 처리량이 균등하게 분할되어있지 않으면 서버별 처리량에 치우침 발생

 

2-2-2. 공유형 아키텍처

- 일부 계층에서 상호 접속이 이루어짐 (ex. 데이터 계층에서 데이터 동기처리를 통해 데이터 상호 교환)

 1) 장점

     - 수평으로 서버를 늘리기 때문에 확장성↑, 성능↑

     - 분할한 시스템이 서로 다른 시스템의 데이터 참조 가능

 2) 단점

     - 분할한 시스템 간 독립성↓

     - 공유한 계층의 확장성↓

 

2-3. 지리분할형 아키텍처

- 업무 연속성 · 시스템 가용성을 높이기 위한 방식

 

2-3-1. 스탠바이형 아키텍처

= 스탠바이 구성, HA(High Availability) 구성, 액티브-스탠바이(Active-Standby) 구성

- 물리 서버를 최소 2대 이상 준비

   → 한 대가 고장나면 가동 중인 SW를 다른 한 대로 옮겨 운영하는 방식

- 물리 서버 고장에 대처 가능

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

  ⇒ 이 문제를 해결하기 위해 스탠바이를 따로 두지 않고, 양쪽 서버를 동시에 교차 이용하는 경우도 有

      (교차 이용 : 한쪽이 고장 → 다른 한쪽이 양쪽을 처리)

- 물리 서버가 아닌 가상화 서버를 이용하고 있는 경우

   → 서버상의 SW뿐만 아니라 가상 서버별로 다른 물리 서버에 페일오버하는 방식도 有

※ 페일오버 (Failover) = 페일, F/O
   - SW 재시작을 자동으로 하는 구조

 

2-3-2. 재해 대책형 아키텍처

= 재해 복구(DR, Disaster Recovery) 구성

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

 1) 문제

     - 애플리케이션 최신화 & 데이터 최신화(사이트 간 동기 처리) 필요


참고 : 야마자키 야스시 외 3, 「그림으로 공부하는 IT 인프라 구조」, 제이펍

'IT Infra' 카테고리의 다른 글

[IT Infra 기초] 버스 (Bus)  (0) 2021.10.12
[IT Infra 기초] I/O 장치  (0) 2021.10.12
[IT Infra 기초] CPU와 메모리  (0) 2021.10.08
[IT Infra 기초] 물리 서버  (0) 2021.10.08
[IT Infra 기초] 물리 서버 vs 논리 서버  (0) 2021.10.07