상세 컨텐츠

본문 제목

웹 서버 구축(1) - 준비물 & 개념편 (웹과 홈페이지 동작 방식, 정의 등)

정보/개발

by 전설의백호 2021. 8. 21. 09:33

본문

이번 포스트는 웹 서버 구축 전 알아야 할 개념들에 대해 알아보겠습니다.

 

기존 포스트를 보시면 알겠지만, 전에 멀티 클라우드 통합 모니터링 시스템을 구축한 적이 있었습니다.

당시 웹 서버가 필요해서 구축했었는데, 혹시 관련 내용이 필요하신 분들을 위해 도커나 쿠버네틱스를 이용하지 않고 Nginx나 MairaDB 등 리눅스에 웹 서버 구축에 대해 몇 가지 포스팅해보겠습니다.

참고로 웹 서버 구축에 관해서는 인터넷에서 관련 자료도 많고, 클라우드나 서버 관련 중급자나 리눅스가 익숙하시다 하시는 분들은 필요한 부분만 보시는 것을 추천드립니다.

 

이번 시간은 첫 번째 포스팅으로 초보자를 대상으로 웹 서버를 구축하기 전에 개념에 대해 간단히 알아보겠습니다.

사전 개념에 대해 알고 있거나, 전공자라면 다음 편인 웹 서버 구축(2) - Nginx 편이나, 포스트 맨 아래 시리즈 포스트 바로가기 중 원하는 읽어 주시길 바랍니다.


먼저 웹 서버를 구축하기 위해서 필요한 준비물은 서버, 서버 운영을 위한 운영체제, 서버 접속을 위한 컴퓨터(또는 단말), 도메인(또는 공인 IP), 도메인 연결을 위한 호스팅 업체가 필요합니다.

 

(웹 연결 과정 ⓒ 전설의 백호 아이콘 출처: https://iconmonstr.com/)

 

 준비물들이 어떻게 사용되는지는 위에 웹 연결 과정을 설명해놓은 자료를 보면 알 수 있는데, 여기서는 예시로 현재 전설의 백호 블로그를 접속한다고 가정해 보겠습니다.

 

여러분은 지금 자료에 1. 클라이언트라고 써진 부분에 있으며, 컴퓨터나 스마트폰 같은 기기들로 접속해 있습니다.

이제 블로그 접속을 하려면 주소창에 https://alwt.tistory.com을 입력하거나 포탈에 접속해 전설의 백호를 검색해서 https://alwt.tistory.com 주소를 찾는데, 이때 이 주소를 도메인이라고 부릅니다.

위에 도메인을 확보하고, 인터넷에 도메인을 입력하면 전설의 백호 정보를 가지고 있는 3. 서버(클라우드)를 찾기 위해 여러분이 가지고 있는 기기는 DNS를 찾아가 질의하고 응답을 받게 됩니다.

 

이때 DNS란 일종의 주소록으로 위와 같이 도메인을 어느 IP나 도메인으로 연결시켜야 할지 전부 리스트화 해서 가지고 있는 서버라고 보시면 됩니다. 실제 동작은 더 복잡한데, 일단 기초적인 웹 서버 구축만 할 거라면 DNS란 도메인 주소록이고, 호스팅 업체란 이런 주소록에 도메인을 등록할 수 있는 업체라고만 알고 계시면 됩니다.

(도메인과 관련된 IP 주소 동작 원리에 대해 알고 싶으신 분은 관련 포스트인 IP 주소 관련 포스트(클릭 시 바로 이동)를 참고하시길 바랍니다.

 

그럼 이제 여러분(클라이언트)은 전설의 백호 정보를 가지고 있는 서버(클라우드) 주소를 확보했습니다.

그럼 클라이언트는 직접적으로 해당 서버에 요청하고 응답받아 여러분(클라이언트)이 원하는 정보를 보여주게 됩니다. 예를 들면 지금 보고 있는 포스트를 보여달라고 https://alwt.tistory.com/269라는 주소를 이용해 요청하면 해당 포스트에 속한 글과 그림을 보여주게 됩니다.

(물론 실제 응답과 요청은 더 복잡하니 자세히 알고 싶으신 분들은 관련 포스트인 TCP 관련 포스트(클릭 시 바로 이동)를 읽어보시는 것을 추천드립니다. )

 

이렇게 클라이언트에게 정보를 전달하기 전에 서버끼리도 먼저 통신합니다.

대표적으로 자료에도 있는 것처럼 DB 서버가 있으며, 이 경우는 웹 서버와 DB 서버를 별도로 두어 웹 서버에서는 요청과 응답을 전담하고, DB 서버에 관련 사진이나 영상, 웹사이트 정보 등을 별도로 저장해 관련 서버에서 별도의 응답을 하도록 구축합니다.

이렇게 웹 서버와 DB 서버를 별도로 구축할 경우 응답이 빨라지고, 웹 서버의 트래픽(사용량)을 줄이는 효과를 가지기 때문에 자원이나 비용 절감, 보안 등을 위해 웹사이트나 앱이 어느 정도 규모가 있다면 각자 구축하는 경우가 많습니다.

문제는 이렇게 별도 구축된 서버가 있으면 웹 서버에서 들어온 요청을 별도 서버에도 전달을 해줘야 하기 때문에 서로 연동해줘야 하며, 이 부분은 초심자를 대상으로 한 이번 시리즈에서는 다루지 않을 예정입니다.

 

이렇게 클라이언트와 DNS, 클라이언트와 서버, 서버와 서버 간 통신에 대해 간략히 설명해 드렸습니다만, 혹시 잘 이해가 안 되시는 분이 있을 수 있으니 위에 웹 동작 원리를 3줄 요약하면 아래와 같습니다.

① 클라이언트는 도메인을 가지고 DNS에 질의해 해당 서버 IP를 찾는다.

② 클라이언트는 서버 IP를 가지고 해당 서버에 원하는 정보를 요청, 응답받는다.

③ 이때 서버는 요청받은 정보를 준비하기 위해 서버끼리 통신해, 클라이언트에게 응답한다.


그럼 웹 동작 원리 다음으로 각 준비물에 대해 몇 가지를 짚고 넘어가겠습니다.

 

 첫 번째인 서버는 집에서 라즈베리 파이나 NAS를 이용해서 구축하시거나, 컴퓨터에 프로그램을 깔아서 쓰시는 분들도 있지만, 이 포스트를 읽으시는 분들이라면 대부분 외부 업체를 통해 빌리셨을 거라고 판단됩니다.

빌리는 분들은 주로 아마존 사의 AWS나 구글 사의 GCP, 마이크로소프트 사의 AZURE 같이 종합적인 클라우드 제품을 사용하거나 카페24, 가비아, 닷홈, 블루호스트와 같이 목적을 가진 클라우드 제품 등 이용하실 겁니다.

 이 부분에 대해서는 다루지 않을 예정인데, 서버 선택은 별도 포스팅을 해야 할 만큼 양이 많고, 제품도 많고, 정해진 예산과 필요한 성능이 개인별로 전부 다르기 때문입니다.

그리고 앞으로 게시될 시리즈들은 자체 서버인 온프라미스형이든 임대해 쓰시는 클라우드든 상관없이 공통적인 부분만 기술해 놨기 때문에, 공통된 부분 외 특정 제품 관련 에러가 생길 경우 해당 클라우드사에서 제공하는 기술 문서나 관련 커뮤니티에서 찾아보시길 추천드립니다.

 

 두 번째로 서버를 위한 운영체재가 있습니다.

우리나라에서 일반적인 가정용 및 사무용 운영체재라고 하면 마이크로소프트사의 윈도우 계열을 사용합니다. 하지만 우리나라를 포함한 전 세계적으로 상업적 용도나 서버용 운영체재라고 하면 리눅스 계열의 운영체재를 사용합니다.

리눅스 계열 운영체재를 사용하는 이유에는 여러 가지 기술적, 비용적 사유가 있는데, 대표적인 이유를 몇 가지만 짚어 보겠습니다.

 

먼저 비용 문제가 있습니다. 리눅스는 태생부터 무료였고, 개발 관련해도 오픈 소스임으로 리눅스 계열 OS의 경우 대부분 무료로 제공되고 있습니다. 반면에 윈도우는 유료 운영체재로 지금도 서버에서 사용하려면 유료로 구매해야 하는데 윈도우 서버용 라이선스 비용이 저렴하지는 않습니다.

 

다음으로는 기술적 문제로 리눅스는 멀티 유저가 동시에 사용이 가능합니다. 가정용을 예시로 들면 윈도우로 컴퓨터를 부팅 시 로그인하는 과정을 거치게 됩니다. 이후 다른 사용자로 이용하려면 현재 사용자를 로그오프하고 새로 로그인해야 접속할 수 있었습니다.

리눅스는 현재 사용자에서 로그오프 없이 다른 사용자로 이동할 수 있고, 다수 사용자가 동시에 사용해도 안정적으로 돌아가도록 제작되어 있습니다. 규모가 있어 여러 직원이 동시에 작업하는 회사라면 이 부분도 리눅스를 사용하는데 중요한 이유 중 하나입니다.

 

다른 이유로는 안정적이라는 이유도 있습니다. 업데이트를 예시로 들자면 윈도우는 업데이트 후 종료했다 다시 재부팅하는 경우가 많은데, 리눅스의 경우 종료 없이 업데이트하는 경우가 많으며, 서비스 중단 없이 업데이트가 가능한 경우들도 있어 안정적인 서비스 제공이 가능합니다.

 

(리눅스 계통도 중 일부 발췌, 출저: http://futurist.se/gldt/2012/10/29/gnulinux-distribution-timeline-12-10/)

 

이런 이유들 때문에 대부분 서버에서는 리눅스 계열 운영체제를 사용하며, 리눅스 계열 운영체재에는 슬렉웨어 계열의 SuSE, Porteus 등이 있고, 레드햇 계열의 RHEL, CentOS, Fedora 등이 있으며, 데비안 계열의 Debian, Ubuntu, Linux Mint e 등이 있습니다만 위에 리눅스 계통도 중 레드햇 계열 일부를 발췌한 자료를 보면 알 수 있듯이 종류가 엄청 많기 때문에 다 알아보는 것은 매우 시간낭비입니다.

따라서 몇 가지만 추천해 드리자면 데비안 계열에서 Debian이나 사용자 퍼포먼스를 더 강화한 Ubuntu, 기업에서 많이 사용하는 레드햇 계열의 무료판인 CentOS 등을 추천드리며, 이 외에 자신과 서버에 최적화된 운영체재를 선택하시면 됩니다.

 

 세 번째로는 서버 접속을 위한 컴퓨터(또는 단말)가 필요합니다. 일반적으로 위에 웹 동작 관련 자료에 있는 것처럼 서버에는 서버를 제어하기 위한 컴퓨터가 별도로 있지만 우리가 서버에 있는 곳에서 직접 작업할 수는 없으니 외부에서 인터넷을 통해 접속, 제어해야 합니다. 따라서 각 클라우드 회사에서는 별도의 콘솔(예: 구글 사의 Google Cloud SDK)이나 패널(예: c Panel) 등을 제공하기도 하고, 윈도우의 원격 접속 도구나 Putty, MobaXterm 같이 별도의 접속 도구를 준비하셔야 합니다. 참고로 이번 시리즈에서는 별도의 접속 도구를 이용해 연결합니다.

 

 네 번째로는 도메인이 필요하며, 도메인의 경우 끝이 .com이나 .kr 등으로 끝나는 유명 도메인의 경우 유료입니다. 약 1년에 2만 원선 정도에서 구매할 수 있고, 이벤트나 장기간 구매 등을 이용하시면 1만 원선이나 1만 원 이하로도 구매할 수 있습니다. 

좀 덜 유명한 .tk나 .ml 같이 끝나는 도메인의 경우 무료로 얻을 수는 있는데 크게 추천드리지는 않습니다.

만약 개인 프로젝트이거나 포털 등에 등록하실 사이트가 아니라면 공인 IP로 도메인을 대체할 수도 있습니다. 위에 웹 동작 원리에서 말한 것처럼 결국 IP를 이용해 클라이언트와 서버가 접속하는데 도메인이 없이 공인 IP를 주소창에 입력하면 도메인 대신 DNS에 공인 IP가 등록되어 있기 때문에 서버와 연결할 수 있습니다.

단, 이 경우 IP가 공인 IP여야 하고, 보안이 취약하며, 포털이나 SSL 인증서 발급을 위한 등록이 불가하거나 어렵다는 주의점이 있습니다.

(집이나 서버 이용 중인 많은 분들이 여기서 문제가 발생하는데 모든 IP 주소가 가능한 것이 아닌 꼭 공인 IP만 가능하며, 외부 IP라고 불리기도 합니다. 집의 경우 공유기에서 IP 고정, 포트포워딩 등 몇 가지 설정을 해주셔야 하고 집과 서버 모두 일부 회사나 제품에서 공인 IP를 미지원하거나 유로로 제공할 수 있습니다.)

 

 다섯 번째로는 도메인과 공인 IP를 연결해줄 호스팅 업체가 필요합니다. 유로로 제공하는 곳도 있지만 무료로 제공하는 곳도 많습니다. 단, 무료로 제공하는 곳들은 사전에 잘 알아보시고 이용하시는 것을 권장드리며, 대부분 서버 회사나 도메인 판매하는 곳에서 연계하여 제공하는 경우도 많으니 관리 편의성을 위해 선택하신 곳도 비교 견적에 포함하시는 것을 추천드립니다.


이렇게 웹 동작 원리에 대해 간단히 알아보고, 본격적인 웹 구축전에 필요한 준비물들에 대해 간략하게 알아봤습니다만 정말 큰 부분만 살펴봤기 때문에 서버에는 어떤 프로그램들이 설치되고, 각 프로그램이 어떤 역할을 하는지, 실제로는 어떻게 구동되는지에 대해서는 각각 포스팅을 별도로 올릴 예정이니 아래 연관 시리즈 바로가기를 참고해 주시길 바랍니다.

 

이상 이번 포스트에서는 ' 웹 서버 구축 전 알아야 할 개념들 '에 대해 알아보았습니다.

본 포스트를 포함하여 진행되는 웹 서버 구축 시리즈는 초심자가 대상이고, 온라인으로 진행되는 만큼 많은 부분이 생략되고 큰 부분만 설명되어 있습니다. 따라서 중간중간 궁금하신 부분이나 개별적으로 발생한 에러, 각 제품들이나 버전으로 인해 발생하는 호환성 문제 등은 본 블로그의 다른 포스트를 참고하시거나 인터넷에 존재하는 자료들을 통해 해결할 가능성이 매우 높으니 문제가 발생할 경우 꼭 검색을 먼저 해보시길 바랍니다.

 

- 연관 시리즈 바로가기 -

1. [정보/개발] - 웹 서버 구축(2) - Nginx 설치하기 바로가기

2. [정보/개발] - 웹 서버 구축(3) - MairaDB 설치하기 (데이터베이스 설치 과정, 설정 등) 바로가기

3. [정보/개발] - 웹 서버 구축(3) - 워드프레스 설치하기 (wordpress 다운, 설정 등) 바로가기

 

본 포스트는 광고나 쿠팡 파트너스 등을 통해 소정의 대가를 제공받을 수 있다는 점을 알려드리며, 다음에도 다양한 소식으로 찾아뵙겠습니다.

다음, 네이버, 빙, 구글에서 전설의 백호 집◁ 를 검색하시면 블로그/웹사이트에서 만나 볼 수 있어요!

더보기

댓글 영역