[IT 인프라] 서버란?

메린·2022년 12월 19일
0

IT 인프라

목록 보기
1/5
post-thumbnail
post-custom-banner

서버

  • 컴퓨터에게 서버는 클라이언트에게 서비스를 제공한다.

클라이언트 / 서버 시스템

서버는 단독으로 움직이지 않으며 불특정 다수의 컴퓨터에 일방적으로 서비스를 제공하는 것도 아니다.
서버는 클라이언트로부터 요청(Request)를 받아야 비로소 처리를 시작하여 서비스를 제공한다.

서비스 제공 프로세스
1. 클라이언트가 서버에게 어떤 서비스를 요청
2. 서버는 요청에 응답해 처리를 수행
3. 서버는 처리 결과를 클라이언트에게 반환
4. 클라이언트는 처리 결과를 받음

웹브라우저 서비스 제공 프로세스
1. 웹 브라우저가 웹 서버에게 'www.naver.com' 사이트 데이터를 달라고 요청
2. 웹 서버는 해당 사이트의 파일을 찾음
3. 웹 서버는 찾은 파일을 웹 브라우저에게 반환
4. 웹 브라우저는 파일을 받아 네이버 메인을 화면에 표시

이처럼 서버와 클라이언트로 구성된 시스템을 '클라이언트/서버 시스템'이라고 한다.

여러 가지 서버

서버의 역할은 서비스에 의해 정해진다. 우리가 인터넷을 제공받고 있는 모든 정보가 서비스라고 할 수 있다. 예를 들어 매일 사용하는 웹 사이트나 메일 그리고 카카오톡, 페이스북 모두 서비스이다.

서버 소프트웨어

서버 구축은 생각보다 간단하다. 그냥 컴퓨터에 소프트웨어를 설치하고 실행시키면 된다. 결국 서버란 것도 서비스를 제공하기 위한 소프트웨어인 '서버 소프트웨어'가 가지고 있는 기능 자체를 뜻하는 것이다.

서버 소프트웨어는 서비스를 제공하기 위한 기능을 가진 소프트웨어이므로 서비스별로 서버 소프트웨어가 있다고 생각하면 된다. 예를 들어 웹 서비스를 제공하는 소프트웨어는 '웹 서버 소프트웨어'이며, 그것이 작동하고 있는 컴퓨터가 '웹 서버'이다. 메일 서비스를 제공한다면 '메일 서버 소프트웨어', 작동 되는 컴퓨터는 '메일 서버'가 된다.

서버는 결국 '서버 소프트웨어가 제공하는 기능'을 뜻하는 것이다. 따라서 컴퓨터에서 작동하는 응용 프로그램들과 마찬가지로 한 대의 컴퓨터에 여러 개의 서버 소프트웨어를 작동시킬 수도 있다. 규모에 따라 다르겠지만, 각 서비스를 한 컴퓨터에서만 서버로 제공하는 것은 비효율적일 수 있다. 한정된 물리적 자원을 효율적으로 사용하는 것도 서버 구축 및 운영의 핵심 과제 중 하나라고 할 수 있다.

기업에 있어서의 서버

실제로 네트워크 시스템을 구축할 때는 수많은 서버 중 어떤 서버를 선택하는 것이 좋을까? 이 질문에 대한 가장 간단한 답변은 '사용자와 시스템의 목소리에 기울여라'라는 것이다.
결국 모든 해답은 '요구'안에 들어있기 때문이다.
예를 들어 인터넷에 연결하고 싶다는 요구가 있는 경우 도메인명을 IP로 변환하는 서비스를 제공하는 DNS서버가 필요하다. 그리고 모든 사람과 데이터를 공유하고 싶다라는 요구가 있는 경우에는 데이터를 관리할 파일 서버가 필요하다. 사용자와 시스템 요구 사항들을 잘 정의하면 어떤 서버를 구축해야 할지 답이 보일 것이다.

마련할 서버가 정해졌다면 어떤 소프트웨어를 설치할 것인지를 생각해야 한다. 자원하는 운영체제나 프로그램 환경, 비용, 요구환경 등 여러 요소를 다각적으로 고려하여 결정해야 한다. 서버 소프트웨어는 일반적으로 사용하는 것이 미리 정해져 있기 때문에 보통 그 중에서 골라 사용한다.

서버의 운용 관리

구축이 끝난 서버는 서비스를 시작함과 동시에 운용 관리에 들어간다. 운용 관리는 서비스 종료 시까지 계속 이어진다. 서버 운용 관리는 '설정 변경'과 '트러블 대처'라는 두 가지 주요 작업을 수행한다.

설정 변경
서버 관리자는 사용자 요구에 맞춰 서버 설정을 변경해 간다. 서버를 운용 관리하다 보면 반드시 여러 요구사항이 나오기 마련이기 때문이다. 하지만 모든 요구를 다 들어주는 것은 현실적으로 불가능하기 때문에 한정된 설정 항목으로 구성된 요구 사항표 등을 미리 만들어 두고 설정할 범위를 좁혀 두면 나중에 관리하기 더 수월해진다.

트러블 대처
트러블 대처는 '사전 대처'와 '사후 대처'로 나뉜다.
사전 대처란, 트러블을 예방하기 위한 것으로, 여기서는 서버의 각종 상태(CPU, 메모리 사용률, 통신 상태, 오류 로그 등)을 정기적으로 체크한다. 이를 통해 이상이 감지되면 그 상세 내역을 확인하고 경우에 따라 트러블 예방을 위한 서버 교체 등을 실시한다.
사후 대처란, 트러블이 일어난 후의 대처로, 구체적으로 서버 어디에 어떤 장애가 발생했는지를 오류 로그등으로 확인하고 장애에 대한 적절한 처리를 수행한다. 사후 처리는 스피드가 관건이기 때문에 서버 구축 시에 미리 여러 패턴의 장애 테스트를 실시하고 장애 대처 방법을 시뮬레이션 해두는 것이 좋다.

서버와 네트워크

서버와 클라이언트가 서로 통신할 수 있게 다리 역할을 하는 기술이 '네트워크'이다. 모든 서버는 네트워크를 통해 데이터를 제공한다. 서버는 네트워크에 연결되어 있지 않다면 데이터를 제공할 수 없으며, 클라이언트도 마찬가지로 데이터를 받을 수 없게된다.

컴퓨터 네트워크 란, 대표적으로 '인터넷'이 있다.
인터넷이라는 말은 '인터네트워크'로 전 세계에 산재해 있는 네트워크를 연결하는 거대한 네트워크를 뜻한다. 'LAN'도 마찬가지다. LAN은 '로컬 영역 네트워크(Local Area Network)'의 약자로, 기업이나 조직 등 비교적 좁은 범위 안에 존재하는 컴퓨터를 연결하는 네트워크를 뜻한다. LAN케이블은 이러한 LAN을 연결하기 위한 매체이며, LAN스위치는 LAN을 구성하기 위한 네트워크 기기이다.


본문과 그림은 '그림 한 장으로 보는 서버 가이드북'을 참고 했습니다.

profile
I can do it ! 苦盡甘來
post-custom-banner

0개의 댓글