한대의 서버

Numberbeen·2022년 12월 8일
0

DevOps Bootcamp

목록 보기
2/30

Plan -> Code -> Build -> Test -> Release -> Deploy -> Operate

현대의 애플리케이션 배포는 서비스의 형태, 즉 웹 애플리케이션의 형태로 배포된다.
인터넷에 연결되 있기만 하다면 모든 사람들에게 노출(서버)된다.
그렇다면 서버는 어떻게 작동하고, 우리는 서비스에 어떻게 접속하는 걸까?

사용자 관점

사용자 관점에서 서비스에 접속하는 방법은 URL 이라고 불리는 주소를 웹 브라우저에 입력하면 된다.
서비스에 문제가 없는 한 접속이 가능하다. 이러한 과정이 워낙 순식간에 이루어지지만 간략하게 설명하자면 아래와 같다.

https://velog.io/@numberbeen

  1. URL, https://velog.io 도메인 이름을 IP 주소로 변환.
    a. 이 일은 웹 서버가 하는 일이 아니다. 즉 "우리가 직접 만드는 시스템" 이 아니라는 이야기.
    b. 인터넷 서비스 제공자에서 DNS 서비스를 제공.
  1. IP 주소는 인터넷 상에 존재하는 웹 서버에 할당된 유일한 주소이므로 서비스에 접속하게 된다.

서버 관점

앞서 예시를 든 https://velog.io/@numberbeen 에 접속할 경우 사용자가 서버에 도달한 이후는 서버의 몫

  1. 먼저 경로 처리를 한다. 경로란 URL 에서 도메인 이름 이후 등장하는 문자열을 이야기 한다. (위 주소에서는 @numberbeen 으로 경로처리) 웹 서버가 정해논 규칙(라우팅) 에 따라 서버내의 자원을 사용자에게 제공.

  2. 서버 내의 자원은 파일이 될 수도 있고(파일 다운로드를 제공하는 경우), 브라우저에서 해석 가능한 형태의 자원을 지칭할 수 도 있음. 보통 HTML페이지 등 다른 애플리케이션에서 응용할 수 있도록J JSON 과 같은 응답을 제공.

한대의 서버

한 대의 서버 컴퓨터에서 HTML 페이지를 제공하는 것은 별일이 아닌 것처럼 보인다. 하지만 용량이 적은 HTML 페이지를 제공하는 일에 앞서서 다음과 같은 사례를 생각해보자.

  1. 자원이 여러 곳에 나뉘어 있어서, 한대가 아닌 여러대의 컴퓨터 로부터 자원을 수집한 후 이를 한 페이지로 정리해서 보여줘야 하는 경우.

목적에 따라 제공하는 자원이 각기 다른 서버로 분리된 경우. 목적에 따라 자원을 분리하면, 단일 서버에서 생기는 복잡한 문제가 보다 단순해진다. 프로그래밍으로 비유하면, 100줄의 코드 대신, 한자기 일만 하는 20줄의 함수를 다섯번 조합한 형태가 문제 해결이 쉬운것과 비슷

  1. 동시에 수천명이 한 대의 서버에 접속해서 HTML 페이지를 요구할 경우

  2. 서비스를 제공하는 단일 서버가 인프라 문제(하드웨어 고장, 네트워크 유실, 천재지변 등) 로 갑작스럽게 서비스 제공 X

2, 3번의 경우 규모 확장과 관련된 내용이며 이 다음 챕터에서 다룰 예정

  1. 머신 러닝, 빅 테이터 처리 와 같이 여러 대의 컴퓨팅 자원을 이용해 만들어진 결과를 한 페이지로 정리해서 보여줘야 할 경우.

    일하는 컴퓨터(머신 러닝, 빅 테이처 처리용)는 규모 확장을 도입, 요청/응답을 처리하는 컴퓨터를 별도로 구성한 사례.
    서버 확장과 목적의 따른 서버 구성이 함께 도입된 사례이며 일종의 분산시스템이라고 불린다.

profile
내기 이해한 것을 보관하는 곳

0개의 댓글