ALB (Application Load Balancer)
어플리케이션 로드 벨런서(ALB)는 HTTP 및 HTTPS 트래픽에 특화된 7계층(애플리케이션 계층) 로드 밸런서입니다.
특징
대상 그룹 (Target Group)
ALB는 대상 그룹으로 묶어진 여러 대상(EC2 인스턴스, 컨테이너, Lambda 함수 등)을 관리합니다. 이를 통해 여러 애플리케이션을 단일 로드 밸런서로 라우팅할 수 있습니다.
예시)
만약 대상 그룹을 생성하여 두 개의 EC2 인스턴스를 대상으로 설정하였다고 했을때, 로드 벨런서는 EC2인스턴스로 트래픽을 부하 분산합니다.
이 말은 즉, EC2인스턴스로 2개의 웹사이트를 구성하여 실행했을때 로드 밸런서의 DNS 이름을 통해 애플리케이션에 접근하고, 두 개의 EC2 인스턴스로부터 번갈아가며 웹사이트를 출력합니다.
또한 대상 그룹의 인스턴스 상태를 모니터링하고 하나가 비정상 상태인경우 해당 인스턴스는 건너뛰어 나머지 인스턴스만 출력합니다.
경로 라우팅 (Path-Based Routing)
ALB는 URL 경로에 기반하여 트래픽을 다른 대상 그룹으로 라우팅할 수 있습니다. 예를 들어, "/users" 경로와 "/posts" 경로는 서로 다른 대상 그룹으로 라우팅할 수 있습니다.
호스트 이름 라우팅 (Host-Based Routing)
호스트 이름을 기반으로 다른 대상 그룹으로 트래픽을 라우팅할 수 있습니다. 이는 하나의 로드 밸런서로 여러 도메인을 관리하는 데 유용합니다.
예시)
로드 밸런서가 one.example.com 또는 other.example.com에 접근이 가능하다고 하면 두 개의 다른 대상 그룹에 라우팅이 될 수 있죠
쿼리 문자열 및 헤더 라우팅
ALB는 URL의 쿼리 문자열 또는 헤더를 기반으로 트래픽을 라우팅할 수 있습니다. 이를 사용하여 트래픽을 동적으로 분배하거나 필요에 따라 리다이렉션할 수 있습니다.
예시)
example.com/users id=123&order=false가 다른 대상 그룹에 라우팅 될 수 있는 거죠
네트워크 보안강화
로드 밸런서와 EC2인스턴스간의 보안을 강화하기 위해 보안 그룹을 설정할 수 있습니다. 기본적으로는 로드 밸런서와 EC2 인스턴스는 서로 통신할 수 있도록 보안 그룹이 구성되어 있습니다.
이를 변경하기위해 EC2 인스턴스의 보안 그룹을 수정하여 로드 밸런서의 보안 그룹만을 허용하도록 설정합니다. 이렇게 하면 직접 EC2 인스턴스에 액세스하는 것을 방지할 수 있습니다.
이렇게 함으로써 네트워크 보안을 더욱 강화할 수 있으며, 로드 밸런서를 통해서만 EC2 인스턴스에 액세스할 수 있게 됩니다.
HTTP/2 및 WebSocket 지원
ALB는 최신 웹 프로토콜인 HTTP/2와 WebSocket을 지원하여 성능을 향상시키고 실시간 통신을 지원합니다.
리다이렉션
ALB에서 리다이렉션 규칙을 설정하여 HTTP에서 HTTPS로 자동 리다이렉트할 수 있습니다.
포트 매핑
ECS (Amazon Elastic Container Service) 및 도커 기반 애플리케이션을 지원하기 위해 ALB는 동적 포트로의 리다이렉션을 가능하게 하는 포트 매핑 기능을 제공합니다.
애플리케이션 로드 밸런서(ALB)는 마이크로서비스 아키텍처와 컨테이너화된 애플리케이션을 지원하며, 다양한 라우팅 옵션을 통해 복잡한 애플리케이션 아키텍처를 효과적으로 관리할 수 있습니다. 그리고 클래식 로드 밸런서(CL)B에 비해 단일 로드 밸런서로 여러 애플리케이션을 처리할 수 있어 관리가 간편합니다.
NLB (Network Load Balancer) 개요
L4 로드 밸런서이고 TCP와 UDP 트래픽을 다룰 수 있고 HTTP를 다루는 L7보다 하위 계층입니다.
NLB는 높은 성능을 자랑하며 초당 수백만 개의 요청을 처리할 수 있습니다. 지연 시간 역시 매우 짧은 편이며,ALB와 비교하면 400밀리초 대비 100밀리초로 빠른 응답 속도를 제공합니다.
고정 IP 주소
NLB는 각 가용영역(AZ)별 하나의 고정 IP를 갖습니다.
이 고정 IP 주소를 사용하여 여러 가용 영역에 분산된 애플리케이션을 노출할 수 있으므로, 이것은 여러 상황에 유용합니다. 탄력적 IP 주소(Elastic IP)를 사용할 수 있어서, 1~3개의 IP로만 액세스하는 애플리케이션을 개발해야 할 경우에도 대응 가능합니다.
동작 방식
NLB는 대상 그룹(Target Group)을 생성한 다음, 이 대상 그룹으로 트래픽을 리다이렉트합니다. 대상 그룹은 다양한 유형을 가질 수 있는데, 중요한 것은 다음과 같습니다
EC2 인스턴스: NLB는 TCP 또는 UDP 트래픽을 EC2 인스턴스로 리다이렉트할 수 있습니다.
IP 주소: 고정된 IP 주소를 등록할 수 있지만, 이 주소는 하드코딩되어야 하며, 반드시 프라이빗 IP 주소여야 합니다. 이것은 자체 EC2 인스턴스의 프라이빗 IP와 함께 사용 가능하며, 자체 데이터 센터의 서버 프라이빗 IP를 사용할 수도 있습니다.
ALB와 함께 사용
NLB는 ALB 앞에 배치하여 사용할 수 있습니다. 이것은 고정 IP 주소를 획득하고 동시에 HTTP 유형의 트래픽을 처리하기 위한 규칙을 얻을 수 있는 유효한 설정 조합입니다.
상태 확인
NLB 대상 그룹은 세 가지 프로토콜을 지원합니다: TCP 프로토콜, HTTP 프로토콜, HTTPS 프로토콜.
백엔드 애플리케이션이 HTTP 또는 HTTPS 프로토콜을 지원할 때 해당 프로토콜에 대한 상태 확인을 정의할 수 있습니다.
*시험
1~3개의 IP로만 액세스할 수 있는 애플리케이션을 만들라는 문제가 나오거나또한 고성능, TCP, UDP, 정적 IP도 나오면 네트워크 로드 밸런서를 옵션으로 고려해야합니다 마지막으로 '상태 확인'도 고려해야합니다.
GWLM (Gateway Load Balancer) 개요
GWLB는 배포 및 확장과 AWS의 타사 네트워크 가상 어플라이언스의 플릿 관리에 사용됩니다 또한 모든 트래픽이 방화벽을 통과하게 하거나 침입 탐지 및 방지 시스템에 사용합니다.
GWLB는 IP 패킷의 네트워크 계층인 L3에서 동작합니다. 따라서 GWLB는 투명 네트워크 게이트웨이 역할을 수행하며, VPC의 모든 트래픽을 단일 엔트리 및 출구로 리다이렉트합니다.
동작원리
사용자가 애플리케이션에 액세스하려고 할 때, 모든 트래픽은 GWLB로 전송됩니다.
GWLB는 전송된 트래픽을 가상 어플라이언스 그룹으로 분산합니다.
가상 어플라이언스 그룹은 트래픽을 분석하고, 예를 들면 방화벽 기능을 수행합니다.
분석 결과에 따라 트래픽은 다시 GWLB로 전달되며, 문제가 없는 경우에는 애플리케이션으로 보내집니다. 이 과정에서 모든 네트워크 트래픽은 분석되거나 드롭될 수 있습니다.
*시험
시험에서 GWLB에 관한 팁 중 하나는 6081번 포트의 GENEVE 프로토콜을 사용하는 부분을 기억하는 것입니다.
'AWS Cloud > solution architect' 카테고리의 다른 글
로드 밸런서의 보안 기능 : SSL/SNI 및 연결 드레이닝 (2) | 2023.11.03 |
---|---|
AWS의 로드 밸런싱 전략 (스티키 세션/교차 영역 로드 밸런싱) (1) | 2023.11.01 |
확장성 및 고가용성 / ELB (Elastic Load Balancing) 개요 (1) | 2023.10.31 |
Amazon EFS (Elastic File System) - 관리형 네트워크 파일 시스템 (3) | 2023.10.27 |