[TIL] 1장 인프라 아키텍처를 살펴보자

ki hyun Lee·2022년 4월 14일
0

TIL

목록 보기
12/16

TIL (Today I Learned)

2022.04.14

오늘 읽은 범위

1장. 인프라 아키텍처를 살펴보자

인프라란?

  • 구조 자체는 복잡하지만, 전문가에 의해 관리되고 있어 사용자가 쉽게 이용할 수 있는 특징이 있다.
  • 인터넷 검색 시스템, 편의점의 계산대 등 모두가 IT 인프라 위에서 동작하고 있다.
  • 인프라 아키텍처는 대부분 놀라울 정도로 닮아 있어 서로 거의 같은 구조를 가지고 있다.

집약형 아키텍처

  • 대형 컴퓨터를 이용해서 모든 업무를 처리하는 방식 💻
  • 구성이 간단하다는 장점이 있다. 👍
  • 컴퓨터가 한 대뿐이기 때문에 컴퓨터가 멈추지 않도록 여러 장치가 되어있다. (이중화)
  • 복수의 서로 다른 업무를 동시에 처리하기 위해 유한 리소스 관리가 필요하다.
  • 대형 컴퓨터는 도입 비용과 유지 비용이 비싸다는 단점이 있다. 📈
  • 확장하기 쉽지 않다는 단점이 있다. 👎

분할형 아키텍처

  • 여러대의 컴퓨터를 조합해서 하나의 시스템을 구축하는 아키텍처 💻💻💻
  • 대형 컴퓨터에 비해 가격이 압도적으로 저렴함 📉
  • 여러대의 컴퓨터를 사용하기 때문에 안정성이 압도적으로 👍
  • 컴퓨터를 추가해 전체 시스템의 성능을 향상시킬 수 있음 📈
  • 서버가 많아지면 관리가 힘들어짐 👷‍♀️
  • 한 대의 서버가 고장나면 생기는 영향을 최소화하기 위해 전체 구조를 검토하는 과정이 필요하다.

물리 서버와 논리 서버의 차이

서버

  • 분할형 아키텍처에서 사용되는 컴퓨터
  • 컴퓨터를 가르키는 경우도 있지만 컴퓨터 위에서 구동되는 소프트웨어를 가르키는 경우도 있다.

물리 서버

  • 컴퓨터 자체를 가르키는 경우

    인텔 아키텍처를 사용하는 경우 IA서버라고 부른다

논리 서버

  • 물리 서버 위에서 작동하는 소프트웨어

수직 분할형 아키텍처

  • 분할형 아키텍처의 일종으로 하는 역할에 따라 서버를 분할하는 방식

클라이언트/서버형 아키텍처

  • 물리 서버에서 소프트웨어를 구동하고 클라이언트가 물리 서버에 접속해서 이용하는 방식
  • 클라이언트 측이 전용 소프트웨어를 설치해야함
  • Ex) 주식 판매 시스템
    그래프 표시나 주가 흐름 분석은 클라이언트에서 하고 필요에 따라 서버에서 주가 데이터를 취득
  • 처리당 부하가 낮아 많은 클라이언트가 동시에 요청을 보내도 문제가 🙅‍♀️
  • 클라이언트가 주기적으로 소프트웨어 업데이트를 해줘야 한다는 단점이 있음.
  • 서버에 처리가 집중되면 확정성에 한계가 생길 확률 📈

3계층형 아키텍처

  • 클라이언트/서버형을 발전시킨 버전
  • 프레젠테이션 계층, 애플리케이션 계층, 데이터 계층의 3층 구조로 이루어져 있음

프레젠테이션 계층

  • 사용자의 입력을 받는다.
  • 웹 브라우저 화면을 표시한다.

애플리케이션 계층

  • 사용자 요청에 따라 업무 처리를 한다.

데이터 계층

  • 애플리케이션 계층의 요청에 따라 데이터 입출력을 한다.

장점

  • 서버 부하 집중 개선

단점

  • 구조가 클라이언트/서버 아키텍처보다 복잡하다.

수평 분할형 아키텍처

  • 용도가 같은 서버를 늘려가는 방식 💻💻💻💻💻💻💻💻
  • 서버가 많아지면 안정성과 성능이 향상된다. 📈

단순 수평 분할형 아키텍처

  • 시스템을 단순히 반으로 쪼개는 방식이다. 🥑
  • 분할한 시스템이 독립적으로 운영되므로 서로 영향을 받지 않는다. 🤷‍♀️
  • 분할한 시스템끼리의 데이터를 공유할 수 없다. 🙅‍♀️
  • 분할된 모든 서버의 업데이트를 해주어야만 한다.
  • 처리량이 균등하게 분등되지 않으면 서버별 처리량에 치우침이 생긴다.

공유형 아키텍처

  • 단순 분할형과 달리 일부 계층에서 상호 접속이 이루어진다.
  • 데이터를 한 곳에서 집중적으로 관리하여 보안상의 이점이 있다. 👍
  • 분할한 시스템이 서로 다름 시스템의 데이터를 참조할 수 있다. 👍
  • 분할한 시스템의 독립성이 낮아진다. 👎
  • 공유한 계층의 확장성이 낮아진다. 👎

지리 분할형 아키텍처

스탠바이형 아키텍처

  • 물리 서버를 최소 2개 준비하여 한 대가 고장나면 다른 한 대를 사용하는 방식

    이때 소프트웨어 재시작을 자동으로 하는 구조를 페일오버라고 한다.

  • 물리서버 고장에 대처할 수 있지만, 평소에는 페일오버 대상 서버가 놀고 있는 상태가 되기 때문에 양쪽 서버를 교차 이용하는 경우도 많다.

    가상화 서버를 이용하는 경우 서버상의 소프트웨어 뿐만 아니라 가상 서버별로 다른 물리 서버에 페일오버하는 방식도 가능하다.

재해 대책형 아키텍처

  • 사이트에 고장이 발생하면 다른 사이트에 있는 재해 대책 환경에서 업무 처리를 재개하는 것
  • 매일 갱신되는 데이터를 동기화하기 위한 동기 처리가 필요하다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

평소 IT 인프라에 대한 궁금증이 컷고 AWS, GCP, Azure 같은 클라우드 서비스들이 어떻게 운영되는지에 관한 궁금증이 컸다. 나는 웹 서버 개발에는 자신이 있었지만 개발한 서버를 배포하고 운영하는데 있어서는 젬병이었다. AWS EC2를 사용할 줄도 몰랐고 기본적인 서버의 구조조차 알지 못하였다. 하지만 오늘 이 책을 읽으면서 IT 인프라의 기초 정도는 배운 것 같다. 몇몇 구조들은 내가 사용하는 구조와 매우 유사하여 쉽게 읽을 수 있었던 것 같다. 열심히 공부하여 좋은 개발자가 되기 위해 노력하자!

profile
Full Stack Developer at Team Verse

0개의 댓글