56
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 오길재, 테크니컬어카운트 매니저 Elastic Load Balancing Deep Dive & Best Practices

Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

Embed Size (px)

Citation preview

Page 1: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

오길재, 테크니컬어카운트 매니저

Elastic Load BalancingDeep Dive & Best Practices

Page 2: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

본 강연에서 다룰 내용

ü Elastic Load Balancing 소개

ü 애플리케이션 로드밸런서 심층 분석

ü 애플리케이션 로드밸런서 모범 사례

Page 3: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

Elastic Load Balancing 소개

Page 4: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

EC2Instance

Page 5: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

EC2Instance

EC2Instance

EC2Instance

Elastic Load Balancing

Page 6: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

Elastic Load Balancing은

아마존 EC2 인스턴스에서 운영중인 애플리케이션,

마이크로서비스 또는 컨테이너 서비스로

유입되는 트래픽을 자동 분산 처리

Page 7: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

Elastic Load Balancing은

복수의 가용영역을 이용해서

고가용성을 보장

Page 8: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

Customer VPC

EC2Instance

EC2Instance

us-w

est-1a

us-w

est-1b

AmazonRoute 53

ELB

ELB

Page 9: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

레이어 7 (애플리케이션)레이어 4 (네트워크)

TCP와 SSL 지원

클라이언트와 서버가 연결 중계

헤더 변경 없음

프록시 프로토콜로 요청에 대해 소스및 목적지 IP주소, 포트 추가

HTTP와 HTTPS 지원

연결은 로드 밸런서에서 종료되고로드 밸런서와 서버와 별도 연결

헤더 변경 가능

X-포워드-포 헤더를 통해 클라이언트IP 전달

Page 10: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

애플리케이션 로드밸런서심층 분석

Page 11: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

새롭고 풍부한 기능을 가진 레이어 7 로드밸런싱

플랫폼

AWS 에서 완전 관리, 확장성, 높은 가용률을

보장하는 플랫폼

1개의 로드밸런서로 여러 애플리케이션을 컨텐트 기반,

경로 기반, 호스트 기반으로 동시 분산 처리

레이어 7 로드밸런싱 플랫폼

Page 12: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

클래식 로드밸런서와

EC2 인스턴스 구성

EC2Instance

EC2Instance

EC2Instance

Page 13: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

두 개의 서로 다른

애플리케이션을 위해서는

2개의 클래식 로드밸런서

필요

ELB

EC2Instance

EC2Instance

EC2Instance

EC2Instance

EC2Instance

ELB

EC2Instance

orders.example.com

images.example.com

Page 14: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

ALB

/orders

example.com

EC2Instance

EC2Instance

EC2Instance

EC2Instance

EC2Instance

EC2Instance

/images

애플리케이션 로드밸런서

는 복수의 애플리케이션을

1개의 로드밸런서로 처리

Page 15: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

1 개의 로드밸런서로 통합이 가능하므로

Hourly 비용을 획기적으로 절약

Page 16: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

단, 이슈 발생 범위 제한, 조직내 운용 책임 구분을 위해 복수의

로드밸런서 운영에 대한 고려 필요

Page 17: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

복수의 컨테이너 서비스를 위한 복수의 포트를 1 개의

로드밸런서에 등록 가능

Amazon ECS 는 다이나믹 포트 맵핑을 통해 자동으로

태스크 등록

다른 컨테이너 기술과도 연동 가능

컨테이너형 애플리케이션 지원

Page 18: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

/orders

example.com

EC2Instance

EC2Instance

EC2Instance

/images

애플리케이션

로드밸런서는 컨테이너

서비스 등록 가능ECSContainer

ECSContainer

ECSContainer

ALB

컨테이너형 애플리케이션 지원

Page 19: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

마이크로 서비스와 컨테이너 기반 구조로

리소스 활용을 향상 시켜 비용 감소 기회 제공

Page 20: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

서비스 위한 유입 트래픽 처리를 위한 프로토콜과

포트를 정의

모든 로드밸런서는 최소한 1 개의 리스너가 필요하고

최대 10개 리스너 설정 가능

라우팅 룰들은 리스너에 정의

리스너

Page 21: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

애플리케이션 로드밸런서

리스너 리스너

리스너

Page 22: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

로드밸런서 뒷단 타겟에 대한 논리적인 그룹

타겟 그룹은 로드밸런서와 분리되어 존재 가능하고

필요시 로드밸런서에 연동 가능

오토스케링 그룹과 연동해서 타겟 그룹별로

스케일 인/아웃

타겟 그룹

Page 23: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

애플리케이션 로드밸런서

리스너 리스너

타겟그룹 #1

상태확인 상태확인 상태확인

타겟그룹 #2 타겟그룹 #3

타겟 그룹

Page 24: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

EC2 인스턴스, 마이크로서비스 또는 컨테이너 기반

애플리케이션이 해당

EC2 인스턴스의 복수의 포트를 동일한 타겟 그룹으로

등록 가능

1개의 타겟을 복수의 타겟 그룹에 등록 가능

타겟

Page 25: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

애플리케이션 로드밸런서

리스너 리스너

타겟그룹 #1

상태확인 상태확인 상태확인

타겟그룹 #2 타겟그룹 #3

EC2 EC2 EC2 EC2 EC2 EC2 ECS ECS ECS

타겟

Page 26: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

리스너와 타깃그룹간의 링크를 제공하고

조건과 작동으로 구성

요청이 룰의 조건과 일치하면 특정 타깃 그룹으로

전달

현재 최대 75개의 룰을 지원 향후 100개 룰 지원

Page 27: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

애플리케이션 로드밸런서

리스너#1 리스너#2

타겟그룹 #1

상태확인 상태확인 상태확인

타겟그룹 #2 타겟그룹 #3

EC2 EC2 EC2 EC2 EC2 EC2 ECS ECS ECS

룰 (기본) 룰 (*/img/*) 룰 (기본)

Page 28: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

웹소켓 네이티브 지원, 싱글 TCP 연결을

통한 전이중 통신 채널 지원

HTTP/2 지원으로 대부분의 최신 웹브라우저에서

페이지 로딩시간 개선

실시간 및 스트리밍 애플리케이션에 대한 성능 개선

웹소켓 또는 HTTP/2 추가적인 설정 불필요

성능 향상

Page 29: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

IPv6 네이티브 지원

API 를 통해 삭제 제한을 설정하면 실수로 인한

로드밸런서 삭제 방지 가능

기능 개선

Page 30: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

EC2Instance

Page 31: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

상태확인은 서비스 요청을 비정상 또는

장애 인스턴스들로 전달 차단

Page 32: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

EC2Instance

EC2Instance

EC2Instance

ALB

Page 33: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

HTTP와 HTTPS 상태 확인

빈도 , 실패 임계치, 성공시 응답 코드를 고객이 임의대로

설정 가능

자세한 상태 확인 실패 원인을 API를 통해 확인 가능하고

AWS 콘솔에 표시

모든 백엔드 인스턴스의 상태 확인이 실패하면 Fail open

으로 서비스 요청 처리

상태 확인

Page 34: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

Customer VPC

EC2Instance

EC2Instance

us-w

est-1a

us-w

est-1b

AmazonRoute 53

복수의 가용 영역

ALB

ALB

Page 35: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

6

1개 가용영역

가용성 위험

2개 가용영역

6 6

100% 자원 추가

3개 가용영역

3 3 3

50% 자원 추가

복수의 가용 영역

Page 36: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

인스턴스 불균형

Customer VPC

EC2Instance

us-w

est-1a

us-w

est-1b

AmazonRoute 53

EC2Instances

ALB

ALB

Page 37: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

Cross-Zone Load Balancing

Customer VPC

EC2Instance

us-w

est-1a

us-w

est-1b

AmazonRoute 53

EC2Instances

ALB

ALB

Page 38: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

복수의 가용 영역에 균등하게 서비스 요청 분산

DNS 캐싱 영향을 흡수하고 백엔드 인스턴스 활용

불균형을 제거

크로스 존 트래픽에 대한 트래픽 추가 비용 없고

기본으로 enable 되어 있음

Cross-Zone Load Balancing

Page 39: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

각각의 타겟 그룹에

독립적인

오토스케일링이 적용

/orders

example.com

EC2Instance

EC2Instance

EC2Instance

EC2Instance

/images

EC2Instance

오토스케일링

ALB

Page 40: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

SSL 협상 정책은 최신 업계 모범사례들를 준수하는 암호

및 프로토콜을 제공

Amazon.com 트래픽에서 검증된 보안 및 클라이언트

연결성을 모두 만족하는 최적화 제공

SSL 오프로딩

Page 41: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

Amazon 인증서 관리자 (ACM)와 통합

수초 내에 SSL 인증서 생성 및 로드 밸런서와 연결

만료 인증서 자동 갱신되며 무료

ACM 연동

Page 42: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

로드밸런서 레벨에서 요청을 모니터하고 웹 응용

프로그램을 악성 활동으로부터 보호

WAF 룰 및 조건에 따라 웹 요청에 대한 카운트, 차단

또는 허용

AWS WAF 연동

Page 43: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

애플리케이션 로드밸런서모범 사례

Page 44: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

각 로드밸런서에 대해 CloudWatch 메트릭제공

로드밸런서 및 애플리케이션 스택의 상태를 자세히 파악

가능하고 1 분 단위로 모든 메트릭 제공

로드 밸런서와 타깃 그룹 수준에 대해 메트릭 제공

CloudWatch 알람을 통해 경보또는 조치를 할 수 있도록

구성 가능

운영 모니터링

Page 45: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

정상 인스턴스 갯수

각 가용 영역 정상 인스턴스 수

비정상적인 인스턴스의 가장 일반적인 원인은 타임아웃

초과

다른 EC2 인스턴스에서 백엔드 인스턴스에 반복 요청

가용 영역 단위로 표시

Page 46: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

지연

요청이 로드 밸런서를 떠나 백엔드 인스턴스로 부터

응답을받을 때까지의 경과 시간 (초)

최소, 평균 및 최대 CloudWatch 통계 사용, 지연시간의

상한과 하한 표시

액세스 로그를 사용하여 요청별 디버깅 가능

Page 47: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

거부된 접속 카운트

로드 밸런서가 요청을 라우팅하여 정상적인 백엔드

인스턴스와 연결을 설정할 수 없어 거부 된 연결 수량

클래식 로드밸런서의 서지 큐 메트릭과 동일

일반적으로 수용 용량이 부족시 발생

Page 48: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

로드 밸런서 요청 응답 시간이 백분위 로 제공.

응답 시간의 90 번째, 95 번째, 99 번째 또는 99.9 번째

백분위에 대한 가시성 제공

애플리케이션에 대해 보다 의미 있고 엄격한 성능

목표를 관리

CloudWatch 백분위

Page 49: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

CloudWatch 백분위

Page 50: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

로드 밸런서가 처리하는 각 요청에 대한 자세한 정보

요청 시간, 클라이언트 IP 주소, 대기 시간, 요청 경로,

서버 응답, 암호 및 프로토콜, 사용자 에이전트

5 분 또는 60 분마다 Amazon S3 버킷으로 전송

AWS CloudTrail을 사용하여 계정에 대한 애플리케이션

로드 밸런서 API 호출을 기록하고 로그 파일을 전달

로깅

Page 51: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

사용자 정의 헤더를 사용하여 각 요청에 고유한 추적

식별자를 삽입

: X-Amzn-Trace-ID

요청 추적을 위해 요청 체인을 통해 추적 식별자가 보존.

추적 식별자는 액세스 로그에 포함되며 응용 프로그램

자체 기록 가능

요청 추적

Page 52: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

체크 포인트

클래식 로드밸런서 애플리케이션 로드밸런서

프로토콜 TCP, SSL, HTTP, HTTPS HTTP, HTTPS

플랫폼 EC2-Classic, EC2-VPC EC2-VPC

상태 확인 ✔ 개선됨

CloudWatch ✔ 개선됨

경로/호스트 기준라우팅 ✔

컨테이너 지원 ✔

웹 소켓 & HTTP/2 ✔

Page 53: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

체크 포인트

TCP/SSL 또는 EC2-Classic,

클래식 로드밸런서 이용

그 외에 모든 다른 경우에는,

애플리케이션 로드밸런서 이용

Page 54: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

본 강연이 끝난 후…

클래식 로드밸런스 모범 사례• https://aws.amazon.com/articles/1636185810492479

애플리케이션 로드밸런서 소개• https://aws.amazon.com/blogs/aws/new-aws-application-load-

balancer/

애플리케이션 로드밸런서 이해하기• http://docs.aws.amazon.com/elasticloadbalancing/latest/application/in

troduction.html

클래식 로드밸런스 vs. 애플리케이션 로드밸런서• https://www.sumologic.com/aws/elb/aws-elastic-load-balancers-

classic-vs-application/

Page 55: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

함께 해주셔서 감사합니다!

Page 56: Elastic Load Balancing 심층 분석 - AWS Summit Seoul 2017

https://www.awssummit.kr

AWS Summit 모바일 앱을 통해 지금 세션 평가에참여하시면, 행사후 기념품을 드립니다.

#AWSSummit 해시태그로 소셜 미디어에 여러분의행사 소감을 올려주세요.

발표 자료 및 녹화 동영상은 AWS Korea 공식 소셜채널로 공유될 예정입니다.

여러분의 피드백을 기다립니다!