DNS / Load Balancer

정희준·2023년 5월 7일
0

DNS 란?

Domain Name System 의 약자로
호스트의 도메인네임 (www.example.com)을 네트워크주소(192.168.1.0)로 변환하거나, 그 반대의 역할을 수행하는 시스템이다.
우리가 자주 접하는 naver.com , google.com 모두 DNS을 가진 DN(Domain Name)이라고 할 수 있다.

쉽게 말하자면
실제로 naver.com의 IP 주소는 210.130.195.200이지만 대부분의 사람들은 naver라는 도메인으로 접속할 것이다
즉, 외우기 힘든 IP 숫자대신 알기 쉬운 도메인 주소를 입력하면 네이버의 IP주소로 변환해주는 것을 말한다


Load Balancer란?

서버에 엄청나게 많은 요청이 한꺼번에 들어오면 서버는 어떻게 될까?
서버가 감당하지 못할 만큼의 요청이 한꺼번에 쏟아지게 된다면 결국 서버는 멈추게 될 것이다

그렇다면 어떻게 해야 할까?
두가지 방법이 존재한다
Scale-up : Server가 더 빠르게 동작하기 위해 하드웨어 성능을 올리는 방법.
Scale-out : 하나의 Server 보다는 여러 대의 Server가 나눠서 일을 하는 방법.

Scale-up의 경우 간단하게 컴퓨터 사양을 올리는 방법이고
Scale-out은 여러 대의 컴퓨터를 사용한다고 생각하면 된다
그렇다면 여러 대의 서버에 어떻게 분산을 해주어야 할까?
그때 필요한 것이 바로 Load Balancer다

Load Balancing이란?
하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 적절히 분산처리하여 해결해주는 서비스입니다.

그렇다면 로드밸런서는 어떤 기준으로 트래픽을 분산할까?

  1. 라운드로빈 방식(Round Robin Method)
    서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식
    클라이언트의 요청을 순서대로 분배하기 때문에 여러 대의 서버가 동일한 스펙을 갖고 있고, 서버와의 연결(세션)이 오래 지속되지 않는 경우에 활용하기 적합함.
  1. 가중 라운드로빈 방식(Weighted Round Robin Method)
    각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분하는 방식
    주로 서버의 트래픽 처리 능력이 상이한 경우 사용되는 부하 분산 방식이다. 예를 들어 A라는 서버가 5라는 가중치를 갖고 B라는 서버가 2라는 가중치를 갖는다면, 로드밸런서는 라운드로빈 방식으로 A 서버에 5개 B 서버에 2개의 요청을 전달함.
  1. IP 해시 방식(IP Hash Method)
    클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
    사용자의 IP를 해싱해(Hashing, 임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑하는 것, 또는 그러한 함수) 로드를 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장함.
  1. 최소 연결 방식(Least Connection Method)
    요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽을 배분하는 방식
    자주 세션이 길어지거나, 서버에 분배된 트래픽들이 일정하지 않은 경우에 적합함.
  1. 최소 리스폰타임(Least Response Time Method)
    서버의 현재 연결 상태와 응답시간(Response Time, 서버에 요청을 보내고 최초 응답을 받을 때까지 소요되는 시간)을 모두 고려하여 트래픽을 배분하는 방식
    가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 우선적으로 로드를 배분함.

참조

https://m.post.naver.com/viewer/postView.naver?volumeNo=27046347&memberNo=2521903
https://nesoy.github.io/articles/2018-06/Load-Balancer

profile
같이 일하고 싶은 사람이 되어보자! 다시 시작하는 개발 블로그.

0개의 댓글