Search
Duplicate
📒

[AWS - SAA] 05-1. Elastic LoadBalancer

상태
완료
수업
AWS - Solutions Architect
주제
AWS-Network
연관 노트
3 more properties
참고

고가용성 및 스케일링

수직 확장성

NOTE
인스턴스 크기를 확장하는 것을 의미!
주니어 직원 → 시니어 직원 (더 뛰어난 사람으로 변경)
전화 교환원으로 예를 드는경우, 신입사원의 경우 1분에 5통을 받지만, 경력사원은 1분에 10통을 받을 수 있다.
신입사원 → 경력사원으로 전환하는 것이 수직확장성!
EC2로 생각하면 인스턴스의 사양을 높이는것!
데이터베이스와 같이 분산되지 않은 시스템에서 흔히 사용된다.

수평 확장성

NOTE
인스턴스 개수를 확장하는 것을 의미!
직원을 더 뽑음
전화 교환원으로 예를 드는경우, 여러명을 고용하는 방법!
EC2로 생각하면 서버수를 늘려서 로드밸런싱을 해준다.
수를 늘린다 ⇒ 스케일 아웃
수를 줄인다 ⇒ 스케일 인
수평 확장을 했다는건 분배 시스템이 있다는걸 의미한다!

고가용성

NOTE
시스템을 적어도 둘 이상의 AWS AZ나 데이터 센터에서 가동 중이라는걸 의미한다! ⇒ 하나가 터져도 동작함
뉴옥지사가 터져도 샌프란시스코 지사가 열일한다!
전화 교환원으로 예를 드는경우, 지사를 여려곳에 두는 방식!
EC2로 생각하면 다중 AZ를 사용해서 로드 밸런싱해주는 것

ELB (Elastic Load Balancer)

NOTE
애플리케이션 트래픽을 여러 대상에 자동으로 분산시켜 안정적인 AWS서비스 환경을 운용하는데 도움을 주는 서비스다!
health check 가능
HTTP 2.0, Websocket지원
고정 세션(Sticky), SSL Offload(SSL 암복호화)

로드 밸런싱 종류

Application Load Balancer (ALB)
HTTP, HTTPS, WebSocket
Network Load Balancer (NLB)
TCP, TLS(Secure TCP), UDP 지원
Gateway Load Balancer (GWLB)
3계층에서 작동하므로 3계층과 IP프로토콜에서 동작함.

Load Balancing 기능

NOTE

부하분산 처리

클라이언트의 무수한 요청들을 분산해서 처리한다.
Load(부하), Balancing(분산)이란 컴퓨터 네트워크의 기술의 일종으로 둘 혹은 셋이상의 중앙처리 장치와 같은 컴퓨터 자원들에게 작업을 나누는것을 말한다.

엔드포인트 역할 제공

8개의 인스턴스에 대해 각 IP로 접속을하면 매우 복잡해질것..
스케일 아웃에 대한 하나의 엔드포인트를 제공하기도 한다.
인스턴스가 여러개여도 하나의 접속경로로 통일할 수 있음!

Application Load Balnacer

NOTE
7계층 Application Layer를 다루는 로드밸런서이다!
URL 대상 경로에 기반한 라우팅 가능
URL의 호스트 이름에 기반한 라우팅 가능
지연시간 ⇒ 400ms

실습

실습과정

Network Balancing 기능

NOTE
4계층 Transport Layer를 다루는 로드밸런서이다!
TCP, UDP, HTTP, HTTPS를 사용하는 요청을 받아들여 부하분산을 실시한다.
ALB보다 성능이 더 빠르기 때문에, 고성능을 요구하는 환경에서의 부하분산에 적합하다!
IP + Port를 보고 스위칭해준다!
트래픽은 인스턴스의 기본(Primary) 네트워크 인터페이스에 지정된 프라이빗 IP를 통해 라우팅된다
지연시간 ⇒ 100ms, 비용이 들지 않는다.

실습

ALB와 동일하게 생성해주면 된다.

Gateway Load Balancer(GWLB)기능

NOTE
3계층 Network Layer를 다루는 로드밸런서이다!
방화벽, 심층 및 패킷검사 시스템 같은 가상 어플라이언스를 배포, 확장 및 관리할 수 있다.
트래픽이 EC2에 도달하기 전에 먼저 트래픽을 검사하거나 분석하거나 인증하거나 로깅하는 작업을 먼저 수행함!
6081번의 GENEVE 프로토콜 사용!

Sticky Session

NOTE
동일한 클라이언트가 항상 로드 밸런서의 동일한 인스턴스로 가도록 고정성 구현!
Clinet1은 일정시간동안 1번에 연결됨
사용자가 세션 데이터를 잃지 않도록 해야할 때 사용한다.
2가지 종류의 쿠키가 있다.
CUSTOM COOKIE
타겟에 의해 생성
애플리케이션에 필요한 모든 사용자 정의 속성 포함
APPLICATION COOKIE
로드 밸런서에서 생성
쿠키 이름은 AWSALBAPP

Cross-Zone 로드 밸런싱

NOTE
각 로드 밸런서 인스턴스는 전체 가용 영역에 등록된 모든 인스턴스에 전반적으로 고르게 분산된다!
교차영역 로드밸런싱을 사용하지 않으면, ALB가 가진 Node에 대해서만 분산을함!
각 AZ에 있는 ALB는 가용 영역에 관계없이 전체 10개에 대해 고르게 분배한다!
각 ELB의 cross-zone 부하 분산 기능
ALB
항상 이 기능을 사용할 수 있다. (Disable이 불가능함)
AZ간 데이터 전송에 관한 비용을 따로 지불하지 않는다.
NLB
기본적으로 DIsable 상태이다.
교차 영역 로드 밸런싱을 활성화 할 경우 추가 비용을 지불해야 한다.

ELB - SSL 인증서

NOTE
SSL 인증서를 이용해 클라이언트 - 로드 밸런서 사이의 데이터 전송에 암호화가 가능하다.
SSL(Secure Socket Layer)
TLS(Transport Layer Security)
HTTPS 리스너를 설정

SNI(Server Name Indication)

웹 서버 상에 다수의 SSL을 발급해 여러 개의 웹사이트를 제공하도록 하는 문제를 해결해줌
클라이언트가 초기 SSL 핸드세이크에서 대상 서버의 호스트 이름을 명시해야 한다.
⇒ 클라이언트가 연결하고자 하는 웹 사이트의 이름을 예기하면, 서버가 어떤 인증서를 불러올지 알 수 있다.

Connection Draining

NOTE
인스턴스가 등록 취소 또는 비정상적인 상태일 때 인스턴스에 어느 정도의 시간을 주어 in-flight 요청을 완료할 수 있도록 만들어 주는 기능이다.
연결이 draining 되면, 즉 인스턴스가 draining되면 ELB는 등록 취소 중인 인스턴스로는 새로운 요청을 보내지 않는다.
즉 새로운 요청은 shut down된다.