- 📌 DNS란?
- 📌 Load Balancer란?
- 웹사이트에 접속 할 때 우리는 외우기 어려운 IP 주소 대신 도메인 이름을 사용한다. 예를들어 네이버에 접속하고 싶다면 naver.com과 같이 입력하여 접속한다.
- 도메인 이름을 사용했을 때 입력한 도메인을 실제 네트워크상에서 사용하는 IP 주소로 바꾸고 해당 IP 주소로 접속하는 과정이 필요하다. 즉, 단순히 naver.com이라고 입력하고 접속한다고 네이버에 접속이 되는 것이 아니다.
- 이러한 과정, 전체 시스템을 DNS(도메인 네임 시스템)라고 한다.
- 이러한 시스템은 전세계적으로 약속된 규칙을 공유하는데, 상위 기관에서 인증된 기관에게 도메인을 생성하거나 IP 주소로 변경할 수 있는 ‘권한’을 부여한다.
- DNS는 이처럼 상위 기관과 하위 기관과 같은 ‘계층 구조’를 가지는 분산 데이터베이스 구조를 가진다.
한대의 서버에 모든 이용자들이 접속하여 요청을 보낸다고 해보자.
해당 서버는 점점 트래픽이 증가하며, 서버가 더이상 버티지 못하고 다운되거나 문제가 발생하게 된다.
따라서 이러한 부담을 줄여주기 위해 서버를 여러 대를 사용하는 방법을 사용하는데, 여기서 서버에 가해지는 트래픽을 여러대의 서버에게 균등하게 분산시켜주는 역할을 하는 것이 로드 밸런서이다.
서버가 하나일 때, 트래픽이 적으면 서버는 무사히 응답을 해줄 것이다.
하지만, 트래픽이 서버 한개로는 감당할 수 없는 양이 되는 순간 서버는 다운될 것이고, 서비스 또한 작동을 멈출 것이다.
이러한 문제를 해결하기 위해서는 크게 두 가지 방법이 있는데, 서버의 인스턴스 성능을 올리는 스케일-업(Scale-up) 과 서버를 여러대로 나눠서 트래픽을 처리하는 스케일-아웃(Scale-out) 방식이 있다.
그리고 로드 밸런서는 지속적으로 IP주소가 바뀌기 떄문에 도메인 기반으로 사용해야 한다는 특징이 있다.