what is Load Balacing?
- 네트워크 기술의 일종이며, 네트워크 트래픽을 하나 이상의 서버나 장비로 분산하는 기술
- Load Balancer -> 로드 밸런싱을 수행하는 SW, HW
작업에 부하가 걸리면 해결하는 방법
(웹 트래픽 증가에 대한 처리 방식)
1. 스케일 아웃
- 비슷한 자원의 컴퓨터를 더 증설하는 방식
- 이 방법은 Auto Scaling과 관련이 있으며, 이 과정에서 LB가 사용될 수 있음.
(트래픽이 많아지면, 컴퓨터를 더 만드는 데에는 AS가 쓰이고, 이렇게 만들어진 컴퓨터에 트래픽을 분산시키는 데에는 LB가 쓰임)
- 하나가 고장 나도 다른 컴퓨터들이 그 일을 하고 있음으로, 가용성이 높음
2. 스케일 업
- 더 높은 성능을 가진 서버로 업그레이드
- 업그레이드 과정에서 문제가 발생할 수도 있어, 가용성의 문제가 발생
- 비용의 문제
AWS Elastic Load Balacing
- EC2 instance, container, IP Address 같은 여러 대상에 대해 수신한 Application 또는 network traffic을 여러 AZ에 배포
- Workload를 다수의 Computing Resource로 분산
- Application의 가용성, 내결함성 향상
ELB의 특징
1. Health Check
- ELB와 연결된 instance의 연결 상태를 수시로 체크(주기는 설정 가능)
- HTTP, HTTPS: 웹 페이지 접속 시도에 대한 응답 코드(200)의 정상 반환 여부로 상태 확인
2. Sticky Session
- client가 처음 접속한 서버로 계속 연결시켜줌
- 처음 연결된 client에 별도의 http기반의 쿠키 값 생성, 이용
3. SSL termination 및 보안 기능
(web 서버로 데이터를 보내기 전에 인증 절차가 있음)
(또 ELB와 하위에 연결된 EC2간에도 인증 절차가 있음)
ELB의 종류
1. Application Load Balacer
2. Network Load Balacer
3. Classic Load Balacer
Application Load Balacer
1. listener (어떤 요청이 어떤 포트, 프로토콜로 온 것을 어느 Target으로 보낼 것인가)
- client의 접속 요청 검사 -> target group으로 보냄
- Rule을 정의 : TargetGroup, Condition, Prority
2. target group(서비스를 하는 서버들의 그룹) : 등록된 target으로 요청을 보냄(protocol, port이용)
작동방식
1. client에서의 traffic을 받아, target group의 instance에 요청을 라우팅
2. target group instance의 상태 모니터링(Health Check)
3. listner - incoming traffic을 허용, 어떤 protocol + port number로 접속하는지 정해 놓아야 함.
AZ과 로드 밸런서 노드
- 여러 개의 가용 영역 활성화 - 각 AZ에 하나 이상의 대상 등록
- 교차 영역 로드 밸런싱 - 모든 AZ에 등록된 대상으로 트래픽 분산
(교차 영역 로드 밸런싱 활성화 시, AZ 하위에 있는 EC2의 개수를 고려하여 트래픽 분산)
(교차 영역 로드 밸런싱 비 활성화 시, AZ하위에 있는 EC2의 개수를 고려하지 않고 AZ에 균등하게 트래픽 분산)
로드 밸런서 체계
1. 내부 로드 밸런서
- private IP를 사용하여 요청을 라우팅
- public IP가 없는 target instance도 요청을 수신할 수 있음
- VPC 내부만 접속
2. 인터넷 경계 로드 밸런서
- public IP, private IP 모두 사용
- VPC 내부 및 인터넷을 통해 client의 요청을 라우팅
'섭섭의 공부 > Cloud Computing' 카테고리의 다른 글
[7주차] AWS - Auto Scaling 이론 (0) | 2021.10.07 |
---|---|
[6주차] AWS - Elastic Load Balancer 사용하기 (0) | 2021.10.07 |
[5주차] AWS - Hosting Static Website on S3 (0) | 2021.10.07 |
[5주차] AWS - LAMP WebServer 만들기 (0) | 2021.10.07 |
[5주차] AWS - Cloud Front, S3 (0) | 2021.10.07 |