DNS / Load Balancer

전은평·2023년 5월 1일
0

DNS란?

: Domain Name System의 약자로, IP주소를 도메인으로 바꿔주는 시스템이다.
: 예를 들면, 127.0.0.1과 같은 IP주소를 도메인(localhost)으로 바꿔준다.

웹사이트마다 각각 다른 IP 주소를 보유하고 있는데, 주소창에 IP주소를 입력해야지만, 해당 사이트에 접속이 가능하다. 그렇다면 우리는 이용하는 모든 사이트의 IP 주소를 다 알고 있어야 하는데, 이를 다 외우기란 쉬운 일이 아니다.

그럼 보통의 우리는 어떤 식으로 웹사이트에 접속을 하는지 생각해보자.

네이버를 예로 들면, 네이버에 접속을 하고자 할 때 네이버 이용자 중 99%?네이버 or naver를 입력해 네이버 사이트를 접속을 할 것이다. 네이버의 IP 주소 223.130.200.104를 통해 접속하는 사람은 아마 아무도 없을 것이다!

그럼 여기서 짐작할 수 있겠지만, DNS 서버는 우리가 도메인 명을 브라우저 주소 입력창에 입력을 하게 되면, 이를 다시 IP 번호로 변환해서 해당 사이트로 연결을 도와준다.

그렇기에 DNS는 IP주소를 매번 외우지 않아도 웹사이트에 쉽게 접속할 수 있는 방법을 제공해주는 셈이다!


Load Balancer 란?

🤔 인터넷 서비스가 갑자기 한시간 정도 중단되면 어떻게 될까?

아마 다들 아시겠지만, 과거 카카오에 한번 화재가 발생하여 전국적으로 일상생활에 마비가 온 적이 있었다. 그것을 겪어본 바로는 현대사회에서 인터넷을 통하지 않은 것은 없다고 말을 해도 과언이 아닐 만큼 인터넷의 중요성이 높아지고 있다. 이러한 인터넷의 발달은 데이터 통신을 보다 활발하게 만들었고, 이는 트래픽의 폭발적인 증라고 이어졌다.

그결과 아무리 성능이 뛰어난 서버를 이용하고 있다고 하더라도, 폭발적으로 증가된 모든 트래픽을 감당하기란 쉽지 않은 일이다. 그렇기 때문에 기업들은 여러 서버를 추가적으로 구비하고, 여러 대의 서버에 동일한 데이터를 저장해 수많은 트래픽을 효과적으로 분산한다.

🤔 하지만 단순히 서버를 추가적으로 구축해 운영한다고 해서, 트래픽 분산이 제대로 잘 이루어 질까?

그건 아니다! 서버와 브라우저(클라이언트) 간의 트래픽을 요청에 일관성 있고, 적절하게 분산시켜 주는 친구 하나가 필요한데, 그게 바로 로드밸런서이다!

로드밸런서(LoadBalancer)서버에 가해지는 부하를 분산시켜주는 장치로써,
클라이언트와 서버 사이에 위치하여 서버의 트래픽을 관리해주는 역할을 한다.

그럼 어떠한 방식으로 트래픽을 분산시킬 것인지, 알고리즘이 여러개가 있는데 몇가지만 알아보자!

라우드 로빈 방식(Round Robin Method)
서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식이다.
클라이언트의 요청을 순서대로 분배하기 때문에 여러 대의 서버가 동일한 스펙을 갖고 있고, 서버와의 연결(세션)이 오래 지속되지 않는 경우에 활용하기 적합하다.

최소 연결 방식(Least Connection Method)
요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽을 배분한다.
자주 세션이 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우에 적합한 방식이다.

참고자료
: 코드캠프 강의자료
: https://m.post.naver.com/viewer/postView.naver?volumeNo=27046347&memberNo=2521903

profile
`아는 만큼 보인다` 라는 명언을 좋아합니다. 많이 배워서 많은 걸 볼 수 있는 개발자가 되고 싶습니다.

0개의 댓글