1장. 인프라 아키텍처를 살펴보자
1-1. 설계와 트레이드오프
아키텍처나 설계 요소에는 반드시 장점과 단점이 공존한다.
장점만 있다면 가장 좋은 것을 취하면 되지만, 단점은 가장 영향력이 적은 것으로 선택하는 것이 어렵기 때문에 반드시 취사선택해야 할 상황이 발생한다.
1-2. IT 인프라의 구성 방식
- 집약형 아키텍처
- 분할형 아키텍처
A. 집약형 아키텍처
대형 컴퓨터 (범용 장비, 호스트, 메인 프레임으로 불림)를 이용해서 모든 업무를 처리하는 형태.
- 시스템 아키텍처라는 관점에서는 하나의 컴퓨터로 모든 처리를 하기 때문에 집약형이라고 할 수 있다.
- 구성이 간단하나, 확장성에 한계가 존재.
B. 분할형 아키텍처
여러 대의 컴퓨터를 조합해서 하나의 시스템을 구축하는 구조.
- 개별 컴퓨터의 안정성이 낮아도 괜찮기 때문에 저가 장비를 이용해서 전체적인 비용을 줄일 수 있음.
- 더 많은 컴퓨터를 이용해서 시스템 전체 성능을 향상할 수 있어서 확장성이 좋음.
- 단 서버 수가 늘어나면 관리 구조가 복잡해지고, 서버가 망가지면 영향 범위를 최소화하기 위해 서버별 역할을 세세하게 검토해야 한다.
물리 서버 vs 논리 서버
하나의 컴퓨터 (물리 서버가) 동작하고 있고, 그 내부에서 여러 소프트웨어 (논리 서버)가 동작하고 있다.
즉, 물리서버 = 컴퓨터, 논리 서버 = DB 서버, 웹 서버, WAS 서버라고 할 수 있다.
B-1. 수직 분할형 아키텍처
서버별로 다른 역할을 담당.
a. 클라이언트-서버형 아키텍처
업무 애플리케이션, 미들웨어, 데이터베이스 등의 소프트웨어를 물리 서버 상에 운영.
이들 소프트웨어에 클라이언트 또는 단말이라는 불리는 소형 컴퓨터가 접속해서 이용하는 형태.
- 클라이언트 측의 소프트웨어 정기 업데이트가 필요
- 서버 확장성에 한계가 발생할 수 있음.
b. 3 계층 아키텍처
클라이언트-서버형을 발전시킨 것.
프레젠테이션 계층, 애플리케이션 계층, 데이터 계층으로 3층 구조로 분할.
프레젠테이션 계층
- 사용자 입력을 받음
- 웹 브라우저 화면을 표시
애플리케이션 계층
- 사용자 요청에 따라 업무 처리를 한다.
데이터 계층
- 애플리케이션 계층의 요청에 따라 데이터 입출력을 한다.
클라이언트-서버형에 비해 특정 서버에 부하가 집중되는 문제가 해결.
클라이언트 업데이트가 필요 없으며, 사용자는 웹 브라우저만 준비하면 된다.
모든 처리가 API 서버나 DB 서버를 이용하지 않아도 된다. (웹 서버만으로도 처리를 완료할 수 있을 경우 결과를 반환할 수 있음)
B-2. 수평 분할형 아키텍처
더 높은 확장성을 실현하기 위해 용도가 같은 서버를 늘려가는 방식.
서버 대수가 늘어나면 한 대가 시스템에 주는 영향력이 작아져서 안정성이 향상된다.
수평 분할을 샤딩 이나 파티셔닝이라 부르기도 한다.
a. 단순 수평 분할형 아키텍처
예를 들어 서울 본사와 부산 지사 시스템이 완전히 분할돼 있는 경우.
서울에서 부산 지사 정보를 알고 싶으면 부산 지사 측 시스템에 접속하면 된다.
- 시스템 전체 처리 성능을 향상할 수 있음.
- 각 시스템의 독립성이 향상
- 양쪽 시스템에 매번 애플리케이션 업데이트를 실시해줘야 함.
- 데이터도 따로 보유하고 있어서, 양쪽 데이터를 동시에 이용할 수 없다.
b. 공유형 아키텍처
공유형에서는 단순 분할형과 달리 일부 계층에서 상호 접속이 이뤄진다.
- 분할한 시스템이 서로 다른 시스템의 데이터를 참조할 수 있음.
C. 지리 분할형 아키텍처
수직, 수평으로 분할하는 아키텍처를 조합함으로써 목적에 적합한 구성을 만들 수 있음.
C-1. 스탠바이형 아키텍처
스탠바이 구성, HA(High Availability) 구성.
물리 서버를 최소 두 대를 준비하여 한 대가 고장 나면 가동 중인 소프트웨어를 다른 한 대로 옮겨서 운영하는 방식.
이때 소프트웨어를 재시작을 자동으로 하는 구조를 Failover (페일오버)라고 한다.
C-2. 재해 대책형 아키텍처
재해애 대응하기 위한 재해 복구 (Disaster Recovery) 구성을 취하는 아키텍처.
특정 데이터 센터에 있는 상용 환경에 고장이 발생하면 다른 사이트에 있는 재해 대책 환경에서 업무 처리를 재개하는 것.
2장. 서버를 열어보자
CPU
명령을 받아서 연산을 실행하고 결과를 반환한다.
메모리
CPU에 전달하는 내용이나 데이터를 저장하거나 처리 결과를 받는다.
메모리에 저장되는 정보는 영구성이 없다. (서버를 재시작하면 없어지는 정보임, 휘발성)
이런 결점에도 메모리를 사용하는 이유는 메모리 액세스가 매우 빠르게 이뤄지기 때문.
- 데이터 저장시에 물리적인 모터 등을 구동하는 것이 아니라 전기적인 처리만으로도 데이터를 저장하기 때문.
메모리 계층 구조
영역이 여러 단계로 나누어져 있는 이유는 액세스 속도 때문이다.
메모리는 다단계 구조를 가지고 각각의 액세스 속도에 맞게 사용되기 때문에 CPU의 데이터 처리 속도를 줄일 수 있다.
I/O 장치
주로 장기 저장 목적의 데이터 저장 장소로 사용.
메모리는 전기가 흐르지 않으면, 데이터가 사라지지만, 디스크는 전기가 없어도 데이터가 사라지지 않는다.
HDD 내부에는 자기 원반이 여러 개 들어 있으며, 고속으로 회전해서 읽기/쓰기 처리를 한다.
- 이 회전 구조 때문에 속도가 물리 법칙에 좌우되며, 메모리처럼 순식간에 액세스할 수 없다.
SSD는 메모리와 같이 반도체로 만들어졌지만, 전기가 없어도 데이터가 사라지지 않는다.
버스
서버 내부에 있는 컴포넌트들을 서로 연결시키는 회선.
'공통 > 인프라 & 시스템 설계' 카테고리의 다른 글
[그림으로 공부하는 IT인프라 구조] 7장 정리 (0) | 2021.05.20 |
---|---|
[그림으로 공부하는 IT인프라 구조] 6장 정리 (0) | 2021.05.18 |
[그림으로 공부하는 IT인프라 구조] 5장 정리 (0) | 2021.05.17 |
[그림으로 공부하는 IT인프라 구조] 4장 정리 (0) | 2021.05.16 |
[그림으로 공부하는 IT인프라 구조] 3장 정리 (0) | 2021.05.16 |