01. ELB (Elastic Load Balancing)
1.1 ELB란?
1.1.1 고가용성 환경 구성
- 서버 장애에 대비해 서비스의 연속성을 보장하려면 서버 다중화를 통한 고가용성 구성이 필요하다.
- 인스턴스 A에 장애가 발생해도 인스턴스 B나 C가 존재하여 서비스를 지속시킬 수 있다.
- 부하 부산 기술인 로드 밸런서는 서버의 상태를 파악하고 데이터를 분산하여 전달하는 접전 역할을 수행한다.
1.1.2 ELB 정의
- ELB는 AWS에서 제공하는 로드 밸런싱 기술이다.
- 서비스 사용자는 서버 인스턴스를 직접 타깃하여 요청을 보내는 것이 아닌 로드 밸런서를 타깃으로 요청을 보낸다.
- 로드 밸런서 구성으로는 리스너와 대상 그룹이 있다.
- 리스너
- 프로토콜 및 포트를 사용하여 연결 요청을 확인하는 프로세스다.
- 서비스하고자 하는 포로토콜과 포트를 정하는 규칙을 생성
- 대상 그룹
- 하나 이상의 대상을 라우팅하여 부하 분산을 하는 데 사용한다.
- 로드 밸런서는 주기적으로 대상이 정상인지 확인하고 정상 상태의 대상에게만 데이터를 전달한다.
1.1.3 ELB 종류
- Application Load Balancer (ALB)
- HTTP나 HTTPS와 같이 웹 애플리케이션에 대한 분산 처리를 제공하는 로드 밸런서
- Network Load Balancer (NLB)
- TCP나 UDP 프로토콜에 대한 포트 정보를 정의하여 네트워크 기반의 분산 처리를 제공하는 로드 밸런서
- Classic Load Balancer (CLB)
- VPC의 예전 버전인 EC2-Classic에 대한 분산 처리를 제공하는 이전 세대 로드 밸런서
구분 |
ALB |
NLB |
CLB |
프로토콜 |
HTTP, HTTPS |
TCP, UDP, TLS |
TCP, TLS, HTTP, HTTPS |
처리 속도 |
느림 |
빠름 |
중간 |
플랫폼 |
VPC |
VPC |
VPC, EC2-Classic |
OSI 계층 |
7계층 |
4계층 |
- |
동일 인스턴스로 다수 포트 전달 |
지원 |
지원 |
미지원 |
IP를 통한 관리 |
미지원 |
지원 |
미지원 |
프라이빗 링크 지원 |
미지원 |
지원 |
미지원 |
경로 기반 라우팅 |
지원 |
미지원 |
미지원 |
호스트 기반 라우팅 |
지원 |
미지원 |
미지원 |
1.1.4 ALB vs NLB
- ALB
- HTTP(S)에 대해 세부적이고 다양한 정책으로 라우팅을 할 수 있다.
- ex) URL 경로 기반 라우팅, 호스트 경로 기반 라우팅, HTTP 헤더 기반 라우팅 등
- Lambda 함수를 호출하여 HTTP(S) 요청을 처리할 수도 있다.
- NLB
- 가장 빠른 처리 속도가 가능하다.
- 고정 IP나 탄력적 IP를 보유할 수 있다.
- VPC 엔드포인트 서비스로 연결하여 프라이빗 링크 구성을 할 수 있다.
1.1.5 ELB 통신 방식
- 인터넷 연결
- 퍼블릭 주소가 있어 인터넷을 통해 요청을 로드 밸런서에 등록된 인스턴스로 라우팅한다.
- 내부
- 프라이빗 주소만 있어 로드 밸런서를 위한 VPC에 엑세스하여 등록된 인스턴스 등으로 라우팅한다.
1.1.6 ELB 특징
- 고가용성
- 상태 확인
- 보안 기능
- 보안 그룹을 적용하여 보안 옵션을 부여할 수 있다.
- 단 NLB는 보안 그룹이 적용되지 않는다.
- 4계층/7계층 로드 밸런싱
- HTTP(S)의 7계층 애플리케이션이나 TCP/UDP의 4계층의 로드 밸런싱을 사용할 수 있다.
- 운영 모니터링
- 애플리케이션 성능을 실시간으로 모니터링할 수 있다.