인프라 아키텍처
1.1 개념
인프라(infra)는 말 그대로 ‘기반 시설’을, 아키텍처는 ‘구조’를 의미한다.
즉, IT 인프라 아키텍처는 서버, 네트워크 등 하드웨어부터 소프트웨어까지 IT 운영에 필요한 제반 사항들을 말한다.
IT 인프라 구성 요소
- 하드웨어 (HW)
- 운영체제 (OS)
- 네트워크 (Network)
- 미들웨어 (Middleware)
IT 인프라 아키텍처
- 집약형
- 분할형
– 수직분할
– 수평분할
– 지리분할
1.2 집약형과 분할형 아키텍처
1.2.1 집약형 아키텍처
하나의 대형 컴퓨터로 모든 처리를 하는 방식.
‘범용 장비’, ‘호스트’, ‘메인 프레임’ 등으로 불린다.
장점
- 한 대의 대형 컴퓨터만 있으면 됨 → 간단하게 구성
- 대형 컴퓨터의 리소스 관리나 이중화에 의해 안정성이 높고 고성능이다.
단점
- 비쌈 : 대형 컴퓨터의 도입 비용과 유지 비용이 크다.
- 확장성 한계 : 비싸서 여러대를 구비하기 어렵기 때문에 한대로 다 해결해야함.
1.2.2 분할형 아키텍처
여러 대의 소형 컴퓨터를 조합해서 하나의 시스템을 구축하는 구조
‘오픈 시스템’, ‘분산 시스템’ 등으로 불린다.
분할형 아키텍처에서 이용되는 컴퓨터를 ‘서버’라고 한다.
장점
- 저렴 : 낮은 비용으로 전반적인 시스템 구축이 가능
- 확장성 확대 : 상대적으로 저렴하기 때문에 서버 대수를 늘려서 구축 가능
단점
- 서버 대수가 늘어날수록 관리 구조가 복잡해진다.
- 한 대가 망가지면 영향 범위를 최소화하기 위한 구조를 검토해야 한다.
1.3 수직 분할형 아키텍처
분할형에서는 서버 분할 방식으로 고려해야 한다.
서버별로 다른 역할을 담당하는 방식이 ‘수직 분할형 아키텍처’이다.
1.3.1 클라이언트-서버형(C/S) 아키텍처
업무 애플리케이션, 미들웨어, 데이터베이스 등의 소프트웨어를 ‘물리 서버’ 상에서 운영하고,
이들 소프트웨어에 ‘클라이언트’ 또는 ‘단말’이라 불리는 소형 컴퓨터가 접속해서 이용하는 형태.
장점
- 클라이언트 측에서 많은 처리를 할 수 있어서 소수의 서버로 다수의 클라이언트를 처리할 수 있다.
단점
- 클라이언트 측의 소프트웨어 정기 업데이트가 필요하다.
- 서버 확장성에 한계가 발생할 수 있다.
1.3.2 3계층형 아키텍처
클라이언트-서버형을 발전시킨 것으로, ‘프레젠테이션 계층’, ‘애플리케이션 계층’, ‘데이터 계층’의 3층 구조로 분할되어 있다. 대부분의 인터넷/모바일 등 대부분의 시스템에서 3계층 구조를 채용하고 있다.
프레젠테이션 계층
- 사용자 입력을 받는다.
- 웹 브라우저 화면을 표시한다.
애플리케이션 계층
- 사용자 요청(request)에 따라 업무 처리를 한다.
데이터 계층
- 애플리케이션 계층의 요청에 따라 데이터 입출력을 한다.
장점
- 서버 부하 집중 개선
- 클라이언트 단말의 정기 업데이트가 불필요
- ‘처리 반환’에 의한 서버 부하 저감
단점
- 구조가 클라이언트-서버 구성보다 복잡하다.
1.4 수평 분할형 아키텍처
수직 분할형 아키텍처가 서버별로 다른 역할을 하도록 구성한 것이라면, 수평 분할형 아키텍처는 용도가 같은 서버를 늘려 안정성 및 성능을 향상시키기 위한 구조이다.
대부분의 시스템에서는 수직 분할형과 수평 분할형을 함께 사용한다.
1.4.1 단순 수평 분할형 아키텍처
‘sharding(샤딩)’, ‘partitioning(파티셔닝)’등으로 불린다.
같은 기능을 가진 복수의(독립된) 시스템으로 단순히 분할한 구조이다.
장점
- 수평으로 서버를 늘리기 때문에 확장성이 향상된다.
- 분할한 시스템이 독립적으로 운영되므로 서로 영향을 주지 않는다.
단점
- 데이터를 일원화해서 볼 수 없다.
- 애플리케이션 업데이트는 양쪽을 동시에 해 주어야 한다.
- 처리량이 균등하게 분할돼 있지 않으면 서버별 처리량에 치우침이 생긴다.
1.4.2 공유형 아키텍처
단순 수평 분할형과는 달리, 3계층 중 ‘데이터 계층’이 서로 동기화가 되어 어느 쪽에서든 데이터를 참조할 수 있다.
장점
- 수평으로 서버를 늘리기 때문에 확장성이 향상된다.
- 분할한 시스템이 서로 다른 시스템의 데이터를 참조할 수 있다.
단점
- 분할한 시스템 간 독립성이 낮아진다.
- 공유한 계층의 확장성이 낮아진다.
1.5 지리 분할형 아키텍처
업무 연속성 및 시스템 가용성을 높이기 위해 지리적으로 분할한 아키텍처를 말한다.
1.5.1 스탠바이형 아키텍처
‘HA(High Availability, 고가용성) 구성’, ‘액티브-스탠바이 구성’ 등으로 불린다.
물리 서버를 최소 두 대를 준비하여 한 대에 장애가 발생하면 그 즉시 가동중인 소프트웨어를 다른 한 대로 옮겨서 운영하는 방식이다.
이때 소프트웨어 재시작을 자동으로 하는 구조를 ‘페일오버(failover)’라고 한다. 단, 페일오버 대상 서버가 놀고 있는 상태가 되기 때문에 리소스 측면에서 낭비가 발생한다.
1.5.2 재해 대책형 아키텍처
특정 데이터 센터(사이트)에 있는 상용 환경에 고장이 발생하면 다른 사이트에 있는 재해 대책 환경에서 업무 처리를 재개하는 것을 말한다. 단, 애플리케이션 최신화와 데이터 최신화가 문제가 될 수 있다.
1.5.3 클라우드형 아키텍처
3계층형 시스템의 일부 또는 전부가 클라우드 서비스 제공자가 보유하고 있는 물리 서버에서 동작한다.
SaaS(Software as s Service) 모델
- 서버, 애플리케이션을 포함한 업무 시스템을 클라우드 서비스 회사에서 제공.
PaaS(Platform as a Service), IaaS(Infrastructure as a Service), DBaaS(Database as a Service) 모델
- 일반적인 3계층형 시스템을 구성하는 서버의 일부 혹은 전부를 클라우드 상의 리소스로 대체.