DNS / Load Balancer

훈이·2022년 10월 25일
0
post-custom-banner

DNS(Domain Name System)란??

Domain(도메인)

도메인은 웹 브라우저에서 사이트에 접속할 때, IP 주소 대신 문자(영문,한글 등)로 만든 주소이다.

DNS(Domain Name System)

원래의 IP주소를 도메인으로 바꾸거나, 도메인을 다시 IP 주소로 바꿔주는 데이터베이스 시스템이라고 할 수 있다.
연결되어있는 IP 주소와 도메인이 저장되는 곳이라고 할 수 있다.
DNS서버를 다른 말로 네임서버라고도 한다.

DNS 작동방식

  1. naver.com을 입력한다.
  2. naver.com을 가지고 있는 네임 서버에 접속한다.
  3. IP 주소를 확인한다.
  4. IP 주소를 전달한다.
  5. IP 주소를 가진 서버로 접속한다.
  6. 연결된 브라우저를 실행한다.

Load Balancer(로드 밸런서)

클라이언트가 한두 명이라면 서버는 우리에게 여유롭게 응답을 줄 수 있다. 하지만 클라이언트가 기하급수적으로 늘어나게 되면 서버에 무리가 간다.
이러한 방법을 해결하기 위해 생각할 수 있는 방법은 Scale-up(서버의 인스턴스 성능을 올린다.), Scale-out(서버를 여러대로 나눠서 트래픽을 처리한다.)이 있다.

로드밸런서는 Scale-out 방식이며, 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러대의 서버로 분산 처리해주는 서비스이다.

로드 밸런서의 주요 기능

  • NAT(Network Address Translation)
    사설 IP 주소를 공인 IP주소로 바꿔주는 통신망의 주소 변조기이다.
  • 터널링(Tunneling)
    인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 해주는 개념이다.
    데이터를 캡슐화해 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있다.
  • DSR(Dynamic Source Routing protocol)
    로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소를 전달해서 네트워크의 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념이다.

로드 밸런서의 알고리즘

  • 라운드 로빈
    서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식이다.
    서버와의 연결이 오래 지속되지 않을 경우 적합하다.

  • 가중 라운드 로빈
    각 서버에 가중치를 매기고 가중치가 높은 서버에 요청을 우선적으로 배정한다.
    서버의 트래픽 처리 능력이 다를 경우에 사용한다.

  • 최소 연결 방식
    요청이 들어온 시점에 가장 적은 연결 상태를 보이는 서버에 트래픽을 배정하는 방식이다.
    서버에 들어온 트래픽들이 일정하지 않은 경우에 적합하다.

  • IP 해시 방식
    클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식이다.
    사용자가 항상 동일한 서버로 연결된다.

로드 밸런스 종류

  • L2
    맥 주소를 바탕으로 Load Balancing 한다.

  • L3
    IP 주소를 바탕으로 Load Balancing 한다.

  • L4
    전송 계층에서 Load Balancing 한다.(IP와 PORT)
    데이터를 변경, 수정 할 수 없다.
    패킷 레벨에서만 트래픽을 분산하기 때문에 속도가 빠르고 효율이 높습니다.
    섬세한 라우팅이 불가능하지만 L7로드 밸런서보다 가격이 저렴하다.

  • L7
    응용 계층에서 Load Balancing 한다.
    포트나 헤더등의 정보를 수정 할 수 있다.
    패킷 내용을 확인하고 그 내용에 따라 트래픽을 특정 서버에 분산하는 것이 가능하다.
    섬세한 라우팅이 가능하고, 비정상적인 트래픽을 필터링 할 수 있다.
    패킷의 내용을 복호화 하기 때문에 비용이 더 많이 든다.

참고한 사이트 :
https://nack1400.tistory.com/21
https://hanamon.kr/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B8%B0%EB%B3%B8-%EB%8F%84%EB%A9%94%EC%9D%B8%EA%B3%BC-dns-%EB%84%A4%EC%9E%84%EC%84%9C%EB%B2%84%EB%9E%80-%EA%B0%9C%EB%85%90%ED%8E%B8/
https://yoo11052.tistory.com/63
https://nesoy.github.io/articles/2018-06/Load-Balancer

profile
백엔드 개발자가 되자!
post-custom-banner

0개의 댓글