인프라 아키텍처란?집약형과 분할형 아키텍처집약형 아키텍처분할형 아키텍처 물리 서버와 논리 서버의 차이수직 분할형 아키텍처클라이언트- 서버형 아키텍처 3계층형 아키텍처수평 분할형 아키텍처 단순 수평 분할형 아키텍처 공유형 아키텍처 지리 분할형 아키텍처스탠바이형 아키텍처 재해 대책형 아키텍처 클라우드형 아키텍처
인프라 아키텍처란?
- IT 인프라 - IT의 기반이 되는 것
- 인프라 아키텍처 - IT 인프라의 구조
집약형과 분할형 아키텍처
집약형 아키텍처
대형 컴퓨터 하나로 모든 업무를 처리하는 형태
구성이 간단함
한 대의 컴퓨터로 업무를 처리하기 때문에 장비 고장으로 업무가 중단이 되면 안됨
한대의 컴퓨터를 구성하는 부품들을 다중화(예: CPU 2개)해서 단일 고장점 방지해 안정성이 높음
유한 리소스 관리를 통해 서로 다른 업무 처리를 동시에 실행(마치 한 대의 컴퓨터 안에 여러 사람이 동거하는 것처럼)
대형 컴퓨터는 도입 비용 및 유지 비용이 큼
확장성에 한계가 있음
- 확장성: 사용자 수의 증대에 유연하게 대응할 수 있는 정도
분할형 아키텍처
- 여러대의 (소형)컴퓨터를 조합해서 하나의 시스템을 구축하는 구조
- 안정성은 대형 컴퓨터 보다 낮으나, 여러 대의 컴퓨터를 이용해 한 대가 고장이 나도 안정성을 보장
- 분할형 아키텍처는 표준 OS나 개발 언어를 이용하기 때문에 '오픈 시스템' 이라고도 부름
- 여러 대의 컴퓨터를 연결해서 이용하기 때문에 '분산 시스템'이라고도 부름
- 낮은 비용으로 시스템을 구축할 수 있음
- 서버 대수를 늘려 성능을 향상 시킬 수 있기 때문에 확장성이 좋음
- 서버 수가 늘어나면 관리 구조가 복잡해짐
- 한 대가 망가지면, 영향 범위를 최소화하기 위한 구조를 검토해야함
물리 서버와 논리 서버의 차이
서버
- 분할형 아키텍처에서 이용되는 컴퓨터
- 컴퓨터 자체(하드웨어)를 가리키는 경우도 있고, 컴퓨터에서 동작하고 있는 소프트웨어를 지칭하기도 함
서버란 용어는 원래 '특정 역할에 특화된 것'을 뜻함
논리적인 서버
- 컴퓨터 내부에서 여러 소프웨어 서버가 작동
- 웹 서버 : 인터넷에 접속시, 사용자 입력 HTML 생성을 담당
- DB 서버 : 대량의 데이터를 저장해서 요청에 따라 데이터를 제공
물리 서버
- 컴퓨터 자체를 가리킴
수직 분할형 아키텍처
- 분할형에서는 서버 분할 방식(역할 분담)을 고려해야함
- 수직 분할형 아키텍처는 역할에 따라 위 또는 아래 계층으로 나뉨
클라이언트- 서버형 아키텍처
업무 애플리케이션, 미들웨어, 데이터베이스 등의 소프트웨어를 물리 서버 상에서 운영
클라이언트(단말) 가 접속해서 이용하는 형태
Client/Server 앞글자를 따서, C/S 라고 부름
클라이언트 측에 전용 소프트웨어를 설치해야함
- 클라이언트에 주로 PC, 스마트폰, 태블릿 등이 단말로 사용됨
예 : 주식 판매 시스템에서, 그래프 표시나 주가 흐름 분석은 PC에서 하고 필요에 따라 서버에서 주가 데이터를 갖고 옴
서버 측은 데이터 입출력만 하면 되기 때문에 처리당 부하가 낮아 많은 클라이언트가 동시에 요청을 보내도 문제가 없음
클라이언트 측에서 많은 처리를 할 수 있어서 소수의 서버로 다수의 클라이언트를 처리 가능
클라이언트 측의 소프트웨어 정기 업데이트 필요
서버에 처리가 집중되면 확정성에 한계가 발생할 수 있음
3계층형 아키텍처
프리젠테이션 계층, 애플리케이션 계층, 데이터 계층 -> 3층 구조로 서버가 분할되어 있음
사용자가 웹 브라우저를 통해 시스템에 접속함
- 예시) 인터넷 검색 시스템
- 사용자가 웹브라우저에 입력한 화면은 웹서버(프레젠테이션 계층)에 전달
- 웹서버는 받은 요청을 애플리케이션 서버(AP 서버, 애플리케이션 계층)에 전달
- AP 서버는 검색 키워드를 바탕으로 무엇을 검색해야 할지 판단 한 뒤, DB(데이터 계층)에 데이터 요청
장점
서버 부하 집중 개선
클라이언트 단말의 정기 업데이트가 불필요
'처리 반환'에 의한 서버 부하 저감
- 모든 처리가 AP 서버나 DB 서버를 사용하지 않아도 됨
- 이미지 파일만 읽는 요청이면, 웹 서버만으로도 처리를 완료해 결과를 반환할 수 있음
단점
- 구조가 클라언트-서버 구성보다 복잡함
수평 분할형 아키텍처
- 수직 분할형 아키텍처 는 각 서버별로 다른 역할을 하도록 시스템을 수직으로 확장하는 구조
- 수평 분할형 아키텍처 는 용도가 같은 서버를 늘려가는 방식
- 서버 대수가 늘어나면 한 대가 시스템에 주는 영향력이 낮아지고 안정성이 향상됨
- 처리를 담당하는 서버 대수가 늘어나면 전체적인 성능 향상도 가능
단순 수평 분할형 아키텍처
수평 분할을 sharding(샤딩) / partitioning(파티셔닝) 이라고 함
장점
- 수평으로 서버를 늘리기 때문에 확장성이 향상됨
- 분할한 시스템이 독립적으로 운영되기 때문에 서로 영향을 주지 않음
단점
- 데이터를 일원화(동시에)해서 볼 수 없음
- 애플리케이션 업데이트는 양쪽에 동시에 해줘야함
- 처리량이 균등하게 분할되지 않으면 서버별 처리량에 치우침이 생김
공유형 아키텍처
일부 계층에서 상호 접속이 이뤄짐
장점
- 수평으로 서버를 늘리기 때문에 확장성이 향상
- 분할한 시스템이 서로 다른 시스템의 데이터를 참조 가능
단점
- 분할한 시스템 간 독립성이 낮아짐
- 공유한 계층의 확장성이 낮아짐
지리 분할형 아키텍처
스탠바이형 아키텍처
스탠바이 구성, HA(High Availability) 구성, 액티브-스탠바이 구성 으로 불림
물리 서버를 최소 두 대를 준비해, 한 대가 고장이 나면 가동 중인 소프트웨어를 다른 한대로 옮겨 운영하는 방식
소프트웨어 재시작을 자동으로 하는 구조를 페일오버(failover) 라고 함
장점
- 물리 서버 고장에 대처 가능
단점
- 보통 페일오버 대상 서버(스탠바이 서버)가 놀고 있는 상태라 리소스 측면에서 낭비 발생
재해 대책형 아키텍처
평상시의 재해 대책 사이트 데이터 반영 : 서버 장비를 최소 구성 및 동시 구성으로 별도의 사이트에 배치 하고 소프트웨어도 사용 환경과 동일하게 설정
재해 발생 시의 이용 : 재해 발생 시 전혀 다른 사이트에 있는 정보를 이용함
재해에 대응하기 위한 재해 복구(disaster recovery) 구성
- 예) 특정 데이터 센터(사이트)에 있는 상용 환경에 고장이 발생하면 다른 사이트에 있는 재해 대책 환경에서 업무 처리를 재개 하는 것
문제점
- 애플리케이션 최신화, 데이터 최신화
- 어느정도 실시간성을 유지해서 사이트 간 동기 처리를 해야함
클라우드형 아키텍처
3계층형 시스템의 일부 또는 전부가 클라우드 서비스 제공자가 보유하고 있는 물리 서버에서 동작
대부분 가상화 기술에서는 서버가 가상적인 존재로 동작함
- 가상화 : 물리 서버를 가상화 기능으로 여러 대의 가상 서버로 분할하는 방식
어떤 계층을 클라우드 상에 배치하는가에 따라 명칭이 달라짐
SaaS(Software as a Service) 모델
- 서버 뿐 아니라 애플리케이션을 포함한 업무 시스템을 클라우드 서비스 회사가 제공
- Gmail 같은 웹 메일 서비스
PaaS(Platform as a Service) / IaaS(Infrastructure as a Service)/DBaaS(Database as a Service) 모델
- 일반적인 3계층형 시스템을 구성하는 서버의 일부 혹은 전부를 클라우드 상의 리소스로 대체
- 물리 서버를 구입하는 것에 비해 비용이 낮고 바로 사용 가능
- 보안 문제나 클라우드 서비스 제공자와의 네트워크 연장 문제 등이 있을 수 있음
'study > IT 인프라' 카테고리의 다른 글
프로세스&스레드, 커널 (0) | 2021.02.04 |
---|---|
Thread의 Process의 메모리 공유에 대한 문제점 (수정 중) (0) | 2020.02.16 |
물리 서버 내부 구조 (3) | 2020.02.14 |