728x90

1. Load Balancer

Load Balancer

Load Balancer Solution

Load Balancer Solution

Load Balancer Solution

Load Balancer Solution

Azure Load Balancer

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

Load Balancer SKU

 

Backend Pool

Beckend Pool

Load Balancer Rule

Add load balancing rule

Frontend IP 및 Port 조합을 Backend IP 및 Port 조합의 집합에 매핑한다.

Rule은 NAT rule과 함께 사용할 수 있다.

NAT rule이 VM(또는 NIC)에 명시적으로 연결되어 대상에 대한 경로를 완료한다.

 

Session Persistence

Session Persistence

세션 지속성은 클라이언트 트래픽을 처리하는 방법을 지정한다.

None(기본) 요청모든 VM에서 처리할 수 있다.

Client IP 요청동일한 VM에서 처리할 수 있습니다.

Client IP 및 Protocol은 동일한 주소 및 프로토콜의 연속 요청을 동일한 VM에서 처리하도록 지정한다.

 

Health Probe

Add 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

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 종료(SSL Offloading)

  • 기본적으로, SSL/TLS는 데이터를 암호화하여 보내는데, 암호화된 데이터는 수신자가 이를 읽기 전에 해독해야 하므로 리소스가

     소모된다.

  • SSL 종료는 이 암호화와 해독 작업을 Web 서버가 아닌 Application Gateway에서 처리하는 것을 의미한다.

  • SSL 종료는 Application Gateway를 통해 SSL/TLS 트래픽을 해독하여 백엔드 서버의 부하를 줄이는 효율적인 방법이다.

     이는 Web 서버 성능을 최적화하고 사용자 경험을 향상시키며, 보안 관리의 일관성을 유지하는 데 중요한 역할을 한다.

     이 기능을 활용하면 웹사이트나 애플리케이션의 성능과 보안을 모두 강화할 수 있다.

Application Gateway Routing

Path-based routing VS Multiple-site routing

Application Gateway Component

Frontend IP

Listener

Routing rule

Backend pool

WAF (옵션)

Health probe

Application Gateway Component

 

300x250