1. Load Balancer
Load Balancer
• Load Balancer Solution
• Load Balancer Solution
• Azure Load Balancer
• 트래픽 분산
• Load Balancer는 여러 Backend 자원(예: VM) 간에 네트워크 트래픽을 분산시켜 부하를 고르게 분배하여 개별 리소스에 과부하가
걸리는 것을 방지하고, 전체 시스템의 성능과 안정성을 향상시킨다.
• 고가용성
• 특정 백엔드 리소스에 장애가 발생하면, Load Balancer는 자동으로 트래픽을 정상 작동중인 다른 리소스로 라우팅하여 서비스
중단을 최소화한다.
• 확장성
• 필요에 따라 Backend 자원을 추가하거나 제거할 수 있어 애플리케이션의 확장성을 높일 수 있다. Load Balancer는 추가된
리소스를 자동으로 감지하고 트래픽을 분배한다.
• 다양한 트래픽 관리
• TCP, TTP/HTTPS를 비롯한 다양한 프로토콜과 포트를 지원하여 다양한 애플리케이션 시나리오에 맞춰 트래픽을 관리할 수 있다.
• 보안
• Load Balancer는 NSG 및 사용자 정의 라우팅을 통해 트래픽을 제어하고 보호할 수 있다. 또한, DDoS 보호 기능을 통해
애플리케이션을 분산 서비스 거부(DDoS) 공격으로부터 보호할 수 있다.
• 지속적인 가용성 점검
• 백엔드 리소스에 대한 상태 프로브를 수행하여 가용성을 지속적으로 점검한다. 문제가감지되면, 트래픽을 자동으로 다른 정상
작동 중인 리소스로 라우팅합한다.
• 세션 지속성
• Azure Load Balancer에서 세션 지속성 옵션인 Source IP affinity를 설정한다.
• 클라이언트의 IP 주소를 기반으로 동일한 백엔드 서버에 연결을 유지한다.
• 세션 지속성( sticky sessions) 기능을 사용하면 특정 클라이언트의 트래픽을 동일한 Backend 자원으로 라우팅하여 세션 데이터를
유지할 수 있다. 이는 사용자 경험을 개선하는 데 유용하다.
• 세션 지속성은 전자 상거래 웹사이트와 같은 사용자 상호작용이 중요한 애플리케이션에서 필수적인 기능이다. 이를 통해 사용자는
일관된 경험을 할 수 있으며, 세션 데이터의 손실을 방지하여 비즈니스의 신뢰성과 수익을 향상시킬 수 있다.
Azure Application Gateway나 Azure Load Balancer의 세션 지속성 설정을 활용하여 이러한 문제를 효과적으로 해결할 수 있다.
• 사용자가 웹사이트에 접속하면 로드 밸런서가 초기 요청을 백엔드 서버 1로 라우팅함.
• 세션 지속성 설정 덕분에, 사용자가 장바구니에 상품을 추가할 때의 모든 후속 요청은 백엔드 서버 1로 계속 라우팅된다.
장바구니에 추가된 상품 정보가 백엔드 서버 1에 저장되므로, 세션 데이터가 유지된다.
• 세션 지속성으로 인해, 사용자가 결제 페이지로 이동할 때도 백엔드 서버 1로 연결이 유지된다. 결제 과정에서 필요한
모든 정보(장바구니 내용, 사용자 정보 등)가 유지되어 원활한 사용자 경험을 제공한다.
• 사용자 경험이 향상되고, 장바구니 정보나 결제 과정 중 데이터 손실이 발생하지 않음.
• Load Balancer SKU
• Backend Pool
• Load Balancer Rule
• Frontend IP 및 Port 조합을 Backend IP 및 Port 조합의 집합에 매핑한다.
• Rule은 NAT rule과 함께 사용할 수 있다.
• NAT rule이 VM(또는 NIC)에 명시적으로 연결되어 대상에 대한 경로를 완료한다.
• Session Persistence
• 세션 지속성은 클라이언트 트래픽을 처리하는 방법을 지정한다.
• None(기본) 요청은 모든 VM에서 처리할 수 있다.
• Client IP 요청은 동일한 VM에서 처리할 수 있습니다.
• Client IP 및 Protocol은 동일한 주소 및 프로토콜의 연속 요청을 동일한 VM에서 처리하도록 지정한다.
• Health Probe
• Load balancer가 App의 상태를 모니터링할 수 있도록 허용함.
• 상태 확인의 응답에 따라 부하 분산 장치 회전에서 VM을 동적으로 추가하거나 제거함.
• HTTP Custom Probe(기본 설정)는 15초마다 핑한다.
Demo-Load Balancer
• Demo
• VM을 구분하기 위해 Nginx Web Server와 Apache Web Server가 운영중인 Linux VM을 미리 준비한다.
• Load Balancer를 구성한 후 VM의 Public IP는 제거한다.
• Public IP는 Load Balancer에만 있으면 된다.
• Load Balancer의 NAT Port forwarding으로 VM에 SSH 접속을 허용한다.
Application Gateway
• Application Gateway
• Azure Application Gateway는 다양한 Web Application을 안전하고 효율적으로 제공하기 위해 중요한 역할을 한다.
• 주요 기능
• Web Application Firewall(WAF)
• Application Gateway는 WAF 기능을 제공하여 OWASP 상위 10개 위협(예: SQL 인젝션, XSS)으로부터 웹 애플리케이션을
보호한다. 이를 통해 보안 수준을 향상시킬 수 있다.
• Load Balancing for Web App
• HTTP/HTTPS 트래픽을 다양한 백엔드 서버로 분산하여 부하를 고르게 분산시켜 서버 과부하를 방지하고 애플리케이션의 성능을
최적화할 수 있다.
• URL 기반 라우팅
• URL 경로를 기반으로 트래픽을 라우팅할 수 있다. 예를 들어, /images 요청을 이미지 서버로, /api 요청을 API 서버로 보낼 수 있다.
이를 통해 트래픽 관리가 더욱 유연해진다.
• 다중 사이트 Hosting
• 단일 Application Gateway 인스턴스를 사용하여 여러 도메인과 서브도메인을 호스팅할 수 있다. 이를 통해 비용 효율성을 높이고
관리의 복잡성을 줄일 수 있다.
• 애플리케이션 성능 향상
• Application Gateway는 연결 유지 기능을 제공하여 백엔드 서버와의 연결 수를 최소화 하여 지연 시간을 줄이고 성능을 향상시킬
수 있다.
• SSL 종료(SSL Offloading)
• 기본적으로, SSL/TLS는 데이터를 암호화하여 보내는데, 암호화된 데이터는 수신자가 이를 읽기 전에 해독해야 하므로 리소스가
소모된다.
• SSL 종료는 이 암호화와 해독 작업을 Web 서버가 아닌 Application Gateway에서 처리하는 것을 의미한다.
• SSL 종료는 Application Gateway를 통해 SSL/TLS 트래픽을 해독하여 백엔드 서버의 부하를 줄이는 효율적인 방법이다.
이는 Web 서버 성능을 최적화하고 사용자 경험을 향상시키며, 보안 관리의 일관성을 유지하는 데 중요한 역할을 한다.
이 기능을 활용하면 웹사이트나 애플리케이션의 성능과 보안을 모두 강화할 수 있다.
• Application Gateway Routing
• Application Gateway Component
• Frontend IP
• Listener
• Routing rule
• Backend pool
• WAF (옵션)
• Health probe
'Study > Azure Cloud' 카테고리의 다른 글
[Azure 정리]8. App Service & Azure Kubernetes Service (0) | 2025.01.05 |
---|---|
[Azure 정리]6. Azure Firewall & Azure DNS (0) | 2025.01.02 |
[Azure 정리]5. Virtual Network & NSG (0) | 2025.01.02 |
[Azure 정리]4. Storage Account 사용하기 (6) | 2025.01.02 |
[Azure 정리]3. Virtual Machine 사용하기 (6) | 2025.01.02 |