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

2021. 9. 28. 11:54이론 공부

"그림으로 공부하는 IT인프라 구조" 라는 책을 보며, 정리해보려고 합니다.

 

본문에 들어가기에 앞서, 인프라는 '기반' 이라는 뜻으로, 아키텍처는 '구조' 라는 뜻으로 사용된다.

집약형 아키텍처

- 하나의 컴퓨터로 모든 처리를 하기 때문에 집약형 이라고 불리며, 최대 장점은 구성이 간단하다는 것이다. ( 때문에 보통은 대형 컴퓨터를 사용한다. )

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

- 대형 컴퓨터의 도입 비용과 유지 비용이 크다.

- 확장성에 한계가 있다 ( 대형 컴퓨터를 1개 도입하게 되면, 추가하는 것에 많은 비용이 필요하다. > 공간, 유지비용 등)

 

분할형 아키텍처

- 집약형 아키텍처가 하나의 대형 컴퓨터를 사용하는 것 이었다면, 분할형 아키텍처는 여러개의 소형 컴퓨터를 사용하는 것이다. 이 때, 소형 컴퓨터들은 연결되어 있어, 서로 데이터를 교환 한다.

- 분할형 아키텍처를 이용하는 것은 원가 절감을 위해서 이다. ( 하나의 대형 컴퓨터에 비해 최대 100배 저렴할 수 있다 )

- 단. 안정성은 집약형 아키텍처에 비해 떨어지게 되니, 여러 개의 소형 컴퓨터로 이를 보완 한다.

- 서버 대수를 늘릴 수 있기 때문에, 확장성이 높다. 하지만, 대 수가 늘어나면 관리 구조가 복잡해 진다.

- 한 대가 망가지면 영향 범위를 최소로 하기 위한 구조를 검토해야 한다.

 

물리 서버와 논리 서버

- 물리 서버는 하드웨어 ( 컴퓨터 자체 ) 를 의미 한다. 

- 논리 서버는 소프트웨어 ( 컴퓨터의 프로그램 ) 을 의미 한다.

 

수직 분할형 아키텍처

- 분할형 에서는 서버 분할 방식.  즉 역할 분담을 고려해야 한다. (각각의 서버가 다른 작업을 할지, 비슷한 작업을 할지)

- 수직 분할형 아키텍처는 서버 별로 다른 작업을 수행 한다. 역할에 따라 '위' 또는 '아래' 계층으로 나누어 진다.

 

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

- 수직 분할형 아키텍처의 한 예이다.

- '물리 서버' 를 두고, '소형 컴퓨터(단말)' 을 사용해서 접속하는 형태 이다.

- 업무 애플리케이션 갱신 시 마다 클라이언트 측 소프트웨어도 업데이트를 하여야 한다. ( 대부분의 사람들은 업데이트 발생 시 수행하지 않고, 미룬다. 그래서, 시스템 위험요소가 될 수 있다.)

- 서버에 처리가 집중되면 확장성에 한계가 발생할 가능성이 있다.

- 위의 단점들을 개선하려고 한 것이 3계층형 이다.

 

3계층형 아키텍처

- 수직 분할형 아키텍처의 한 예이다.

- 프레젠테이션 계층 , 애플리케이션 계층 , 데이터 계층 구조로 분할되어 있어 3계층형 이라고 부른다.

- 프레젠테이션 계층 : 사용자 입력을 받는다 , 웹 브라우저의 화면을 표시 한다.

- 애플리케이션 계층 : 사용자 요청(Request)에 따라 업무를 처리 한다.

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

 

     장점 : 서버 부하 집중 개선 , 클라이언트 단말의 업데이트 불 필요 , '처리 반환'에 의한 서버 부하 저감

     단점 : 구조가 클라이언트-서버형 아키텍처의 구성보다 복잡하다.

 

- 일상에서 사용하고 있는 인터넷 사이트, 모바일 사이트, 사내 업무 시스템의 대부분이 이 3계층형 아키텍처 구조를 사용하고 있다.

 

수평 분항혈 아키텍처

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

- 서버 대수가 늘어나면 한 대가 시스템에 주는 영향력이 낮아져서 안정성이 향상 된다.

- 처리를 담당하는 서버 대수가 늘어나면, 전체적인 성능 향상도 실현할 수 있다.

- 수직 분할형과 수평 분할형은 배타적인 관계가 아니라, 대부분이 두 방식을 같이 채택하고 있다.

 

단순 수평 분할형 아키텍처

- 시스템 별로 가로로 분할 되어 있는 것을 수평 분할이라고 한다.

ex) 서울과 부산의 매출 정보 / 서울측은 서울의 매출 정보만. 부산측은 부산의 매출 정보만 가지고 있다.

 

장점

- 수평으로 서버를 늘리기 때문에, 확장성이 향상된다.

- 분할한 시스템이 독립적으로 운영되므로, 서로 영향을 주지 않는다.

 

단점

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

- 애플리케이션 업데이트는 양쪽을 동시에 해주어야 한다.

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

 

공유형 아키텍처

- 단순 분할형 과는 달리 일부 계층에서 상호 접속이 이루어진다.

ex) 서울과 부산의 매출 정보 / 서울측에서 부산의 매출 정보를 확인 할 수도 있다. 역 성립

 

장점

- 수평으로 서버를 늘리기 때문에 확장성이 향상된다

- 분할한 시스템이 서로 다른 시스템의 데이터를 참조할 수 있다.

 

단점

- 분할한 시스템 간 독립성이 낮아진다.

- 공유한 계층의 확장성이 낮아진다.

 

지리 분할형 아키텍처

스탠바이형 아키텍처

- 물리 서버를 최소 2대 이상 준비해서, 한 대가 고장난다면, 가동 중인 소프트웨어를 다른 물리 서버에 옮겨서 가동하는 구조 이다. 이 때 소프트웨어를 자동으로 재시작하는 구조를 '페일오버(페일, FO)' 라고 부른다.

- 물리 서버가 아닌 가상 서버를 사용하고 있을 경우, 서버 상의 소프트웨어 뿐만 아니라 서버별로 다른 물리 서버에 페일오버 하는 방식도 선택될 수 있다.

 

재해 대책형 아키텍처

- 특정 데이터 사이트에 있는 상용 환경에 고장이 발생한다면, 다른 사이트에 있는 재해 대책 환경에서 업무 처리 하는 구조를 말한다.

- 데이터는 사이트 간에 어느정도 실시간성을 생각해서 동기화 하여야 한다.

 

클라우드형 아키텍처

- 서버가 가상화 되어 있어서, 사용자는 물리 서버가 어디에 있는지 알 수 없다.

- 사용자 측에서 보면, 일반 서버처럼 작동하고 있다.

- 물리 서버를 구입하는 것에 비해 비용이 낮고, 바로 사용할 수 있다는 장점이 있다.

- 보안 문제나 클라우드 서비스 제공자와의 네트워크 연장 문제가 있을 수 있다.

 

이렇게 아키텍처에 나와있는 부분은 정리를 해보았습니다.

처음 읽었을 때는 무슨 말인지 잘 몰랐으나, 계속 똑같은 부분을 여러번 읽고, 정리를 해보니까 좀 알게 되는 것 같네요

 

그냥 이런 구조가 있구나 정도로 생각해주면 될 것 같습니다.

IT 인프라를 설계할 때 프로젝트 특성을 생각해서 어떤 구조로 만들지 결합할지 등등을 고려하라고 나와 있는 듯 싶습니다.

 

책에는 오라클DB 의 구조 등에 예를 들면서 나와 있습니다.