What is load balancing?
- 부하 분산은 트래픽을 여러 서버 (예: EC2 인스턴스) 다운스트림으로 전달하는 서버
- 예) 3개의 인스턴스와 탄력적 로드 밸런서가 있을 때,
세 명의 사용자가 탄력적 로드 밸런서에 바로 연결되고, 첫 번째 것에 하나의 백엔드 EC2 인스턴스에서 로드가 전송되도록 하여
EC2 인스턴스들 사이에 밸런스를 맞추게 됨
여기서 사용자는 백엔드 인스턴스를 모르게 되며 탄력적 로드 밸런서에 연결하기만 하여 단지 연결성의 한 끝 부분만 제공
Why use a load balancer?
- 여러 다운스트림 인스턴스에 부하 분산
- 애플리케이션에 대한 단일 액세스 지점 (DNS) 노출
- 상태 확인 메커니즘을 사용해 다운스트림 인스턴스의 장애를 원활하게 처리
- 인스턴스에 대한 정기적인 상태 확인 수행
- 웹사이트에 SSL 종료 (HTTPS) 제공
- 쿠키로 접착력 (고정성) 강화
- 영역 간 고가용성
- 공용 트래픽과 개인 트래픽을 분리
Why use an Elastic Load Balancer?
- 탄력적 로드 밸런서는 관리된 로드 밸런서
AWS가 이를 관리하고 작동할 것이라고 보증하며 업그레이드와 유지관리, 고가용성을 보장
AWS는 로드 밸런서의 동작을 조정할 수 있는 몇 가지의 구성 노브 (knobs) 를 제공 - 자체 로드 밸런서를 설정하는 것은 비용이 적게 들지만 훨씬 더 많은 노력이 필요하며, 확장성 측면에서 특히 힘듦
- 로드 밸런서는 많은 AWS 제공 서비스와 통합될 수 있음
예) EC2, EC2 자동 확장 그룹, Amazon ECS, AWS Certificate Manage (ACM), CloudWatch,
Route 53, AWS WAF, AWS Global Accelerator이 있으며 시간이 지남에 따라 더욱 증가
Health Checks
- 상태 확인은 탄력적 로드 밸런서에서 EC2 인스턴스가 적합하게 작동하는지 검증하는 방법
작동하지 않을 경우 인스턴스로 어떤 트래픽도 보내지지 않으므로 이는 로드밸런서에 중요 - 상태 버튼을 확인하기 위해 포트와 라우트를 사용 (port and route)
- 예) HTTP 프로토콜이 존재하고 포트는 4567, 엔드 포인트는 /health
이 때 라우터가 앱의 관점에서 앱의 상태를 확인하는 것이 가장 쉬운 방법으로
HTTP의 상태 코드가 200 (OK) 가 아닌 경우, 인스턴스가 비정상적으로 표시되며 인스턴스에 트래픽을 보내지 않음
Types of load balancer on AWS
- AWS에는 4가지 종류의 관리형 로드 밸런서가 존재
- Classic Load Balancer, CLB (2009년, V1 - old generation)
HTTP, HTTPS, TCP, SSL, secure TCP와 호환되지만 더이상 사용하지 않기를 권장 - Application Load Balancer, ALB (2016년, v2 - new generation)
HTTP, HTTPS, WebSocket 프로토콜을 지원 - Network Lad Balancer, NLB (2017년, v2 - new generation)
TCP, TLS (secure TCP), UDP 프로토콜을 지원 - Gateway Load Balancer, GWLB (2020년)
네트워크 계층 (3계층)을 운영하며, IP 프로토콜을 지원
- 차세대 로드 밸런서를 사용하는 것이 더 많은 기능을 제공
- 일부 로드 밸런서는 내부 (개인, 프라이빗) 또는 외부 (공공, 퍼블릭) ELB로 설정 가능
Load Balancer Security Groups
- 사용자들은 HTTP나 HTTPS를 사용하는 어느 곳에서부터 로드 밸런서에 접근할 수 있으므로
로드밸런서 보안 그룹 룰은 포트 80, 443이며 0.0.0.0/0으로 어디에서나 가능하며 로드 밸런서에 사용자들이 연결되도록 허락 - EC2 인스턴스는 오직 로드 밸런서로부터 직접 오는 트래픽만 허락하므로 (로드밸런서에서 비롯된 트래픽만 허가)
EC2 인스턴스의 보안 그룹 룰은 포트 80에서 HTTP 트래픽을 허락 - 이를 통해 보안 매커니즘을 강화
'Cloud > AWS' 카테고리의 다른 글
[SAA] ALB (0) | 2022.03.04 |
---|---|
[SAA] CLB (0) | 2022.03.03 |
[SAA] 고가용성 및 스케일링성 (0) | 2022.03.02 |
[SAA] EBS vs EFS (0) | 2022.01.24 |
[SAA] EFS (0) | 2022.01.24 |