병훈's Blog

서버 호스팅 강의 01 - DNS 서버, URL, localhost, 공공 서버, 웹 서비스 구조 본문

Computer/Server

서버 호스팅 강의 01 - DNS 서버, URL, localhost, 공공 서버, 웹 서비스 구조

thdqudgns 2023. 12. 24. 11:03

 

지금부터 네이버나 아마존처럼 어느 곳에서나 접속 가능한 웹 사이트를

구축하는 방법에 대해서 알아보겠습니다.

네트워크와 인프라에 대한 지식이 조금은 필요합니다.

필요할 때마다 설명할 것이니 걱정하지 마세요.

 

웹 브라우저에서 네이버나 아마존을 검색했을 때 어떤 과정을 거쳐서 화면이 나오는 걸까요?

 

 

먼저 웹 사이트에 접속하기 위해 필요한 것은 IP 주소입니다.

그러나 모든 IP 주소를 외우기 어렵습니다.

그래서 도메인 네임 서버에 도메인 이름과 이에 대응하는 IP 주소를 저장하고,

우리는 도메인 이름을 통해 편하게 웹 사이트에 접속합니다.

 

우리가 도메인을 입력하면 웹 브라우저는 인터넷을 통해 DNS서버에서 도메인에 해당하는 IP를 받아오고,

그 후에 IP에 맞는 서버를 찾아갑니다.

서버에 우리의 요청이 도착하면, 서버는 요청에 합당한 Data를 요청자의 IP로 응답합니다.

 

한 번 터미널에 tracert naver.com”, “nslookup naver.com” 이라고 입력해보세요.

NaverIP주소를 알 수 있습니다.

 

 

URL과 도메인의 차이와 DNS 서버 탐색 순서에 대해서 알고 넘어가겠습니다.

 

우리가 흔히 부르는 URL을 보면, www부터 com까지를 도메인이라 부릅니다.

URL은 프로토콜 + 도메인 + 경로 + 파라미터 + 프래그먼트가 합쳐진 것입니다.

이제 URL에 도메인이 포함되어 있고, 둘이 다르다는 것을 아시겠죠?

 

도메인은 특이하게도 점 으로 구분되어 있고, 뒷부분이 우선순위가 높습니다.

그래서 DNS 서버에서 도메인에 해당하는 IP를 찾을 때 뒷부분부터 검색해 나갑니다.

 

.com .kr 같은 주소를 많이 봐오셨을 텐데요.

이 최상위 도메인은 사용목적, 국가, 기관 등에 따라 분류됩니다.

이를 통해 어느 나라의 사이트인지, 혹은 어떤 용도의 사이트인지 먼저 구분하는 것입니다.

 

예를 들어 www.sub.tistory.com 에서 .comcommercial 이라는 단어로, 광고, 상업의, 통상의 라는 뜻입니다.

 

  “아 최상위 도메인이 com이니까 com 먼저 찾아보자

  “상업적인 사이트 중에서 tistory를 찾아볼까?”

  “그리고 sub를 찾아볼까

 

이 순서대로 도메인에 대응되는 IP를 찾아 나가는 것입니다.

 

이렇게 한 번 찾아낸 도메인-IP주소 데이터는 브라우저 캐시와 컴퓨터의 Host 파일에 저장합니다.

이를 통해 똑같은 도메인에 다시 접속할 때에는 브라우저 캐시를 확인하여 IP 주소를 반환 받고,

없으면 Host 파일을 탐색하여 IP 주소를 반환 받고,

없으면 그제서야 DNS서버를 방문합니다.

 

즉 우선순위는 브라우저 캐시 > Host 파일 > DNS 서버 입니다.

 

 

이제 개발자 관점에서 서버를 볼게요.

사용자에게 보여지는 화면을 개발하는 Front-end 혹은

서버의 로직을 개발하는 Back-end 을 담당하여 웹이나 앱을 만들죠.

 

 

내 컴퓨터에서 프로그램을 만들어 실행하면 localhost로 실행이 됩니다.

 

 

그러나 로컬 호스트로 실행되는 프로그램은 나만 확인할 수 있습니다.

다른 사람들은 확인하지 못하죠.

 

내가 만든 프로그램을 다른 사람들에게 보여주고 싶고

다른 사람들이 사용할 수 있도록 만들고 싶은데 어떻게 해야 할까요?

다른 사람들이 접속할 수 있는 서버를 구축하면 됩니다.

 

서버는 요청에 대한 응답을 주는 컴퓨터입니다.

이 컴퓨터는 내가 갖고 있는 컴퓨터를 사용할 수도 있고,

클라우드 컴퓨팅 기술을 사용할 수도 있습니다.

 

만약 내가 직접 컴퓨터로 서버를 구축하겠다고 한다면,

서버용 컴퓨터를 구매하고, 서버 OS를 설치하고, 내부 프로그램을 설치하고, 네트워크도 고려해야 합니다.

클라우드 컴퓨팅 기술을 사용해도 고려사항들은 비슷하지만, HW를 직접 다룰 필요는 없습니다.

 

저는 클라우드 컴퓨팅 기술을 활용하여 서버를 구축하는 방법을 알려드리겠습니다.

 

 

앞으로 알려드릴 내용을 축약한 그림입니다.

클라우드 컴퓨팅 서비스를 활용하기 위한 AWS Lightsail

코드를 관리하는 데 활용되는 Git

서버 컴퓨터의 격리된 환경에서 프로그램을 실행하는 Docker

지속적 통합(CI)과 지속적 배포(CD)를 담당할 Jenkins

웹 서버 프로그램 Nginx

AWS의 파일 저장 서비스 Amazon S3

AWS의 데이터베이스 서비스 Amazon RDS

 

지금부터 저와 같이 나만의 서버를 구축 해봐요.

 

참고자료:

- 도메인과 URL: https://haepos.com/entry/%EB%8F%84%EB%A9%94%EC%9D%B8-URL-%EA%B8%B0%EB%B3%B8-%EC%9A%A9%EC%96%B4
- DNS 캐싱: https://smorning.tistory.com/237
- 웹사이트 IP 주소 확인 방법: https://lifenourish.tistory.com/1499
- 브라우저가 도메인에 해당하는 IP를 찾는 순서: https://brocess.tistory.com/259

 

 

 

728x90
728x90