1. 로드 밸런서의 핵심 개념
- Azure 로드 밸런서
- 트래픽을 여러 백엔드 서버로 분산하여 고가용성과 안정성을 제공
- 프런트엔드 IP:
- 로드 밸런서의 공인 IP 또는 사설 IP로, 클라이언트가 트래픽을 보낼 때 사용하는 주소.
- 백엔드 풀:
- 트래픽을 수신하는 서버 그룹. 이 풀에 추가된 서버로 트래픽이 분산됨.
- 백엔드 공인 IP가 그대로 남아 있으면 로드 밸런서를 우회하여 직접 서버에 접근할 가능성이 있으며, NAT 규칙이 무시될 수 있으므로, 공인 IP를 제거하는 것이 권장됨.
- 부하 분산 규칙:
- 트래픽을 어떤 프로토콜(예: TCP, UDP)과 포트로 백엔드 풀에 전달할지 정의.
- 인바운드 NAT 규칙:
- 특정 포트를 통해 백엔드 서버에 직접 연결할 수 있도록 설정.
- 예: 프런트엔드 포트 30122 → 백엔드 서버의 SSH(22) 포트.
- 설정후 LB 프런트엔드 IP의 프런트엔드 포트로 백엔드 접근 가능!
- 상태 프로브:
- 백엔드 서버의 상태를 주기적으로 확인. 트래픽을 정상 서버로만 전달하도록 보장.
- 아웃바운드 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. 설정 흐름 요약
- 로드 밸런서 생성 후 프런트엔드 IP 구성.
- 백엔드 풀에 서버 추가.
- 부하 분산 규칙으로 트래픽 분배 정의.
- 필요 시 인바운드 NAT 규칙 추가.
- 상태 프로브로 서버 상태 확인 설정.
- 아웃바운드 NAT 규칙으로 백엔드 서버의 인터넷 통신 설정.
- 백엔드 서버의 공인 IP 제거 및 NSG 설정으로 보안 강화.
'Cloud > AZURE' 카테고리의 다른 글
Terraform on Azure 정리 (2) - MS 계정으로 Azure에 Terraform 인증 (0) | 2025.04.23 |
---|---|
Terraform on Azure 정리 (1) - Cloud Shell에서 Terraform 구성 (0) | 2025.04.22 |
Azure Firewall을 위한 라우팅 정리 (0) | 2025.04.16 |
Azure Application Gateway 정리 (0) | 2025.04.07 |
Azure Firewall 개념 정리 (vs Azure NSG) (1) | 2024.11.12 |