ALB
1 Application Load Balancer(ALB)
- Application Load Balancer는 주로 HTTP/HTTPS 트래픽을 처리하며 OSI 7계층에서 작동합니다.
- ALB는 웹소켓과 HTTP/2도 지원하며, URL, 헤더, 메소드 등을 기반으로 트래픽 라우팅 규칙을 설정할 수 있습니다.
- ALB는 사용자 세션을 특정 타겟에 고정시키는 스티키 세션 기능도 제공합니다.
1.1 listener
- Network Load Balancer에 하나 이상의 listener를 추가한다.
- listener는 설정된 프로토콜과 포트를 통해 클라이언트로부터 연결 요청을 확인하고 해당 요청을 타겟 그룹으로 포워딩한다.
1.1.1 Listener Rules
- Listener Rules는 Application Load Balancer(ALB)에서 클라이언트의 요청을 특정 타겟 그룹으로 라우팅하는 조건을 정의합니다.
- 각 리스너는 여러 개의 규칙을 가질 수 있 으며, 규칙은 우선순위에 따라 평가됩니다.
- 첫 번째 일치하는 규칙이 트래픽 라우팅을 결정합니다.
- 규칙의 조건으로는 다음과 같은 요소를 포함할 수 있습니다:
- 호스트 헤더: 특정 도메인명에 대한 요청을 라우팅하는 데 사용됩니다.
- 경로: 요청 URL의 경로를 기반으로 라우팅할 수 있습니다. 예를 들어,
/images/*
는 이미지 파일로의 요청을 특정 타겟 그룹으로 라우팅할 수 있습니다. - HTTP 메서드: GET, POST 등의 HTTP 메서드를 기준으로 라우팅합니다.
- 쿼리 문자열: 요청 URL의 쿼리 파라미터에 따라 라우팅할 수 있습니다.
- 소스 IP 주소: 특정 IP 주소 범위에서 오는 요청을 특정 타겟 그룹으로 라우팅할 수 있습니다.
- 리스너 규칙은 특정 조건을 만족하는 요청에 대해 트래픽을 어떤 타겟 그룹으로 보낼지를 결정하며, 이를 통해 트래픽 관리와 애플리케이션의 효율성을 높일 수 있습니다.
가중치 기반 라우팅 (Weight-Based Routing)
- ALB의 리스너 규칙에서는 하나의 규칙에 여러 타겟 그룹을 매핑할 수 있습니다.
- 이를 "가중치 기반 라우팅" 또는 "트래픽 분할"이라고 합니다.
- 주요 특징:
- 여러 타겟 그룹 지정: 한 규칙에서 둘 이상의 타겟 그룹을 지정할 수 있습니다.
- 가중치 할당: 각 타겟 그룹에 가중치를 할당하여 트래픽 분배 비율을 조절할 수 있습니다.
- 비율 기반 분배: 트래픽은 지정된 가중치에 비례하여 각 타겟 그룹으로 분배됩니다.
- 사용 사례:
- 블루/ 그린 배포: 새 버전의 애플리케이션을 점진적으로 도입할 때 유용합니다.
- A/B 테스팅: 다른 버전의 애플리케이션을 동시에 테스트할 수 있습니다.
- 카나리 릴리스: 소수의 사용자에게만 새 버전을 노출시켜 위험을 최소화할 수 있습니다.
1.2 Target Group
- Target Group은 Application Load Balancer(ALB)에서 트래픽을 분배할 대상을 정의하는 논리적인 그룹입니다.
- Target Group을 설정하면, ALB는 트래픽을 해당 그룹 내의 타겟으로 라우팅합니다.
1.2.1 타겟 유형
- EC2 인스턴스: Target Group에 포함될 수 있는 AWS의 가상 서버입니다. 여러 인스턴스를 그룹화하여 트래픽을 분산할 수 있습니다.
- IP 주소: 특정 IP 주소를 타겟으로 설정할 수 있습니다. 이를 통해 온프레미스 시스템이나 다른 클라우드 서비스와 통합할 수 있습니다.
- Lambda 함수: AWS Lambda와의 통합을 통해 서버리스 컴퓨팅 환경에서 코드를 실행할 수 있습니다. Lambda 함수를 타겟으로 설정하면, ALB가 요청을 Lambda 함수로 라우팅하여 필요한 작업을 수행합니다.