본 내용은 그림으로 공부하는 IT 인프라 구조의 책 내용이 포함되어 있습니다.
인프라란 무엇일까?
전기,수도, 가스 등 가정에서 이용하는 것이나 지하철, 버스처럼 공공의 목적의 인프라를 떠올릴 수 있을 것이다.
인프라를 우리말로 하면 '기반'이라는 뜻으로, 생활을 지탱하는 바탕이나 토대란 의미를 가진다. 인프라 구조 자체는 복잡하지만, 전문가에 의해 관리되고 있어서 사용자는 그 구조를 이해하지 않고도 간단히 이용할 수 있다는 특징이 있다.
인프라 아키텍처란 무엇일까?
아키텍처란, 직역하면 구조라는 의미다. ex 기차
기차에도 다양한 종류가 있지만, 그 구조 자체는 거의 같다. 전기로 움직이거나 여러 객체가 연결돼 있고, 내부에는 좌석이나 손잡이가 있다. 기차의 구조 또는 아키텍처가 확립되고, 이미 공통화돼 있다.
인프라 아키텍처는 IT 인프라의 구조를 의미한다. 인터넷 검색 시스템이나 항공 회사 티켓 발권 시스템, 편의점의 계산대 등 모두가 이용 방법이나 사용자가 다르지만 IT 인프라 위에서 동작하고 있다. 인프라 아키텍처는 실은 놀라울 정도로 닮아 있어서 거의 같은 구조를 가진 채 움직이고 있다.
궁극의 아키텍처와 최적의 아키텍처는 존재하는 것인가?
대답은 NO이다. 아키텍처나 설계 요소에는 반드시 장점과 단점이 공존한다. 장점만 있다면 가장 좋은 것을 취하면 되지만, 단점은 가장 영향력이 적은 것으로 선택하는 것이 어렵기 때문에 반드시 취사선택해야 할 상황이 발생한다.
그중 가장 제약이 많은 것이 시스템 도입 비용이다. 100만명이 사용하는 대규모 웹 서비스의 예산과 사내에서 10명이 사용하는 시스템의 예산은 차이가 크다. 하지만 중요도라는 관점에서는 이용자에겐 양쪽 시스템이 다 중요하다. 많은 현장에서 비용 제약이 심해지고 있는 가운데, 시스템의 가장 중요한 장점을 살리고 단점을 최소화하도록 설계하는 것이 중요하다.
집약형과 분할형 아키텍처
IT 인프라은 컴퓨터로 구성된다. 기본적인 구성 방식에는 집약형과 분할형이 있다.
집약형 아키텍처
과거 IT 시스템의 여명기에는 대형 컴퓨터를 이용해서 모든 업무를 처리해야 하는 형태가 대부분이였다.
대형 컴퓨터는 범용 장비, 호스트, 메인 프레임 등으로 불렀다. 시스템 아키텍처라는 관점에서는 하나의 컴퓨터로 모든 처리를 하기 때문에 집약형이라고 할 수 있다. 집약형의 최대 장점은 구성이 간단하다는 것이다.
집약형 아키텍처에서는 해당 기업의 주요 업무를 모두 한 대로 처리하므로 장비 고장 등으로 업무가 멈추지 않도록 여러 고민을 한다.
컴퓨터를 구성하는 주요 부품은 다중화 되어 있어서 하나가 고장 나더라도 업무를 계속할 수 있다.
복수의 서로 다른 업무 처리를 동시에 실행할 수 있도록 유한 리소스 관리를 한다.
이를 통해서 하나의 처리가 실수로 대량의 요청을 보내더라도 다른 처리에 영향을 주지 않도록 되어 있다.
한 대의 컴퓨터라고 하지만, 그 안에 마치 여러 사람이 동거하고 있는 모습이라 할 수 있다.
많은 기업에서 아직 사용중이며, 기간 시스템이라 불리는 기업 내 핵심 업무 시스템에서 이용하고 있는 경우가 많다.
ex) 은행이라면 계정 시스템이 여기 해당한다.
대형 컴퓨터는 도입 비용 및 유지 비용이 큰 경향이 있다. 대형 컴퓨터의 파워가 부족하면 다른 한 대를 별도로 구매해야 해서 비용이 매우 많이 들어, 확장성에도 한계가 존재한다는 단점이 있다. 현재는 가격이 싸고 확장성이 높은 분할형이 주로 사용되고 있다.
장점
- 한 대의 대형 컴퓨터만 있으면 되므로 구성이 간단하다.
- 대형 컴퓨터의 리소스 관리나 이중화에 의해 안정성이 높고 고성능이다.
단점
- 대형 컴퓨터의 도입 비용과 유지 비용이 비싸다.
- 확장성에 한계가 있다.
분할형 아키텍처
분할형 아키텍처는 여러 대의 컴퓨터를 조합해서 하나의 시스템을 구축하는 구조다.
대형 컴퓨터는 안정성이 높고 고성능이지만, 현재는 소형 컴퓨터라도 충분한 성능을 낼 수 있다.
대형 컴퓨터와 비교해서 소형 컴퓨터 구입 비용이 압도적으로 저렴하다.
안정성도 한 대의 컴퓨터만으로는 대형 컴퓨터에 미치지 못하므로, 여러 대의 컴퓨터를 이용해 한 대가 고장 나도 안정성을 담보하고 있다.
분할형 아키텍처는 표준 OS나 개발 언어를 이용하기 때문에 오픈 시스템이라고 부른다. 여러 대의 컴퓨터를 연결해서 이용하기 때문에 분산 시스템이라고 부르는 경우도 있다.
분할형의 장점은 개별 컴퓨터의 안정성이 낮아도 괜찮기 때문에 저가 장비를 이용해서 전체적인 비용을 줄일 수 있다.
더 많은 컴퓨터를 이용해 시스템 전체 성능을 향상시킬 수 있어서 확장성이 좋다는 특징도 가진다.
서버 수가 늘어나면 이를 운영하기 위한 구조가 복잡해지는 경향이 있다. 서버가 망가지면 영향 범위를 최소화하기 위해 서버별 역할을 세세하게 검토해야 한다. 서버를 분할하는 일반적인 방식으로는 수직형과 수평형이 있다.
장점
- 낮은 비용으로 시스템을 구축할 수 있다.
- 서버 대수를 늘릴 수 있어서 확장성이 높다.
단점
- 대수가 늘어나면 관리 구조가 복잡해진다.
- 한 대가 망가지면 영향 범위르 최소화하기 위한 구조를 검토해야 한다.
물리 서버와 논리 서버의 차이
분할형 아키텍처에서 이용되는 컴퓨터를 '서버'라고 한다. 서버라는 용어는 컴퓨터 자체(하드웨어)를 가리키는 경우도 있고, 컴퓨터에서 동작하고 있는 소프트웨어를 가리키는 경우도 있다.
서버라는 용어는 원래 특정 역할에 특화된 것을 의미한다.
인터넷에 접속했을 때 사용자 입력 및 HTML 생성을 담당하는 것은 서버에서 동작하는 소프트웨어인 '웹 서버'다. 대량의 데이터를 저장해서 요청에 따라 데이터를 제공하는 것은 데이터베이스 기능을 제공하는 DB 서버다.