3. Azure Load Balancer
• L4 기반의 Load balancer
• 공인 IP를 Mapping 시킬 수 있으며, 고정 IP로도 설정 가능
• VM의 Availability set을 정의하지 않으면 1:1 Mapping만 가능하며 VM만 연결할 수 있음
• Backend Instance가 사설 IP(Private IP)만 있더라도 ALB에서 트래픽 전달 가능
• Inbound NAT Rules로 공인 IP(Public IP)가 없는 VM에 직접 접근 가능 (Port forwarding 가능)
• L4 기반의 LB로써 TCP와 UDP패킷을 분산하지만, Probes는 TCP와 HTTP를 설정할 수 있음
• Load Balancing Rules를 설정할 시 Source IP 선호도 모드와 해시 기반 배포 모드로 설정 가능
• 기본적은 Load Balancing Rules은 해시 기반 배포 모드
• 유휴 제한시간이 있으며, 기본적으로 4분
• Internal Load Balancer도 제작 가능
• 공인 IP를 여러 개 연결하여 IP 기반 부하분산 기능을 사용할 수 있음
• 모든 설정을 수동으로 전부 해야지만 동작
4. 해시 기반 배포 모드
• 5개 튜플(원본 IP, 원본 포트, 대상 IP, 대상 포트, 프로토콜 종류) : none (Default)
• 세션 연결 시만 동작
5. 소스 IP 선호도 모드
• 2개 튜플(원본 IP, 대상 IP) : sourceIP
• 3개 튜플(원본 IP, 대상 IP, 프로토콜) : sourceIPProtocol
• 부하 분산 집합이 변경되면(가상 컴퓨터 추가 또는 제거)
클라이언트 요청 배포가 다시 계산
• 트래픽이 불규칙하게 배포될 수 있음
6. SQL Always On에 대해 부하 분산 장치 구성
• Internal Load Balancer (lLB) 에서만 사용 가능
• 동일한 가상 네트워크에 있는 서비스 및 VM
• 연결된 온-프레미스 네트워크의 서비스 및 VM
• 상호 연결된 VNet의 서비스 및 VM
• 부동 IP 설정 필요
8. Outbound 연결의 이해
시나리오 메서드 참고
독립 실행형 VM
(부하 분산 장치 없음, 인스턴스
수준 공용 IP 주소 없음)
->Availability set을 설정이 되지
않은 VM
기본 SNAT
Azure에서는 SNAT에 공용 IP 주
소를 연결합니다.
부하 분산 VM
(VM에 인스턴스 수준 공용 IP 주
소 없음)
->Availability set을 설정하고 pip
가 연결되지 않은 VM
부하 분산 장치를 사용하는
SNAT
Azure에서는 SNAT에 부하 분산
장치의 공용 IP 주소를 사용합니
다.
인스턴스 수준 공용 IP 주소를 가
진 VM
(부하 분산 장치 있음 또는 없음)
->Availability set을 설정하고 pip
가 연결된 VM
SNAT를 사용하지 않습니다.
Azure에서는 VM에 할당된 공용
IP를 사용합니다.
9. Outbound 연결의 이해
VM에 공인 IP 있음VM에 공인 IP 없음
SNAT 사용
(Port 개수 1024-65535)
Inbound Outbound
SNAT 미사용
Inbound Outbound
• SNAT 사용 시 1개의 Public IP가 Backend VM으로 Packet 전달 시 SNAT를 사용하기 때문에 Port 임계치인
64,500개 이상 연결을 할 시 오류가 발생할 수 있음
10. SNAT 사용 시 Public IP의 Port 부족으로 발생할 수 있는 Error Log 예제
{
"time": "2016-01-26T10:37:46.6024215Z",
"systemId": "32077926-b9c4-42fb-94c1-762e528b5b27",
"category": "LoadBalancerAlertEvent",
"resourceId": "/SUBSCRIPTIONS/XXXXXXXXXXXXXXXXX-XXXX-XXXX-
XXXXXXXXX/RESOURCEGROUPS/RG7/PROVIDERS/MICROSOFT.NETWORK/LOADBALANCERS/WWEBLB",
"operationName": "LoadBalancerProbeHealthStatus",
"properties": {
"eventName": "Resource Limits Hit",
"eventDescription": "Ports exhausted",
"eventProperties": {
"public ip address": "40.117.227.32"
}
}
}
11. 그럼 이게 뭔말?
NAT
LB MUX
VM DIP
10.1.1.2
VM DIP
10.1.1.3
Azure VMSwitch
Stateless
터널
엣지 라우터
클라이언트
VIP
VIP
DIP
DIP
직접 전달:
VIP
VIP
LB MUX
VM DIP
10.1.1.4
VM DIP
10.1.1.5
Azure VMSwitch
NAT
컨트롤러
테넌트 정의:
VIPs, # DIPs
맵핑
NAT
• LB의 목표 : VIP와 DIP 묶음을
클라우드 서비스에 연결
• SDN 컨트롤러가 LB/vSwitch간
교신을 추상화
• 2단계로 이루어짐:
1. 부하 분산 - DIP 선택
2. NAT - VIP->DIP와 포트 변환
• NAT에서 vSwitch로의 전달은 부하 분산이
Stateless(ECMP)로 처리된 후, 직접 전달
• MUX는 VM 형태로 확장 및 축소가 가능
From. 백승주 부장’s PPT
14. Application Gateway
• L7 기반의 Load balancer
• 공인 IP를 Mapping 시킬 수 있으나, 동적 IP로만 설정 가능
• 기본적인 설정은 되어있으며, Backend Pool만 설정하면 바로 사용 가능
• Backend Instance가 사설 IP(Private IP)만 있더라도 AGW에서 트래픽 전달 가능
• WAF를 활성화 할 수 있음 탐지(검색) 모드와 제어(방지) 모드가 있음 (Preview)
• HTTP(S) 트래픽만 서비스 가능
• 쿠키 기반 세션 선호도 처리 가능
• SSL 오프로드를 지원하며, 종단간 SSL도 지원 (테스트 해보지 못했음…)
• Load Balancing Mode는 Round Robin
• URL 기반 라우팅이 가능하며, 여러 Site를 하나의 AGW에서 라우팅 가능
• Websocket Native 지원
• EndPoint는 모든 Azure 내부 IP 주소 또는 공용 인터넷 IP 주소
19. Application Gateway 가격 정책
APPLICATION GATEWAY 유형 기본 APPLICATION GATEWAY WAF APPLICATION GATEWAY
(미리 보기)
작음 게이트웨이 시간당 ₩30
(~₩22,320/월)
사용할 수 없음
중간 게이트웨이 시간당 ₩84.00
(~₩62,496/월)
미리 보기 중 기본과 동일한 가격
큼 게이트웨이 시간당 ₩384
(~₩285,696/월)
미리 보기 중 기본과 동일한 가격
데이터 처리 작음 중간 큼
첫 10TB/월 GB당 ₩9.60 무료 무료
다음 30TB
(10 - 40TB)/월
GB당 ₩9.60 GB당 ₩8.40 무료
40TB 초과/월 GB당 ₩9.60 GB당 ₩8.40 GB당 ₩4.20
21. Traffic Manager
• DNS 기반의 Load balancer
• DNS 기반의 Failover 구성이 가능
• Azure Service 이외 DNS로 접근 가능한 모든 Endpoint를 소유할 수 있음
• Swapping Service를 지원하지 않는 Service 이용 시 매우 유용
• Probe는 Protocol(HTTP/HTTPS)과 Port, 그리고 Monitoring Path를 설정할 수 있음
• DNS TTL의 기본값은 300초
• 트래픽 라우팅 방법은 우선순위, 가중치, 성능으로 통 세가지가 있으며, 중첩으로 설정이 가능
28. 알게 된 몰랐던 것들
• VM 하나 띄우고, LB 하나 설정 바꾸고 하는데 너무 많은 시간이 소모되는 느낌 (AWS와 비교 시)
• 생각보다 친절하지 않은 UI이나, 경력자 들은 손쉽게 사용할 수 있는 흐름
• 여기저기 왔다 갔다 하지 않고도 처리할 수 있는 업무가 많음
• Wide 모니터(21:9)가 절실히 필요함
• 정적 공인 IP가 유료라는 것을 알게 됨 (5개 까지만 무료)
https://azure.Microsoft.com/ko-kr/pricing/details/ip-addresses/
• 동적 공인 IP는 각 Instance마다 무료~ (과금시 $0.004, AWS는 $0.005)
• Availability set이 VM을 여러 개 생성해 주는 것이 아니라 Set에 속한 VM들을 물리 분리 해준다는 의미
• Azure Blob은 S3랑 비교할 때 나쁘지 않다.
29. 각 서비스 비교
부여 Azure Load Balancer 응용 프로그램 게이트웨이 트래픽 관리자
기술 전송 수준(계층 4) 응용 프로그램 수준(계층 7) DNS 수준
지원되는 응용 프
로그램 프로토콜
모두 HTTP 및 HTTPS
모두
(HTTP 끝점은 끝점 모니터링에 필요함)
끝점
Azure VM 및 클라우드 서비스
역할 인스턴스
모든 Azure 내부 IP 주소 또는
공용 인터넷 IP 주소
Azure VM, 클라우드 서비스,
Azure 웹앱 및 외부 끝점
Vnet 지원
인터넷 연결 및 내부(Vnet) 응용 프로그램
모두에 사용할 수 있습니다.
인터넷 연결 및 내부(Vnet) 응용 프로그램
모두에 사용할 수 있습니다.
인터넷 연결 응용 프로그램만 지원
끝점 모니터링 프로브를 통해 지원됨 프로브를 통해 지원됨 HTTP/HTTPS GET을 통해 지원됨
Protocol TCP/UDP HTTP/HTTPS -
고정 IP 지원 - -
Load Balancing
Mode
5 튜플(원본 IP, 원본 포트, 대상 IP, 대상 포트,
프로토콜 유형)
Round Robin
우선 순위, 가중치, 성능을 기반한
DNS
Load Balancing
Mode
(Sticky Session)
2 튜플(원본 IP 및 대상 IP), 3 튜플(원본 IP,
대상 IP 및 포트) 가상 컴퓨터의 수에 따라
확장 또는 축소할 수 있습니다.
쿠키 기반 선호도 -
SLA 무료 99.95% 99.99%