Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- 문자열
- Java
- string
- 깨끗한 코드
- 알고리즘
- data science methodology
- programmers
- softeer
- 데이터사이언스
- Coursera
- 자바
- 코테
- 프로그래머스
- 데이터과학
- AI Mathematics
- 클린코드 파이썬
- 코세라
- Clean Code
- 데이터 사이언스
- 클린코드
- IBM
- 코딩테스트
- 소프티어
- 티스토리챌린지
- Data Science
- 파이썬
- Boostcamp AI
- 오블완
- Python
- 부스트캠프
Archives
- Today
- Total
떼닝로그
[1장] 인프라 아키텍처를 살펴보자 본문
1.1 인프라란 무엇일까?
- 인프라를 우리말로 하면 기반. 생활을 지탱하는 바탕이나 토대.
- 인프라 아키텍처는 IT인프라의 구조.
- 인터넷 검색 시스템, 항공 회사 발권 시스템, 편의점의 계산대 등 모두가 이용 방법이나 사용자가 다르지만 IT 인프라 위에서 동작하고 있음
1.2 집약형과 분할형 아키텍처
1.2.1 집약형 아키텍처

- 하나의 컴퓨터로 모든 처리를 함
- 과거에 모든 업무를 처리하던 대형 컴퓨터는 '범용 장비', '호스트', '메인 프레임' 등으로 불림.
- 주요 업무를 모두 한 대로 처리하기 때문에 장비 고장 등으로 업무가 멈추지 않도록 해야 함
- 컴퓨터를 구성하는 주요 부품을 다중화하여 하나가 고장 나더라도 업무를 계속할 수 있도록 함
- 복수의 서로 다른 업무 처리를 동시에 실행할 수 있도록 유한 리소스 관리. 하나의 처리가 실수로 대량의 요청을 보내더라도 다른 처리에 영향을 주지 않도록 되어 있음.
| 장점 | 단점 |
| 한 대의 대형 컴퓨터만 있으면 되므로 구성이 간단 | 대형 컴퓨터의 도입 비용과 유지 비용이 비쌈 |
| 대형 컴퓨터의 리소스 관리나 이중화에 의해 안정성이 높고 고성능 | 확장성에 한계 |
1.2.2 분할형 아키텍처

- 여러 대의 컴퓨터를 조합해서 하나의 시스템을 구축하는 구조
- 여러 대의 컴퓨터를 이용해 한 대가 고장나도 안정성 담보
- 표준 OS나 개발 언어를 이용하기 때문에 '오픈 시스템'
- 여러 대의 컴퓨터를 연결해서 이용하기 때문에 '분산 시스템'
| 장점 | 단점 |
| 낮은 비용으로 시스템을 구축할 수 있음 | 대수가 늘어나면 관리 구조가 복잡해짐 |
| 서버 대수를 늘릴 수 있기 때문에 확장성이 높음 | 한 대가 망가지면 영향 범위를 최소화하기 위한 구조를 검토해야 함 |
물리 서버와 논리 서버의 차이
- 분할형 아키텍처에서 이용되는 컴퓨터를 특정 역할에 특화된 것을 의미하는 '서버'라고 부름
- 물리 서버는 컴퓨터 자체를 가리키는 것
- 논리 서버는 컴퓨터에서 동작하고 있는 소프트웨어 (DB 서버, 웹 서버)
1.3 수직 분할형 아키텍처
서버별로 다른 역할을 담당하는 수직 분할형 아키텍처
1.3.1 클라이언트-서버형 아키텍처

- 업무 애플리케이션, 미들웨어, 데이터베이스 등의 소프트웨어를 물리 서버 상에서 운영
- 소프트웨어에 '클라이언트' 또는 '단말'이라 불리는 소형 컴퓨터가 접속해서 이용하는 형태
- 클라이언트(PC, 스마트폰, 태블릿) 측에 전용 소프트웨어를 설치해야 함.
| 장점 | 단점 |
| 클라이언트 측에서 많은 처리를 실행할 수 있어 소수의 서버로 다수의 클라이언트를 처리할 수 있음 |
클라이언트 측의 소프트웨어 정기 업데이트가 필요 |
| 서버 확장성에 한계 발생 가능 |
1.3.2 3계층형 아키텍처

- 클라이언트-서버형 아키텍처의 단점 개선
- 프레젠테이션 계층 : 사용자 입력을 받음, 웹 브라우저 화면을 표시함
- 애플리케이션 계층 : 사용자 요청(Request)에 따라 업무 처리
- 데이터 계층 : 애플리케이션 계층의 요청에 따라 데이터 입출력
- 사용자가 웹 브라우저를 통해 시스템에 접속 ➡️ 웹 서버가 요청을 애플리케이션 계층의 애플리케이션 서버(AP 서버)에 전달 ➡️ 데이터 계층의 데이터베이스(DB 서버)에 데이터 요청
| 장점 | 단점 |
| 서버 부하 집중 개선 | 구조가 클라이언트-서버보다 복잡 |
| 클라이언트 단말의 정기 업데이트 불필요 | |
| '처리 반환'에 의한 서버 부하 저감 |
1.4 수평 분할형 아키텍처
용도가 같은 서버를 늘려나가는 방식의 수평 분할형 아키텍처
서버 대수가 늘어나면 한 대가 시스템에 주는 영향력이 낮아져서 안정성 향상되며 전체적인 성능 향상 실현 가능
1.4.1 단순 수평 분할형 아키텍처

- Sharding(샤딩)이나 Partitioning(파티셔닝)이라 부르기도 함
- 거래상으로 멀리 떨어진 시스템, 각 거점이 완전히 독립된 운영을 하고 있는 경우에 적합
- 많은 사용자가 있는 SNS 웹 서비스에서는 사용자 ID를 기준으로 서버를 분할(Sharding)하는 경우가 있음
| 장점 | 단점 |
| 수평으로 서버를 늘리기 때문에 확장성 향상 | 데이터를 일원화해서 볼 수 없음 |
| 분할한 시스템이 독립적으로 운영되므로 서로 영향을 주지 않음 | 애플리케이션 업데이트는 양쪽을 동시에 해 주어야 함 |
| 처리량이 균등하게 분할되어 있지 않으면 서버별 처리량에 치우침 생김 |
1.4.2 공유형 아키텍처

- 일부 계층에서 상호 접속 이루어짐
- 보안이나 관리상 유리함
| 장점 | 단점 |
| 수평으로 서버를 늘리기 때문에 확장성 향상 | 분할한 시스템 간 독립성이 낮아짐 |
| 분할한 시스템이 서로 다른 시스템의 데이터를 참조 가능 | 공유한 계층의 확장성이 낮아짐 |
1.5 지리 분할형 아키텍처
지리적으로 분할하는 아키텍처는 업무 연속성 및 시스템 가용성을 높이기 위한 방식
1.5.1 스탠바이형 아키텍처

- 스탠바이 구성, HA(High Availability) 구성, 액티브-스탠바이 구성
- 물리 서버를 최소 두 대를 준비하여 한 대가 고장 나면 가동 중인 소프트웨어를 다른 한 대로 옮겨서 운영
- 소프트웨어 재시작을 자동으로 하는 구조를 '페일오버(Failover)' (페일, F/O라고도 씀)
- 물리 서버가 고장나지 않을 때는 페일오버 대상 서버(스탠바이)가 놀고 있게 되어 리소스 측면에서의 낭비 발생
- 스탠바이를 따로 두지 않고 양쪽 서버를 동시에 교차 이용(한쪽이 고장 나면 다른 한 쪽이 양쪽을 처리)하는 방식 사용하기도.
1.5.2 재해 대책형 아키텍처

- 특정 데이터 센터(사이트)에 있는 상용 환경에 고장이 발생하면 다른 사이트에 있는 재해 대책 환경에서 업무 처리를 재개하는 재해 복구(Disaster Recovery)
- 1.11처럼 서버 장비를 최소 구성 및 동시 구성으로 별도 사이트에 배치
- 재해 발생 시 1.12와 같이 전혀 다른 사이트에 있는 정보 이용
- 애플리케이션 최신화와 데이터 최신화에서 문제 발생
- 저장소 장비 기능, OS 기능, 데이터베이스 기능 등 동기 처리를 위한 방법은 여러 가지
'개발로그 > 그림으로 공부하는 IT 인프라 구조' 카테고리의 다른 글
| [5장] 인프라를 지탱하는 응용 이론 (0) | 2022.11.14 |
|---|---|
| [4장] 인프라를 지탱하는 기본 이론 (0) | 2022.11.08 |
| [3장] 3계층형 시스템을 살펴보자 (0) | 2022.11.08 |
| [2장] 서버를 열어 보자 (1) | 2022.10.14 |
Comments