[Docker] Server와 Server 운영 방법

yoonthegarden·2024년 4월 12일
0

Docker

목록 보기
1/9

제목 앞에 도커를 둔 이유는 .. 가상화 기술을 학습하기 전 서버에 개념을 정리해두는 것이 좋기 때문이다. 서버와 더불어 서버 운영 방법에는 어떤 것이 있는지도 간단하게 정리해보려 한다.

서버란?

서버는 IT 산업에서 쉽게 접할 수 있는 용어이다. 서버 프로그래머, 서버 운영, 서버 설치 등 다양한 곳에서 사용 된다.
한마디로 정의되면 하드웨어와 그 하드웨어에서 실행중인 소프트웨어까지 모두 포함하는 단어이다.
하드웨어 기계만 두고도, 소프트웨어만 있을 때도 다 서버라 부르는 경우가 있기에 문맥에 따라 이해하면 된다.

서버의 전원이 꺼졌습니다 → 하드웨어 서버
서버 설치 파일을 다운받았습니다 → 소프트웨어 서버

위처럼 서버는 상황과 환경에 따라 의미가 다르다.
일반적으로는 하드웨어에서 실행 중인 소프트웨어 라고 생각하면 된다.


Server의 어원을 살펴보자.Serve 라는 단어가 무언가를 제공해 준다는 것을 의미한다.
Service, Serving, Serve.. → 따라서 Server ‘제공하는 주체’이다.
→ 서버는 항상 어떤 요청에 대한 결과를 제공해 준다.
(서버에 무언가를 요청하는 주체를 클라이언트라고 한다.)

클라이언트가 서버에게 요청을 보내면 물리적인 하드웨어를 통해 소프트웨어로 전달되고 소프트웨어가 요청에 해당하는 실제 기능을 수행한 다음에 클라이언트에게 원하는 결과를 응답해준다.
it 산업에서 애플리케이션을 운영하는 근본적인 이유도 사용자에게 어떤 서비스를 제공하기 위해서이다.

어떤 서비스를 제공 하는지는 실행 중인 소프트웨어에 따라서 달라지겠지만 클라이언트의 요청에 대한 결과를 제공해주는 근본적인 역할은 모든 서버가 동일하다.

실제 기업에서 운영하는 서버의 종류

서버는 서버에서 어떤 소프트웨어가 실행 중 인지에 따라 다양한 서버로 분류할 수 있다. 다양한 서버가 있지만 우리는 기업에서 운영하는 서버의 종류에 대해서 알아보려 한다.

  • 파일 서버
    파일 공유 소프트웨어가 설치되어 있는 서버이다.
    → 파일 공유하는 기능을 클라에게 제공한다.
  • DB 서버
    데이터를 관리하는 DBMS가 설치된 서버이다.
    → 데이터 저장하는 기능을 클라에게 제공한다.
    → 오픈소스인 MySQL이나 PostgreSQL 사용이나, 오라클 DB를 구매해 설치해 사용 가능하다.

위와 같은 서버들은 이미 개발되어 있는 소프트웨어를 다운 받아서 실행시키는 형태이다.(우리가 웹 브라우저를 사용하기 위해 크롬을 다운받아 쓰는 것과 비슷하다.)또한, 다운받은 소프트웨어는 오픈 소스 소프트웨어를 사용할 수도, 유로 라이선스를 구매해 사용할 수도 있다.

  • 웹 서버 (WEB)
    클라이언트가 웹 브라우저를 통해서 HTTP 요청을 보내면 정적인 웹 페이지를 제공해주는 서버이다.
    주로 HTML, JS, CSS 등 프론트엔드 개발자가 개발한 파일들이 사용된다.
    웹 서버의 종류에는 Nginx, Apache HTTP Server, LiteSpeed .. 가 있다.
  • 웹애플리케이션 서버(WAS)
    Java와 같은 프로그래밍 언어로 개발된 백엔드 애플리케이션을 실행하는 서버이다.
    → 소스 코드를 통해 개발된 소프트웨어를 실행시키는 경우 웹서버나 웹플리케이션서버가 있다.

이 외에도 프록시 서버, 메일 서버 등 다양한 서버가 있지만 기업에서 운영하는 대표적인 서버로는 4가지로 볼 수 있다.

서버 운영 방법

엔터프라이즈 환경에서는 아주 많은 양의 서버를 운영해야한다. WEB, WAS, DB.. 등
이렇게 많은 양의 서버를 운영하는 방법으로 크게 3가지를 뽑을 수 있다.

  1. 베어메탈 (Baremetal)
    베어메탈 이라는 용어는 하드웨어 상에 어떤 소프트웨어도 설치되어 있지 않은 상태를 말한다. 물리 서버를 그대로 제공해주는 것이다.
    일반적으로 컴퓨터를 구입하고 프로그램을 실행시키는 방식과 비슷하다. 서버를 하나 구입한 뒤 서버 위에 OS를 설치하고 여러 개의 소프트웨어를 실행시키는 방식이다.

→ 따라서 기업에서 운영하기엔 비효율적인 경우가 많다.

  1. 하이퍼바이저 (Hypervisor)
  2. 컨테이너 (Container)

여기서 2,3 번은 하나의 큰 서버를 열 개의 논리적인 작은 서버로 쪼개서 사용하는 가상화 기술을 사용한 방식이다. 이 중에서도 도커는 컨테이너 방식에 해당한다.

2,3은 가상화 기술을 사용한 방식인데 이 두개는 가상화 기술과 함께 다음 포스팅에서 자세히 다뤄볼 예정이다!

레퍼런스

  • [2024 NEW] 개발자를 위한 쉬운 도커
profile
https://garden-ying.tistory.com/

1개의 댓글

comment-user-thumbnail
2024년 6월 23일

정주행 시작했습니다 글이 멋지네요 ~

답글 달기