방명록
- Elastic Load Balancer 란2023년 05월 22일 11시 14분 59초에 업로드 된 글입니다.작성자: 재형이반응형
Elastic Load Balancer 개요
- ELB는 Elastic Load Balancing의 약자로 AWS에서 제공하는 로드 밸런싱 기술. 로드 밸런서는 EC2 인스턴스의 상태를 확인하고 데이터를 분산하여 전달하는 단일 접점 역할을 수행.
📢 Load Balance : 서버가 처리해야 할 업무 혹은 요청(Load)을 여러 대의 서버로 나누어(Balancing) 처리하는 것을 의미하며, 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 하는 것이 목적입니다.
Elastic Load Balancer 종류
1. ALB (Application Load Balancer)
- HTTP나 HTTPS와 같이 웹 어플리케이션에 대한 분산 처리를 제공.
- ALB는 HTTP와 HTTPS에 특화된 어플리케이션 레벨의 로드 밸런서로서 다른 로드 밸런서에 비해 처리 속도가 조금 느릴 수 있으나 HTTP(S)에 대한 세부적이고 다양한 정책을 통해 라우팅이 가능.
- URL 경로 기반 라우팅, 호스트 기반 라우팅, HTTP 헤더 기반 라우팅 등과 같이 다양한 규칙을 생성하여 포워드, 리다이렉션, 지정 HTTP 응답 등의 작업을 수행할 수 있음.
- ALB는 Lambda 함수를 호출하여 HTTP(S) 요청을 처리할 수 있음
2. NLB (Network Load Balancer)
- TCP나 UDP 프로토콜에 대한 포트 정보를 정의하여 네트워크 기반의 분산 처리를 제공.
- NLB는 TCP, UDP, TLS 프로토콜에 대하여 로드 밸런싱을 수행할 수 있는 OSI 4계층 레벨의 로드 밸런서.
- 가장 빠른 처리 속도가 가능하며 고정 IP나 탄력적 IP를 보유하고 있음.
- VPC 엔드포인트 서비스로 연결하여 프라이빗 링크 구성을 할 수 있음.
3. CLB (Classic Load Balancer) => 안씀
- EC2 인스턴스의 예전 버전인 EC2-Classic에 대해서도 분산 처리를 제공할 수 있는 이전 세대의 기본적인 로드 밸런서로서 VPC 환경에서는 ALB나 NLB를 사용하는 것을 추천.
Elastic Load Balancer 주요 기능
- 고가용성
ELB로 인입되는 트래픽을 다수의 대상으로 분산하여 고가용성을 유지 - 상태 확인
대상 그룹에 대한 Keepalive를 통해 주기적으로 상태를 확인 - 보안 기능
보안 그룹을 적용하여 보안 옵션을 부여(단, NLB는 보안 그룹이 적용되지 않음) - 4계층/7계층 로드밸런싱
HTTP/HTTPS의 7계층의 어플리케이션을 로드 밸런싱하거나 TCP/UDP의 4계층의 로드 밸런싱을 사용 - 운영 모니터링
ELB 어플리케이션 성능을 실시간으로 모니터
Elastic Load Balancer 통신 방식
1. 인터넷 연결 (Internet Facing Load Balancer)
퍼블릭 주소를 가지고 있어, 인터넷을 통해 요청을 로드 밸런서에 등록된 EC2 인스턴스로 라우팅2. 내부 (Internal Load Balancer)
프라이빗 주소만 가지고 있어, 로드 밸런서를 위한 VPC 내부에 액세스하여 등록된 EC2 인스턴스로 라우팅Elastic Load Balancer 생성 순서
1. 로드밸런서 생성 및 종류 선택
2. 로드밸런서 리스너 설정
3. 로드밸런서 대상그룹 설정
순서로 생성해주면 된다.
📢 주의할점)
Application Load Balancer 는 생성할 때, 서로 다른 가용영역에 걸쳐서 생성해주어야 한다. 그렇지 않으면 NLB 는 오류가 나지 않지만 ALB는 생성 시 오류가 난다.Cloudformation for Application Load Balancer
# Application Load Balancer MyALB: Type: AWS::ElasticLoadBalancingV2::LoadBalancer Properties: Name: My-ALB Scheme: internet-facing SecurityGroups: - !Ref SecurityGroup Subnets: - !Ref MyPublicSN1 - !Ref MyPublicSN2 Tags: - Key: Name Value: My-ALB # Listener ALBListener: Type: AWS::ElasticLoadBalancingV2::Listener Properties: DefaultActions: - Type: forward TargetGroupArn: !Ref DefaultTG LoadBalancerArn: !Ref MyALB Port: 80 Protocol: HTTP # Target Group DefaultTG: Type: AWS::ElasticLoadBalancingV2::TargetGroup Properties: Name: Default-TG Port: 80 Protocol: HTTP HealthCheckPort: 80 # default value is 80 VpcId: !Ref MyVPC Targets: - Id: !Ref MyWeb1 Port: 80 - Id: !Ref MyWeb2 Port: 80
반응형'클라우드 > AWS' 카테고리의 다른 글
딥레이서(DeepRacer) 대회 (0) 2023.06.13 Route 53 서비스 란 (0) 2023.05.22 Transit Gateway 란 (2) 2023.05.22 Global Accelerator 란 (0) 2023.05.22 AWS 활용해서 온프레미스 환경과 웹서버 연동해보기 (0) 2023.05.21 다음글이 없습니다.이전글이 없습니다.댓글