Upload
-
View
27
Download
0
Embed Size (px)
Citation preview
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 기반 부하분산 기능을 사용할 수 있음
• 모든 설정을 수동으로 전부 해야지만 동작
소스 IP 선호도 모드
• 2개 튜플(원본 IP, 대상 IP) : sourceIP
• 3개 튜플(원본 IP, 대상 IP, 프로토콜) : sourceIPProtocol
• 부하 분산 집합이 변경되면(가상 컴퓨터 추가 또는 제거)
클라이언트 요청 배포가 다시 계산
• 트래픽이 불규칙하게 배포될 수 있음
SQL Always On에 대해 부하 분산 장치 구성
• Internal Load Balancer (lLB) 에서만 사용 가능
• 동일한 가상 네트워크에 있는 서비스 및 VM
• 연결된 온-프레미스 네트워크의 서비스 및 VM
• 상호 연결된 VNet의 서비스 및 VM
• 부동 IP 설정 필요
Outbound 연결의 이해
시나리오 메서드 참고
독립 실행형 VM(부하 분산 장치 없음, 인스턴스수준 공용 IP 주소 없음)->Availability set을 설정이 되지않은 VM
기본 SNATAzure에서는 SNAT에 공용 IP 주소를 연결합니다.
부하 분산 VM(VM에 인스턴스 수준 공용 IP 주소 없음)->Availability set을 설정하고 pip가 연결되지 않은 VM
부하 분산 장치를 사용하는SNAT
Azure에서는 SNAT에 부하 분산장치의 공용 IP 주소를 사용합니다.
인스턴스 수준 공용 IP 주소를 가진 VM(부하 분산 장치 있음 또는 없음)->Availability set을 설정하고 pip가 연결된 VM
SNAT를 사용하지 않습니다.Azure에서는 VM에 할당된 공용IP를 사용합니다.
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개 이상 연결을 할 시 오류가 발생할 수 있음
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"}
}}
그럼 이게 뭔말?
NAT
LB MUX
VM DIP
10.1.1.2
VM DIP
10.1.1.3
Azure VMSwitch
Stateless터널
엣지라우터
클라이언트
VIP
VIP
DIPDIP
직접 전달: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
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 주소
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
Traffic Manager
• DNS 기반의 Load balancer
• DNS 기반의 Failover 구성이 가능
• Azure Service 이외 DNS로 접근 가능한 모든 Endpoint를 소유할 수 있음
• Swapping Service를 지원하지 않는 Service 이용 시 매우 유용
• Probe는 Protocol(HTTP/HTTPS)과 Port, 그리고 Monitoring Path를 설정할 수 있음
• DNS TTL의 기본값은 300초
• 트래픽 라우팅 방법은 우선순위, 가중치, 성능으로 통 세가지가 있으며, 중첩으로 설정이 가능
Traffic Manager 가격 정책
구분 가격
처음 10억 개 DNS 쿼리/월 ₩648/1백만 쿼리
10억 개 초과 DNS 쿼리/월 ₩450/1백만 쿼리
상태 확인(Azure) Azure 끝점당 ₩432/월
상태 확인(외부) 외부 끝점당 ₩648/월
알게 된 몰랐던 것들
• 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랑 비교할 때 나쁘지 않다.
각 서비스 비교
부여 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 BalancingMode
5 튜플(원본 IP, 원본 포트, 대상 IP, 대상 포트, 프로토콜 유형)
Round Robin우선 순위, 가중치, 성능을 기반한
DNS
Load BalancingMode
(Sticky Session)
2 튜플(원본 IP 및 대상 IP), 3 튜플(원본 IP, 대상 IP 및 포트) 가상 컴퓨터의 수에 따라
확장 또는 축소할 수 있습니다.쿠키 기반 선호도 -
SLA 무료 99.95% 99.99%