[TIL] Azure Load Balancer

이명진·2024년 3월 7일
0

TIL

목록 보기
16/16

공부하게 된 계기

정의 : 부하 분산, 네트워크 트래픽을 효율적으로 분산하는 것.
기존에는 main서버 한대만 운용해서 배포가 진행중일때 서버가 내려가서 사용자들이 이용할수가 없었다.
긴급한 수정사항이 발생하여 메인서버를 내려버리게 된다면 문제가 발생하게 될 염려가 있다.
배포가 빠르게 진행되면 이 염려가 줄어들 텐데 github action에서 Azure 로 배포를 실행하면 시간이 엄청 걸린다.
Azure deploy very slow 만 쳐도 구글에서 많은 정보가 나올정도로 Azure의 배포 시스템에는 문제가 많다.
처음에는 내 환경 문제 라고 생각을 해서 개선을 해봤는데 빌드는 빠르게 처리가 되는데 배포에서 엄청난 시간이 걸리는 것은 수정할수가 없었다.

그래서 load balancer로 서버를 두개 를 두어서 배포가 진행되는 서버가 내려갈때 다른 서버는 구동되어서 정식 서버에서 문제 없이 이용이 가능하게 만들기 위해서 사용하게된 계기가 되었다.

  • load balancer 로 설정을 하려고 했으나 load balancer 는 가상 머신 설정이 필요해서 이미 회사에서는 vn(가상 네트워크)를 활용하고 있었기 때문에 Application Gateway로 설정하게 되었다.

공부하면서 배운 것 정리

로드 밸런싱의 장점

  • 고가용성: 단일 서버의 장애로부터 보호하고 서비스의 가용성을 향상시킵니다.
  • 성능 향상: 트래픽이 균등하게 분산되므로 각 서버의 부하가 낮아져 전체적인 성능이 향상됩니다.
  • 확장성: 서버를 추가하거나 제거하여 시스템을 쉽게 확장할 수 있습니다.
  • 장애 복구: 하나의 서버에 장애가 발생하면 로드 밸런서가 트래픽을 다른 서버로 리디렉션하여 중단을 최소화합니다. 

로드 밸런서의 구성

  • 프런트엔드 IP 구성: 로드 밸런서의 프런트엔드 IP 주소 및 프로토콜을 구성(로드 밸런서로 들어오는 트래픽)
  • 백엔드 풀 구성: 로드 밸런서에 연결할 가상 머신 또는 서비스 인스턴스의 백엔드 풀을 구성
  • 로드 밸런싱 규칙 설정: 트래픽을 어떻게 분산시킬지를 정의하는 로드 밸런싱 규칙 (프런트엔드 IP, 백엔드 풀, 포트 등을 기반)
  • 검사 프로브 구성: 백엔드 인스턴스의 가용성을 확인하기 위해 주기적으로 검사 프로브를 보냅니다.
  • 세션 지속성 및 NAT 구성: 필요한 경우 세션 지속성을 구성하거나 네트워크 주소 변환 (NAT) 규칙을 설정하여 트래픽을 관리합니다.

용어 정리

  • Probe : Backend pool의 작동여부(건강한 지, 안 한지) 체크하는 장치
  • Backend pool : Load Balancer가 부하 분산 처리한 풀, 범위
  • Fronted IP(s) : Client들의 접속 IP
  • LB rules (IP/port mapping) : 부하 분산 처리할 IP Port

VNET : 가상화된 네트워크 구성 (Virtual Network)
VM: 가상 머신 (Virtual Machine)

포트

  • 443 : 보안이 적용되는 웹 서비스 ex ) https

포털에서 만드는 것 훑어 보기
큰 구성

  • 기본 사항 : 구독 선택 , load balancer 이름 설정 , SKU 설정
  • 프론트 엔드 IP 구성 : 프론트 엔드 IP설정해서 공용 IP 주소를 설정하는 듯 싶다. (SKU 설정이 있음)
  • 백엔드 풀 : 구성은 NIC(가상머신의 네트워크 인터페이스 카드) / IP 주소 로 구성되어 있다.
    NIC 에서 가상 머신을 추가할수 있다 .
  • 인바운드 규칙 : 부하 분산 규칙(load balancing rule)/ 인바운드 NAT 규칙 으로 나뉘어짐. 상태 프로브 만들기 있음
    인바운드 NAT 규칙 : 개별 가상 머신, 백엔드 풀의 컴퓨터 집합으로 전송되는 트래픽에 대해 규칙 구성
  • 아웃바운드 규칙
  • 태그
  • 검토

공부 출처

https://learn.microsoft.com/ko-kr/azure/load-balancer/load-balancer-overview

https://diane-space.tistory.com/227

https://manpage.tistory.com/240

profile
프론트엔드 개발자 초보에서 고수까지!

0개의 댓글