ELB는 어떻게 생성하고, 세팅(구성)을 어떻게 할까?
로드 밸런서(ELB) 생성 버튼 위치
--
EC2 -> 로드밸런서 -> 로드밸런서 생성 버튼
--
[ELB 생성 과정] 로드 밸런서 유형 비교 및 선택
--
Application Load Balancer (ALB)는
애플리케이션 계층 (OSI 7계층)에서 작동하는 로드 밸런서로,
HTTP 및 HTTPS 트래픽을 주로 처리하는 로드밸런서다.
(주로 웹 애플리케이션, 마이크로서비스, RESTful API 같은 애플리케인션에 사용)
주요 특징
- HTTP, HTTPS 프로토콜을 처리하며, HTTP/2 및 WebSocket을 지원
- URL 경로 기반 or HTTP 헤더, 쿼리 문자열, 쿠키 등을 기반으로 트래픽을 특정 대상으로 라우팅 가능
(이를 통해 다양한 애플리케이션을 하나의 로드 밸런서에서 관리 가능) - 여러 대상 그룹을 설정하여 트래픽 분산 가능
- HTTPS 트래픽을 ALB에서 암호화 해제(SSL/TLS 종료)하여 서버의 부담을 줄일 수 있다.
Network Load Balancer (NLB)
전송 계층 (OSI 4계층)에서 작동하는 로드 밸런서로,
주로 TCP, UDP 같은 트래픽을 처리하는 로드밸런서다.
매우 낮은 지연 시간과 높은 처리량을 제공하므로 고성능 애플리케이션에 적합하다.
주요 특징
- 매우 낮은 지연 시간과 높은 처리 성능을 제공하여 초당 수백만 건의 요청을 처리할 수 있다.
- OST 4계층에서 동작하여 TCP, UDP 프로토콜을 사용하는 트래픽을 처리한다.
- 로드 밸런서에 고정된 IP 주소를 부여할 수 있어, 변경되지 않는 IP를 사용해야 하는 애플리케이션에 적합
- 클라이언트의 소스 IP를 유지하면서 트래픽을 백엔드 인스턴스로 전달 가능
(백엔드에서 클라이언트의 IP를 직접 확인할 수 있다.) - 무거운 트래픽을 처리하기 때문에 금융 거래 시스템, 게임 서버, 실시간 애플리케이션 등 성능이 중요한 환경에서 사용
Gateway Load Balancer (GWLB)
네트워크 계층 (OSI 3계층)에서 작동하는 로드 밸런서로,
네트워크 트래픽을 처리하는 보안 or 네트워크 가상 어플라이언스(방화벽, IDS/IPS, 패킷 검사 등)와 통합에 사용된다.
주요 특징
- 네트워크 트래픽을 가상 방화벽이나 침입 탐지 시스템(IDS), 침입 방지 시스템(IPS)과 같은 보안 어플라이언스에
분산시켜 처리할 수 있다. - IP 패킷 단위로 트래픽을 처리 (보안 검토 및 네트워크 트래픽 분석에 적합)
- 가상 어플라이언스를 자동으로 확장하거나 장애가 발생하면 자동으로 복구할 수 있다.
- 동일한 세션의 트래픽이 동일한 어플라이언스를 거쳐 처리되도록 일관된 트래픽 흐름을 유지한다.
현재 목표는 웹 페이지(쇼핑몰)를 배포하는 EC2 인스턴스에 연결할 로드밸런서를 만드는 것이고
HTTP 및 HTTPS의 특징을 활용해서 로드 밸런싱을 하기 위해
Application Load Balancer (ALB)를 선택한다.
--
[ELB 생성 과정] 기본 구성
--
로드 밸런서 이름은
해당 로드 밸런서(컴퓨터)의 이름을 작성하는 파트로
다른 로드 밸런서와 구분하기 위해 작성한다.
체계는
해당 로드 밸런서가 인터넷을 통해서만 접근할 수 있도록 할 것인지,
내부에서만 접근을 가능하게 할지 결정하는 파트다.
- 인터넷 경계 : 퍼블릭 IP 주소를 사용하여 라우팅
- 내부 : 프라이빗 IP 주소를 사용하여 라우팅
사용자가 접근할 수 있어야 하므로 인터넷 경계를 체크했고,
IPv4 주소를 사용할 것이므로 IPv4를 선택했다.
--
[ELB 생성 과정] 네트워크 매핑
--
가용 영역(Availability ZON, AZ)은
AWS의 리전(Region) 내부에 있는 물리적으로 분리된 데이터 센터들을 의미한다.
ELB는 여러 AZ에 걸쳐 배포되고, 트래픽을 분산하고 고가용성을 보장하게 된다.
이렇게 분리된 데이터 센터에 분산하여 배포하게 되는 것이다.
(하나의 가용 영역에 문제가 발생해도 다른 가용 영역에서 트래픽을 처리할 수 있다. [고가용성 보장])
ap-northeast-2a, ap-northeast-2b, ap-northeast-2c, ap-northeast-2d는
모두 서울 리전(ap-northeast-2)에 위치한 서로 다른 가용 영역을 의미하고
가능한 많은 가용 영역으로 분산 배포하는 것이 좋기 때문에 (가용 영역에 제한을 두지 않고 모든 영역에 트래픽 전달 가능)
모든 가용 영역을 선택했다.
VPC는 기본으로 선택했다.
--
[ELB 생성 과정] 보안 그룹
--
ELB에서 사용할 보안 그룹은 EC2 인스턴스에 사용한 보안 그룹과는 별개로
만약 ELB에 적용할 보안 그룹이 없다면 생성 후 적용한다.
보안 그룹 생성 방법
ELB에 적용할 보안 그룹은 아래와 같이 정의되어 있다.
해당 ELB에 접근하는 트래픽 중에서 HTTP(80포트)와 HTTPS(443포트)로 접근하는 트래픽만 허용하도록 했으며
외부로 전달하는 트래픽은 모든 트래픽으로 열어두었다.
--
[ELB 생성 과정] 리스너 및 라우팅 (+ 대상 그룹)
--
ELB로 들어오는 요청을 어떤 대상(EC2 인스턴스)으로 전달할 것인지 설정하는 파트다.
대상 그룹 생성 방법
리스너 (Listener)는
로드 밸런서가 클라이언트로부터 트래픽을 수신하는 엔드포인트를 정의하는 역할을 한다.
즉, 로드 밸런서가 어떤 포트와 프로토콜로 트래픽을 받을지 설정한다.
간단하게
외부로부터 ELB로 요청한 트래픽을 어떻게 받을지 정의하는 것이다.
라우팅 (Routing)은
리스너가 수신(받은)한 트래픽을 어떻게 처리하고,
어떤 대상그룹으로 전달할지를 결정하는 역할을 한다.
즉, 리스터낙 트래픽을 수신하면, 해당 트래픽을 분석하여 정의된 라우팅 규칙에 따라 트래픽을 지정한 대상 그룹으로 전달한다.
HTTP 형태 (80포트)로 ELB에 요청한 트래픽은 "real-moment-target-group" 대상 그룹으로 트래픽을 분배하여 전달하도록 설정했다.
--
참고 및 출처
'AWS' 카테고리의 다른 글
[ELB] ACM(SSL/TLS 인증서)를 통해 HTTPS 설정하기 (+ HTTP요청시 HTTPS로 자동 리다렉트) (0) | 2024.09.06 |
---|---|
ACM 인증서 (0) | 2024.09.05 |
[ELB] ELB (Elastic Load Balancer) 란? (0) | 2024.09.05 |
[EC2] 인스턴스 내부에 Docker 설치하기 (0) | 2024.09.05 |
[EC2] 인스턴스 살펴보기 및 내부 접속 (0) | 2024.09.05 |