DNS 란?
DNS란 Domain Name System의 약자입니다,
이때 Domain 즉, 도메인은 쉽게 예를 들자면 www.naver.com을 의미합니다.
인터넷에 연결되어 있는 장치들은 각각의 장치를 식별할 수 있는 주소를 가지고 있는데 이를 IP주소라고 하며, IP주소는 127.0.0.1 같은 숫자 형식으로 되어 있는데 이것은 사람이 일일이 기억하기에 불편함을 가지고 있습니다. 이러한 불편함을 해소하기 위해 도메인이 등장하게 되어 있는데 도메인은 이러한 숫자를 사람들이 기억하기 쉽게 이름을 부여한 것을 의미합니다. 이런 도메인 이름을 관리하는 것이 DNS 즉, Domain Name System이라 일컫습니다.
Load Balancer 란??
서버에 가해지는 트래픽을 여러대의 서버에게 균등하게 분산시켜주는 역할을 하는것이 Load Balancer입니다. 서버가 하나일 때 트래픽이 적으면 서버는 무사히 응답을 해줄 것이지만, 트래픽이 서버 한개로는 감당할 수 없는 양이 되는 순간 서버는 다운될 것이고, 서비스 또한 작동을 멈출 것입니다. 이러한 문제를 해결하기 위해서는 크게 두가지 방법이 있습니다.
서버의 인스턴스 성능을 올리는 스케일-업, 서버를 여러대로 나뉘어서 트래픽을 처리하는 스케일-아웃 방식이 있습니다. Load Balancer는 바로 스케일-아웃 방식입니다. 그리고 Load Balancer는 지속적으로 IP주소가 바뀌기 때문에 도메인 기반으로 사용해야 한다는 특징이 있습니다.
Load Balancer 주요기능
NAT
터널링
DSR(Dynamic Source Routing protocol)
Load Balancer 알고리즘
라운드 로빈
가중 라운드 로빈
각 서버에 가중치를 매기고 가중치가 높은 서버에 요청을 우선적으로 배정하는 방식입니다.
서버의 트래픽 처리 능력이 다를 경우에 사용됩니다.
최소 연결 방식
요청이 들어온 시점에 가장 적은 연결 상태를 보이는 서버에 트래픽을 배정하는 방식입니다.
서버에 들어온 트래픽들이 일정하지 않은 경우에 적합합니다.
IP 해시 방식
클라이언트의 IP주소를 특정 서버로 매핑하여 요청을 처리하는 방식입니다.
사용자가 항상 동일한 서버로 연결됩니다.