SlideShare uma empresa Scribd logo
1 de 29
Azure의 부하 분산
김세준
2017-02-07
Azure Load Balancer
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 기반 부하분산 기능을 사용할 수 있음
• 모든 설정을 수동으로 전부 해야지만 동작
해시 기반 배포 모드
• 5개 튜플(원본 IP, 원본 포트, 대상 IP, 대상 포트, 프로토콜 종류) : none (Default)
• 세션 연결 시만 동작
소스 IP 선호도 모드
• 2개 튜플(원본 IP, 대상 IP) : sourceIP
• 3개 튜플(원본 IP, 대상 IP, 프로토콜) : sourceIPProtocol
• 부하 분산 집합이 변경되면(가상 컴퓨터 추가 또는 제거)
클라이언트 요청 배포가 다시 계산
• 트래픽이 불규칙하게 배포될 수 있음
SQL Always On에 대해 부하 분산 장치 구성
• Internal Load Balancer (lLB) 에서만 사용 가능
• 동일한 가상 네트워크에 있는 서비스 및 VM
• 연결된 온-프레미스 네트워크의 서비스 및 VM
• 상호 연결된 VNet의 서비스 및 VM
• 부동 IP 설정 필요
ALB에 여러 Virtual IP 연결
부동 IP 설정으로 백엔드 포트 재사용백엔드 포트 재사용하지 않음
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를 사용합니다.
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
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
Logging 활성화
Application Gateway
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 주소
URL 기반 라우팅 (URL Path Routing)
다중 사이트 라우팅
구성 테스트
Logging 활성화
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
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 동작 방법
우선 순위 동작 방법
가중치 동작 방법
성능 동작 방법
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 Balancing
Mode
5 튜플(원본 IP, 원본 포트, 대상 IP, 대상 포트,
프로토콜 유형)
Round Robin
우선 순위, 가중치, 성능을 기반한
DNS
Load Balancing
Mode
(Sticky Session)
2 튜플(원본 IP 및 대상 IP), 3 튜플(원본 IP,
대상 IP 및 포트) 가상 컴퓨터의 수에 따라
확장 또는 축소할 수 있습니다.
쿠키 기반 선호도 -
SLA 무료 99.95% 99.99%

Mais conteúdo relacionado

Mais procurados

初心者向けWebinar AWS上でのファイルサーバ構築
初心者向けWebinar AWS上でのファイルサーバ構築初心者向けWebinar AWS上でのファイルサーバ構築
初心者向けWebinar AWS上でのファイルサーバ構築Amazon Web Services Japan
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionPeng Xiao
 
AWS와 함께하는 클라우드 컴퓨팅 - 강철, AWS 어카운트 매니저 :: AWS Builders 100
AWS와 함께하는 클라우드 컴퓨팅 - 강철, AWS 어카운트 매니저 :: AWS Builders 100AWS와 함께하는 클라우드 컴퓨팅 - 강철, AWS 어카운트 매니저 :: AWS Builders 100
AWS와 함께하는 클라우드 컴퓨팅 - 강철, AWS 어카운트 매니저 :: AWS Builders 100Amazon Web Services Korea
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerAditya Konarde
 
GitHub Actions in action
GitHub Actions in actionGitHub Actions in action
GitHub Actions in actionOleksii Holub
 
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API ManagerWSO2
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesRonny Trommer
 
414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integrationTrevor Dolby
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationSuresh Kumar
 
Docker London: Container Security
Docker London: Container SecurityDocker London: Container Security
Docker London: Container SecurityPhil Estes
 
Build automated Machine Images using Packer
Build automated Machine Images using PackerBuild automated Machine Images using Packer
Build automated Machine Images using PackerMarek Piątek
 
Recap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover ClusteringRecap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover ClusteringKazuki Takai
 
[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용NAVER D2
 
[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트
[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트
[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트OpenStack Korea Community
 
An introduction to terraform
An introduction to terraformAn introduction to terraform
An introduction to terraformJulien Pivotto
 

Mais procurados (20)

Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
初心者向けWebinar AWS上でのファイルサーバ構築
初心者向けWebinar AWS上でのファイルサーバ構築初心者向けWebinar AWS上でのファイルサーバ構築
初心者向けWebinar AWS上でのファイルサーバ構築
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
AWS와 함께하는 클라우드 컴퓨팅 - 강철, AWS 어카운트 매니저 :: AWS Builders 100
AWS와 함께하는 클라우드 컴퓨팅 - 강철, AWS 어카운트 매니저 :: AWS Builders 100AWS와 함께하는 클라우드 컴퓨팅 - 강철, AWS 어카운트 매니저 :: AWS Builders 100
AWS와 함께하는 클라우드 컴퓨팅 - 강철, AWS 어카운트 매니저 :: AWS Builders 100
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
GitHub Actions in action
GitHub Actions in actionGitHub Actions in action
GitHub Actions in action
 
Maven Nexus
Maven NexusMaven Nexus
Maven Nexus
 
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
[WSO2 API Manager Community Call] Mastering JWTs with WSO2 API Manager
 
Docker Networking
Docker NetworkingDocker Networking
Docker Networking
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to Kubernetes
 
Применяем Ansible
Применяем AnsibleПрименяем Ansible
Применяем Ansible
 
414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Docker London: Container Security
Docker London: Container SecurityDocker London: Container Security
Docker London: Container Security
 
Build automated Machine Images using Packer
Build automated Machine Images using PackerBuild automated Machine Images using Packer
Build automated Machine Images using Packer
 
Recap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover ClusteringRecap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover Clustering
 
[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용
 
[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트
[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트
[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트
 
Docker Container
Docker ContainerDocker Container
Docker Container
 
An introduction to terraform
An introduction to terraformAn introduction to terraform
An introduction to terraform
 

Semelhante a [Azure study group] azure의 부하분산

1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live세준 김
 
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)Kyunghun Jeon
 
1611 azure-live-세션-2
1611 azure-live-세션-21611 azure-live-세션-2
1611 azure-live-세션-2세준 김
 
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석Amazon Web Services Korea
 
AWS CLOUD 2018- AWS 네트워크 신규 기능 업데이트  (강동환 솔루션즈 아키텍트)
AWS CLOUD 2018- AWS 네트워크 신규 기능 업데이트  (강동환 솔루션즈 아키텍트)AWS CLOUD 2018- AWS 네트워크 신규 기능 업데이트  (강동환 솔루션즈 아키텍트)
AWS CLOUD 2018- AWS 네트워크 신규 기능 업데이트  (강동환 솔루션즈 아키텍트)Amazon Web Services Korea
 
[BRK40019] - 하이브리드 클라우드를 위한 Azure Networks 이해
[BRK40019] - 하이브리드 클라우드를 위한 Azure Networks 이해[BRK40019] - 하이브리드 클라우드를 위한 Azure Networks 이해
[BRK40019] - 하이브리드 클라우드를 위한 Azure Networks 이해재성 고
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례SONG INSEOB
 
AWS Native하게 Atlassian 서버 설치하기
AWS Native하게 Atlassian 서버 설치하기AWS Native하게 Atlassian 서버 설치하기
AWS Native하게 Atlassian 서버 설치하기SeongHan Kim
 
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016Amazon Web Services Korea
 
오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석Jennifer Noh
 
2017 신라대학교 azure에서 iaas 활용하기
2017 신라대학교 azure에서 iaas 활용하기2017 신라대학교 azure에서 iaas 활용하기
2017 신라대학교 azure에서 iaas 활용하기세준 김
 
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기Youngjae Kim
 
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobsYoungjae Kim
 
Windows azure를 활용한 cloud 개발 사례
Windows azure를 활용한 cloud 개발 사례Windows azure를 활용한 cloud 개발 사례
Windows azure를 활용한 cloud 개발 사례정현 남
 
게임 서비스에 딱 맞는 AWS 신규 서비스들로 게임 아키텍처 개선하기 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seo...
게임 서비스에 딱 맞는 AWS 신규 서비스들로 게임 아키텍처 개선하기 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seo...게임 서비스에 딱 맞는 AWS 신규 서비스들로 게임 아키텍처 개선하기 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seo...
게임 서비스에 딱 맞는 AWS 신규 서비스들로 게임 아키텍처 개선하기 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seo...Amazon Web Services Korea
 
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE  [제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE 흥래 김
 
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018Amazon Web Services Korea
 

Semelhante a [Azure study group] azure의 부하분산 (20)

20150115 AWS BlackBelt - Amazon VPC (Korea)
20150115 AWS BlackBelt - Amazon VPC (Korea)20150115 AWS BlackBelt - Amazon VPC (Korea)
20150115 AWS BlackBelt - Amazon VPC (Korea)
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live
 
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
 
1611 azure-live-세션-2
1611 azure-live-세션-21611 azure-live-세션-2
1611 azure-live-세션-2
 
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
 
AWS CLOUD 2018- AWS 네트워크 신규 기능 업데이트  (강동환 솔루션즈 아키텍트)
AWS CLOUD 2018- AWS 네트워크 신규 기능 업데이트  (강동환 솔루션즈 아키텍트)AWS CLOUD 2018- AWS 네트워크 신규 기능 업데이트  (강동환 솔루션즈 아키텍트)
AWS CLOUD 2018- AWS 네트워크 신규 기능 업데이트  (강동환 솔루션즈 아키텍트)
 
[BRK40019] - 하이브리드 클라우드를 위한 Azure Networks 이해
[BRK40019] - 하이브리드 클라우드를 위한 Azure Networks 이해[BRK40019] - 하이브리드 클라우드를 위한 Azure Networks 이해
[BRK40019] - 하이브리드 클라우드를 위한 Azure Networks 이해
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
 
AWS Native하게 Atlassian 서버 설치하기
AWS Native하게 Atlassian 서버 설치하기AWS Native하게 Atlassian 서버 설치하기
AWS Native하게 Atlassian 서버 설치하기
 
OpenStack Swift Debugging
OpenStack Swift DebuggingOpenStack Swift Debugging
OpenStack Swift Debugging
 
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
 
오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석
 
Ansible과 CloudFormation을 이용한 배포 자동화
Ansible과 CloudFormation을 이용한 배포 자동화Ansible과 CloudFormation을 이용한 배포 자동화
Ansible과 CloudFormation을 이용한 배포 자동화
 
2017 신라대학교 azure에서 iaas 활용하기
2017 신라대학교 azure에서 iaas 활용하기2017 신라대학교 azure에서 iaas 활용하기
2017 신라대학교 azure에서 iaas 활용하기
 
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
 
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
 
Windows azure를 활용한 cloud 개발 사례
Windows azure를 활용한 cloud 개발 사례Windows azure를 활용한 cloud 개발 사례
Windows azure를 활용한 cloud 개발 사례
 
게임 서비스에 딱 맞는 AWS 신규 서비스들로 게임 아키텍처 개선하기 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seo...
게임 서비스에 딱 맞는 AWS 신규 서비스들로 게임 아키텍처 개선하기 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seo...게임 서비스에 딱 맞는 AWS 신규 서비스들로 게임 아키텍처 개선하기 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seo...
게임 서비스에 딱 맞는 AWS 신규 서비스들로 게임 아키텍처 개선하기 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seo...
 
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE  [제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
 
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
다양한 솔루션으로 만들어가는 AWS 네트워크 보안::이경수::AWS Summit Seoul 2018
 

Mais de 세준 김

Microsoft Ignite the Tour Seoul - Msi20 Hybrid 운영
Microsoft Ignite the Tour Seoul - Msi20 Hybrid 운영Microsoft Ignite the Tour Seoul - Msi20 Hybrid 운영
Microsoft Ignite the Tour Seoul - Msi20 Hybrid 운영세준 김
 
Microsoft Ignite the Tour Seoul - Thr30034 WebApp
Microsoft Ignite the Tour Seoul - Thr30034 WebAppMicrosoft Ignite the Tour Seoul - Thr30034 WebApp
Microsoft Ignite the Tour Seoul - Thr30034 WebApp세준 김
 
Microsoft Ignite the Tour Seoul - AFUN40 Security
Microsoft Ignite the Tour Seoul - AFUN40 SecurityMicrosoft Ignite the Tour Seoul - AFUN40 Security
Microsoft Ignite the Tour Seoul - AFUN40 Security세준 김
 
2017 boot camp listen1_iaas
2017 boot camp listen1_iaas2017 boot camp listen1_iaas
2017 boot camp listen1_iaas세준 김
 
170325 스마트앱개발자포럼-세선1-부산창조혁신센터
170325 스마트앱개발자포럼-세선1-부산창조혁신센터170325 스마트앱개발자포럼-세선1-부산창조혁신센터
170325 스마트앱개발자포럼-세선1-부산창조혁신센터세준 김
 
1701 azure-live-세션-3
1701 azure-live-세션-31701 azure-live-세션-3
1701 azure-live-세션-3세준 김
 

Mais de 세준 김 (6)

Microsoft Ignite the Tour Seoul - Msi20 Hybrid 운영
Microsoft Ignite the Tour Seoul - Msi20 Hybrid 운영Microsoft Ignite the Tour Seoul - Msi20 Hybrid 운영
Microsoft Ignite the Tour Seoul - Msi20 Hybrid 운영
 
Microsoft Ignite the Tour Seoul - Thr30034 WebApp
Microsoft Ignite the Tour Seoul - Thr30034 WebAppMicrosoft Ignite the Tour Seoul - Thr30034 WebApp
Microsoft Ignite the Tour Seoul - Thr30034 WebApp
 
Microsoft Ignite the Tour Seoul - AFUN40 Security
Microsoft Ignite the Tour Seoul - AFUN40 SecurityMicrosoft Ignite the Tour Seoul - AFUN40 Security
Microsoft Ignite the Tour Seoul - AFUN40 Security
 
2017 boot camp listen1_iaas
2017 boot camp listen1_iaas2017 boot camp listen1_iaas
2017 boot camp listen1_iaas
 
170325 스마트앱개발자포럼-세선1-부산창조혁신센터
170325 스마트앱개발자포럼-세선1-부산창조혁신센터170325 스마트앱개발자포럼-세선1-부산창조혁신센터
170325 스마트앱개발자포럼-세선1-부산창조혁신센터
 
1701 azure-live-세션-3
1701 azure-live-세션-31701 azure-live-세션-3
1701 azure-live-세션-3
 

Último

JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 

Último (8)

JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 

[Azure study group] azure의 부하분산

  • 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 설정 필요
  • 7. ALB에 여러 Virtual IP 연결 부동 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 주소
  • 15. URL 기반 라우팅 (URL Path Routing)
  • 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초 • 트래픽 라우팅 방법은 우선순위, 가중치, 성능으로 통 세가지가 있으며, 중첩으로 설정이 가능
  • 26. Traffic Manager 가격 정책 구분 가격 처음 10억 개 DNS 쿼리/월 ₩648/1백만 쿼리 10억 개 초과 DNS 쿼리/월 ₩450/1백만 쿼리 상태 확인(Azure) Azure 끝점당 ₩432/월 상태 확인(외부) 외부 끝점당 ₩648/월
  • 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%