본문 바로가기

Cloud/AZURE

Azure 로드밸런서 정리

 

1. 로드 밸런서의 핵심 개념

  1. Azure 로드 밸런서
    • 트래픽을 여러 백엔드 서버로 분산하여 고가용성과 안정성을 제공
  2. 프런트엔드 IP:
    • 로드 밸런서의 공인 IP 또는 사설 IP로, 클라이언트가 트래픽을 보낼 때 사용하는 주소.
  3. 백엔드 풀:
    • 트래픽을 수신하는 서버 그룹. 이 풀에 추가된 서버로 트래픽이 분산됨.
    • 백엔드 공인 IP가 그대로 남아 있으면 로드 밸런서를 우회하여 직접 서버에 접근할 가능성이 있으며, NAT 규칙이 무시될 수 있으므로, 공인 IP를 제거하는 것이 권장됨.
  4. 부하 분산 규칙:
    • 트래픽을 어떤 프로토콜(예: TCP, UDP)과 포트로 백엔드 풀에 전달할지 정의.
  5. 인바운드 NAT 규칙:
    • 특정 포트를 통해 백엔드 서버에 직접 연결할 수 있도록 설정.
    • 예: 프런트엔드 포트 30122 → 백엔드 서버의 SSH(22) 포트.
    • 설정후 LB 프런트엔드 IP의 프런트엔드 포트로 백엔드 접근 가능!
  6. 상태 프로브:
    • 백엔드 서버의 상태를 주기적으로 확인. 트래픽을 정상 서버로만 전달하도록 보장.
  7. 아웃바운드 NAT:
    • 백엔드 서버가 인터넷으로 트래픽을 보낼 수 있도록 함.
# Azure Load Balancer 구조 설명

# 1. 클라이언트가 접근할 주소 (Public or Private IP)
Frontend_IP = "클라이언트가 접속하는 진입 지점"

# 2. 어떤 조건으로 트래픽을 분산할지 정의 (예: TCP 80 → Backend Pool)
Load_Balancing_Rule = {
    "Protocol": "TCP",
    "Frontend_Port": 80,
    "Backend_Port": 80
}

# 3. 특정 포트를 통해 직접 백엔드 접근 가능 (SSH, RDP 등)
Inbound_NAT_Rule = {
    "Frontend_Port": 30122,
    "Backend_Port": 22,
    "Target": "Backend VM A"
}

# 4. 트래픽이 분산될 대상 서버 그룹
Backend_Pool = [
    "VM A (no public IP)",
    "VM B (no public IP)"
]
# ⚠️ 백엔드 VM에 공인 IP 남겨두면 우회 접근 가능하므로 제거 권장

# 5. 서버가 정상인지 주기적으로 확인
Health_Probe = {
    "Protocol": "TCP",
    "Port": 80,
    "Interval": "5초",
    "Unhealthy_Threshold": 2
}

# 6. 백엔드 서버가 인터넷으로 나갈 수 있도록 설정
Outbound_NAT = "인터넷 액세스 가능하게 함"

2. 설정 흐름 요약

  1. 로드 밸런서 생성 후 프런트엔드 IP 구성.
  2. 백엔드 풀에 서버 추가.
  3. 부하 분산 규칙으로 트래픽 분배 정의.
  4. 필요 시 인바운드 NAT 규칙 추가.
  5. 상태 프로브로 서버 상태 확인 설정.
  6. 아웃바운드 NAT 규칙으로 백엔드 서버의 인터넷 통신 설정.
  7. 백엔드 서버의 공인 IP 제거 및 NSG 설정으로 보안 강화.