내맘대로 쓰는 블로그

Infra Architecture Overview 본문

IT/IT infra

Infra Architecture Overview

bYoung 2020. 3. 14. 22:21

*  도서 <그림으로 공부하는 IT 인프라 구조>를 보고 정리한 내용입니다

 

1. 인프라(Infra)란?

- 기반, 구조

- 인프라 아키텍쳐 == IT인프라의 '구조'

- 궁극적인, 최적의 아키텍쳐 하나만 있으면 되지 않을까? -> No. 그러나 시스템에 맞는 최적의 설계는 가능

 

2. 집약형 vs 분할형 아키텍쳐

1) 집약형 아키텍쳐

- 하나의 컴퓨터로 모든 처리를 함

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

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

- 단점 : 대형 컴퓨터의 도입 비용과 유지 비용이 큼

            확장성에 한계 존재

2) 분할형 아키텍쳐

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

- 장점 : 낮은 비용으로 시스템 구축 가능

            서버 대수를 늘릴 수 있음 -> 확장성 높음

- 단점 : 대수가 늘어나면 관리 구조 복잡

            한 대가 망가짐 -> 영향 범위 최소화 위해 구조 검토 필요

 (1) 수직 분할형 아키텍쳐

   - 서버별로 다른 역할!

   A. 클라이언트 - 서버형 아키텍쳐

   - 업무 애플리케이션, 미들웨어, 데이터베이스 등의 소프트웨어를  물리 서버 상에서 운영. 이들에 클라이언트가 접속해서 이용

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

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

   - 단점 : 클라이언트 측의 소프트웨어 정기 업데이트 필요

               서버 확장성에 한계

     B. 3계층형 아키텍쳐

     - 프레젠테이션 / 애플리케이션 / 데이터 계층 으로 구성

    - 우리가 일상에서 사용하는 사이트, 사내 시스템 대부분이 이구조 사용

     - 프레젠테이션 계층 : 사용자 입력 받음, 웹 브라우저 화면 표시

     - 애플리케이션 계층 : 사용자 request에 따라 업무처리

     - 데이터 계층 : 애플리케이션 계층의 요청에 따라 데이터 입출력

     - 장점 : 서버 부하 집중 개선

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

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

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

(2) 수평 분할형 아키텍쳐

  - 용도가 같은 서버 늘려나감

  - 수평 분할을 sharding, partitioning이라 부르기도 함

  A. 단순 수평 분할형 아키텍쳐

  - 시스템이 분할됨으로써 전체 처리 성능 향상. 독립된 시스템이 생성되기 때문에 영향X, 독립성 향상

  - 장점 : 확장성 향상, 서로 영향X

  - 단점 : 데이터 일원화해서 볼 수 없음

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

              처리량이 균등하지 않으면 치우침 생김

  B. 공유형 아키텍쳐

   - 일부 계층에서 상호 접속이 이루어짐

  - 장점 : 수평으로 서버를 늘리기 때문에 확장성 향상

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

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

(3) 지리 분할형 아키텍쳐

  - 업무 연속성, 시스템 가용성 높이기 위해 지리적으로 분할

  A. 스탠바이형 아키텍쳐 (High Availability)

  - 물리 서버를 최소 두 대를 주비해 한 대가 고장나면 가동 중인 소프트웨어를 다른 한 대로 옮겨서 운영

  - 보통 때는 failover 대상 서버가 놀고 있음 -> resource 낭비 -> 따라서 양쪽 서버를 동시에 교차 이용하는 경우도 많음

  B. 재해 대책형 아키텍쳐

  - 특정 데이터센터 (사이트) 에 있는 환경에 고장 발생 -> 다른 사이트 환경에서 업무 처리 재개

  - 애플리케이션 최신화, 데이터 최신화가 문제. 동기 처리 필요

  C. 클라우드형 아키텍쳐

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

  - 서버가 가상화되어 있음. -> 사용자는 어느 물리 서버에서 동작하는지 모름

  - SaaS (Software as a Service) : 서버, 애플리케이션 포함한 업무 시스템을 클라우드 서비스 회사가 제공. 고객이 인프라 의식X

  - Paas(Platform as a Service) / IaaS(Infrastructure as a Service) / DBaaS(Database as a Service) -> 서버 일부를 클라우드 리소스로

 

  * 물리 서버 vs 논리 서버

    - 서버란? : 분할형 아키텍쳐에서 이용되는 컴퓨터. 컴퓨터 자체(하드웨어) 혹은 동작하는 소프트웨어를 가리킴

    - 물리 서버 : 컴퓨터 자체를 가리킴

    - 논리 서버 : 소프트웨어 서버(ex. 웹 서버, DB 서버)

 

* 집약, 분할형 양쪽의 장점 취하는 '가상화'

- 물리 서버를 가상화 기능으로 여러 대의 가상 서버로 분할

- 안정성높고, 가상 서버를 다른 환경으로 옮기기 쉬워서 확장성 보장됨

 

* 수직 분할과 수평 분할은 배타적인 관계가 아님. 대부분은 두 가지 함께 채택