728x90
AWS 관리형 로드 밸런서 종류
- 애플리케이션 로드 밸런서 (ALB)
- 2016년 출시, HTTP, HTTPS, WebSocket 프로토콜 지원
- 네트워크 로드 밸런서 (NLB)
- 2017년 출시, TCP, TLS, Secure TCP, UDP 프로토콜 지원
- 게이트웨이 로드 밸런서 (GWLB)
- 2020년 출시, 네트워크 층에서 작동하며 3계층과 IP 프로토콜에서 작동
보안
- 로드 밸런서 접근 허용
- 포트 범위: 80, 443 (HTTP, HTTPS)
- 소스: 0.0.0.0/0 (어디서든 접근 가능)
- EC2 인스턴스 보안
- 로드 밸런서를 통해 들어오는 트래픽만 허용
- 보안 그룹 규칙: 포트 80, 소스는 로드 밸런서의 보안 그룹
- User → (80,443 Allow) GWLB → (80 Allow) EC2 이 된다.
네트워크 로드 밸런서(Network Load Balancer, NLB) 설명
기본 개념
- L4 로드 밸런서로 TCP와 UDP 트래픽을 다룹니다.
- HTTP를 다루는 L7 로드 밸런서보다 하위 계층입니다.
- 초당 수백만 건의 요청을 처리할 수 있는 고성능을 자랑합니다.
- 지연 시간이 짧아 애플리케이션 로드 밸런서(ALB)의 400밀리초에 비해 NLB는 100밀리초입니다.
- 가용 영역별로 하나의 고정 IP를 가질 수 있습니다.
- 탄력적 IP 주소를 각 AZ에 할당할 수 있어, 여러 개의 고정 IP를 가진 애플리케이션을 노출할 때 유용합니다.
- AWS 프리 티어에 포함되지 않습니다.
작동 방식
- 애플리케이션 로드 밸런서(ALB)와 유사한 방식으로 작동합니다.
- 대상 그룹(Target Group)을 생성하여 트래픽을 리다이렉트합니다.
- 백엔드와 프론트엔드 모두 TCP 트래픽을 사용하거나, 백엔드에서는 HTTP를, 프론트엔드에서는 TCP를 사용할 수 있습니다.
- 로드밸런싱 방식은 라운드 로빈(Round Robin) 방식으로 사용되며 변경할 수 없다.
- EC2 인스턴스: NLB가 TCP 또는 UDP 트래픽을 EC2 인스턴스로 리다이렉트할 수 있습니다.
- IP 주소: 반드시 하드코딩된 프라이빗 IP여야 합니다. 그리고 자체 EC2 인스턴스의 프라이빗 IP를 사용할 수 있고, 자체 데이터 센터 서버의 프라이빗 IP도 사용할 수 있습니다.
- 애플리케이션 로드 밸런서(ALB) 앞에 NLB를 배치하여 고정 IP 주소와 HTTP 트래픽 처리를 동시에 구현할 수 있습니다.
- 상태 확인(Health Check)
- 세 가지 프로토콜(TCP, HTTP, HTTPS)을 지원합니다.
- 백엔드 애플리케이션이 HTTP/HTTPS 프로토콜을 지원하면 해당 프로토콜에 대한 상태 확인을 정의할 수 있습니다.
- NLB에서 HTTP, HTTPS를 사용할 경우 Target Group이 ALB를 사용하게 됩니다.
요약 포인트
- 고성능: 초당 수백만 건의 요청 처리, 짧은 지연 시간
- 지원 프로토콜: TCP, UDP
- 고정 IP: 가용 영역별 1개의 고정 IP 제공
- 대상 그룹: EC2 인스턴스, 프라이빗 IP 주소
- 상태 확인: TCP, HTTP, HTTPS 프로토콜 지원
애플리케이션 로드 밸런서 (Application Load Balancer, ALB) 설명
개요
- 계층: OSI 7계층(HTTP 전용) 로드 밸런서
- 사용 목적: HTTP 애플리케이션의 라우팅
- 대상 그룹: 여러 머신을 그룹화하여 관리
기본 개념
- HTTP/2 및 WebSocket 지원
- 리다이렉트 지원: HTTP에서 HTTPS로 자동 리다이렉트 가능
- 경로 라우팅 지원: URL 경로에 따른 라우팅 가능 (예: example.com/users, example.com/posts)
- 호스트 이름 기반 라우팅: 호스트 이름에 따라 다른 대상 그룹으로 라우팅 (예: one.example.com, other.example.com)
- 쿼리 문자열 및 헤더 기반 라우팅: 특정 쿼리 문자열이나 헤더 값에 따라 라우팅 (예: example.com/users?id=123&order=false)
ALB의 활용
- 마이크로 서비스 및 컨테이너 기반 애플리케이션에 적합
- Amazon ECS와의 통합: 포트 매핑 기능을 통해 ECS 인스턴스의 동적 포트로 리다이렉션 가능
대상 그룹
- EC2 인스턴스: 오토 스케일링 그룹으로 관리 가능
- 람다 함수: 무서버 아키텍처의 기반
- 사설 IP 주소: 대상 그룹으로 설정 가능
- 예시(두 개의 대상 그룹)
- 첫 번째 그룹: AWS 기반의 EC2 인스턴스
- 두 번째 그룹: 온프레미스 개인 서버
- 트래픽을 쿼리 문자열이나 매개변수를 기반으로 각각의 대상 그룹에 라우팅
- 예시(두 개의 대상 그룹)
요약 포인트
- 고성능: HTTP 전용, 다수의 HTTP 애플리케이션 라우팅 처리
- 지원 프로토콜: HTTP, HTTPS, HTTP/2, WebSocket
- 리다이렉트: HTTP에서 HTTPS로 자동 리다이렉트 지원
- 경로 라우팅: URL 경로에 따른 라우팅 (예: /users, /posts)
- 호스트 이름 라우팅: 호스트 이름에 따른 라우팅 (예: one.example.com, other.example.com)
- 쿼리 문자열 및 헤더 라우팅: 특정 쿼리 문자열이나 헤더 값에 따른 라우팅 (예: id=123&order=false)
- 대상 그룹: EC2 인스턴스, ECS 작업, 람다 함수, 프라이빗 IP 주소
- 상태 확인: HTTP, HTTPS 프로토콜 지원
- 고정 호스트 이름: 클라이언트 IP 정보는 X-Forwarded-For 헤더를 통해 제공
- 마이크로 서비스 및 컨테이너 기반 애플리케이션에 적합: 포트 매핑 기능으로 ECS 인스턴스의 동적 포트로 리다이렉션 가능
- 고정 세션(sticky session): 사용가능
게이트웨이 로드 밸런서 (Gateway Load Balancer, GWLB) 설명
개요
게이트웨이 로드 밸런서(GWLB)는 배포 및 확장과 AWS의 타사 네트워크 가상 어플라이언스의 플릿 관리를 위해 사용됩니다. 네트워크 트래픽을 방화벽, 침입 탐지 및 방지 시스템(IDPS), 심층 패킷 분석 시스템을 통해 필터링하고 분석하는 데 유용합니다.
기능 및 원리
- 트래픽 분석 및 처리: 사용자 트래픽을 애플리케이션에 도달하기 전에 가상 어플라이언스를 통해 분석하고 처리
- 투명 네트워크 게이트웨이: VPC의 모든 트래픽이 단일 엔트리와 출구를 통과하여 트래픽을 가상 어플라이언스에 분산
- 네트워크 계층 L3: IP 패킷의 네트워크 계층에서 실행
주요 특징
- 트래픽 검사: 애플리케이션에 도달하기 전에 모든 트래픽을 검사
- 트래픽 분산: 대상 그룹의 가상 어플라이언스에 트래픽 분산
- 트래픽 처리:
- 정상 트래픽: GWLB를 통해 애플리케이션으로 전달
- 비정상 트래픽: 드롭
- 대상 그룹: 타사 가상 어플라이언스 (EC2 인스턴스, IP 주소)
도표 설명
- 사용자 트래픽: ALB를 통해 애플리케이션으로 이동하기 전에 GWLB를 통과
- GWLB의 역할:
- 트래픽을 가상 어플라이언스로 분산
- 가상 어플라이언스는 트래픽을 분석하고 처리
- 정상 트래픽은 다시 GWLB를 통과하여 애플리케이션으로 전달
프로토콜 및 포트
- GENEVE 프로토콜: 6081번 포트를 사용
요약 포인트
- 고성능: 네트워크 트래픽의 모든 트래픽을 방화벽, IDPS, 심층 패킷 분석 시스템 등을 통해 처리
- 지원 프로토콜: GENEVE 프로토콜(6081번 포트)
- 고정 IP: VPC의 모든 트래픽이 단일 엔트리와 출구를 통해 처리
- 대상 그룹: 타사 가상 어플라이언스 (EC2 인스턴스, 프라이빗 IP 주소)
- 상태 확인: 네트워크 트래픽을 분석하고 비정상 트래픽을 드롭
- 고정 세션(sticky session): 사용가능
끝
728x90
'Cloud' 카테고리의 다른 글
[AWS] 등록 해제 지연(Deregistration Delay, Connection Draining) (0) | 2024.08.05 |
---|---|
[AWS] 크로스존 로드밸런싱(Cross Zone Load Balancing) (0) | 2024.08.05 |
[AWS] 고가용성과 확장성의 개요 (0) | 2024.08.01 |
[AWS] EC2의 Compute Savings Plans 와 EC2 Instance Savings Plans 중 어떤 것을 사용해야 할까? (0) | 2024.07.29 |
[AWS] Amazon Elastic File System(EFS) 구성 및 인스턴스 연결 방법 (0) | 2024.07.26 |