logo
evolution-history-of-server-management.png

2023년 07월 13일

서버관리의 발전과 역사

develop

서버관리의 발전과 역사에 대해서 공부하기 위해 작성한 포스팅이다.

서버를 관리하는 방법은 웹에 대해 조금만 공부해도 계속해서 처음보는 무언가가 튀어 나온다.

현재 회사에서는 쿠버네티스를 사용하고 있는데, 어떻게 해서 쿠버네티스라는 서버 관리 플랫폼이 나오게 되었는지 궁금하여 역사와 발전에 대해 정리하는 시간을 가졌다.

자체 서버의 구축과 운영


image1

자체 서버란 무엇일까

서버 컴퓨터를 구매하고 라우터를 연결하고 인터넷을 연결해서 서버 컴퓨터에 OS를 설치하고...

말 그대로 자체로 서버 컴퓨터를 큰 비용을 지불하고 구매하여 구축하는 것이다.

서버 컴퓨터에 OS를 설치하고 네트워크를 설정하고 애플리케이션을 서버에 업로드하여 실행하는 방식이다.

단점

image2

  1. 사용자가 많아져서 서버 컴퓨터의 성능 업그레이드가 필요하다면 추가로 하드웨어를 구매해서 증설해야한다.
  2. 서버 컴퓨터는 작지 않다. 때문에 서버 컴퓨터를 놓을 공간이 필요하다.
  3. 서버 컴퓨터는 열이 많이 발생하기 때문에 서버 컴퓨터가 있는 공간은 24시간 냉방이 필요하다.

설정 관리 도구를 통한 서버 운영


설정 관리 도구란 무엇인가

주기적으로 실행되어야하는 애플리케이션 또는 애플리케이션의 버전 관리

상태 관리 코드라는 개념을 통해 직관적인 버전의 관리가 가능해지고 이를 통해 상태 관리 파일을 만들어, 보다 쉽게 다른 서버에 애플리케이션을 설치할 수 있게 되었다.

장점

  1. 버전 관리의 편의성 증가했다.
  2. 애플리케이션의 설치 및 구동이 보다 쉬워졌다.

단점

  1. 상태 관리 코드를 통해서는 한 서버에는 하나의 애플리케이션만 설치가 가능

가상 머신을 통한 서버 구축


가상화 개념의 시작. 서버 구축 및 운영의 큰 틀이 바뀌게 된 계기.

image3

가상 머신이란?

하나의 컴퓨터에 가상의 컴퓨터를 만들어, 개별적으로 작동하는 것 같은 사용자 경험을 제공해 주는 것을 말한다.

장점

  1. 가상 컴퓨터의 상태를 저장하여 백업하고 문제가 발생하였을 때 되돌리는 것이 쉬워졌다.
  2. 하나의 물리적인 컴퓨터에 여러개의 애플리케이션을 올리는 것이 간편해졌다.
  3. 가상 컴퓨터를 이미지로 다른 서버에 동일한 사양 및 설정으로 만들 수 있다.

단점

  1. 가상 컴퓨터라지만 컴퓨터이기 때문에 이미지의 용량이 크고 무거워, 시간이 오래걸렸다.
  2. 하나의 컴퓨터에 다량의 OS를 설치하기 때문에 상대적으로 속도가 정말 느리다.

클라우드를 통한 서버 구축 및 관리


공간의 자유, 비용의 절감, 관리 포인트의 최소화

image4

클라우드란

클라우드란 네트워크를 통해 접근할 수 있는 가상화된 서버와 이러한 서버에서 작동하는 프로그램을 제공하는 IT 환경을 말한다.

장점

  1. 서버 컴퓨터를 설치할 공간이 필요하지 않아졌다.
  2. 서버 컴퓨터를 물리적으로 관리할 필요가 없어졌다.
  3. 더 적은 비용으로 서버 구축이 가능해졌다.

PaaS를 통한 서버 운영


PaaS (Platform as a Service): 하드웨어 및 소프트웨어 플랫폼을 제공하는 클라우드 서비스

PaaS란?

한 마디로 플랫폼 기반 서비스이다.

여기서 말하는 플랫폼이란 쉽게 말하자면 서비스라고 생각하면 된다.

기존에는 내가 작성한 코드를 서버에 업로드하고 빌드하여 구동해야 했다면, 플랫폼 기반 서비스를 통해 소스코드를 업로드하는 것만으로 빌드 및 구동, 배포를 지원해주는 것이다.

장점

  1. 빌드 및 구동, 배포와 같은 과정을 생략할 수 있다.

단점

  1. PaaS를 제공해주는 서비스에 맞춰서 소스코드를 작성해야한다.
  2. 원하는 대로 마음껏 커스터마이징이 불가능 하다.

Docker를 통한 서버 관리


보다 쉬운 가상화. 보다 빠른 속도

Docker 란

컨테이너라는 새로운 개념을 기반으로 하는 오픈소스 가상화 플랫폼이다.

가상 머신과 비슷하지만 완전히 다른 개념을 통해 더 빠르고 가벼운 가상화가 가능하다.

장점

  1. 가볍기 때문에 속도가 빠르다.
  2. Docker가 설치되는 환경이라면 Docker로 빌드된 모든 애플리케이션을 실행할 수 있다.

단점

  1. 서비스가 많아질 수록 애플리케이션을 하나하나 따로 실행해줘야 하며, 서비스 검색이 불편해진다.

Kubernetes를 통한 컨테이너 관리


Docker의 번거로움을 해결하기 위한 해결책

Kubernetes란

Docker의 문제점을 해결하기 위해서는 컨테이너 관리 도구를 따로 마련해야했다.

하지만 컨테이너 관리 도구를 사용하더라도 컨테이너 관리 도구를 구축해야한다는 일 거리가 추가되는 것이다.

Kbuernetes는 이를 해결하기 위해 Docker의 문제점을 한번에 잡아서 해결해준 오픈소스 플랫폼이다.

간단하게 말하자면 Docker의 확장판이다.

장점

  1. 서비스의 일괄 처리가 가능하다.
  2. 하나의 컨테이너에 너무 많은 사용자가 생길 경우, 자동으로 컨테이너의 개수가 늘려준다.
  3. 컨테이너가 종료될 경우 자동으로 다시 구동시켜준다.

잘못된 정보의 비판은 언제든 환영입니다.

댓글