[Cloud] Amazon ELB / 부하 분산 서비스

2025. 2. 26. 23:13·Cloud

부하분산이란?

부하분산은 서버-클라이언트 환경에서 고가용성 및 내결함성을 향상시켜 장애 발생 시 유연하게 대처가 가능하며
서비스를 안정적으로 유지한다.

이러한 부하분산을 로드밸런싱이라고 부르며 부하분산 수행 대상을 로드 밸런서라고 칭한다

 

Amazon ELB

✅ Amazon ELB란?

ELB는 로드 밸런싱 기술로  EC2에서 운영중인 애플리케이션,카이크로서비스, 컨테이너 서비스를  자동 분산 처리한다

ELB는 여러 가용 영역에서 작동하며 다양한 프로토콜을 지원한다.

 

  •  AWS CloudWatch 기능 활용하여 로그와 메트릭 모니터링 가능
  •  오토스케일 기능과 결합해 자동으로 인스턴스추가 및 가용성 유지
  •  SSL 암호화 지원으로 보안 강화

✅ ELB 구성요소

세가지 요소로 구성

  • 로드밸런서 
    • 여러대의 EC2 인스턴, IP 주소, 람다 등을 사용하여 트래픽을 대상 그룹 인스턴스로 분산
  • 대상그룹
    • 로드 밸런서에서 분산할 대상의 집합을 정의하는 구성 요소.
    • 인스턴스에 대해 정적 동적으로 구성하며 규칙에 따라 그룹 선택
    • 로드밸런서는 대상의 상태를 정기 확인하여 장애 발생 대상 자동 제외 및 정상 서버에만 요청
  • 리스너
    • 로드 밸런서에 사용할 포트와 프로토콜을 설정하는 구성 요소. 
    • 클라이언트 요청을 수신, 요청 처리 그룹을 선택하는 역할

 

 

✅ ELB 동작 방식

출처 : https://juju-study.tistory.com/m/1010

ELB 생성 시 설정한 가용 영역별로 로드 밸런서 노드가 생성되며 앞단에 리스너 실행.

리스너는 프로토콜을 지원하며 요청에 대한 그룹의 라우팅 정의

 

  • 클라이언트 요청 수신 
    • 로드 밸런서에서 클라이언트 요청 수신
    • 로드 밸런서는 클라이언트와 연결을 유지하며 요청을 수신하기 위해 리스너 등록
  • 대상 그룹 선택:
    • 수신한 클아이언트 요청을 처리할 대상 그룹 선택
      • 대상 그룹은 IP 주소, 람다 함수  ALB 등으로 구성
  • 트래픽 분산 :
    • 수신한 클아이언트 요청을 처리할 대상 그룹 선택
    • 선택된 대상으로 요청을 분산
    • 로드 밸런서는 각 대상의 가용성 상태를 모니터링, 가용치 않은 대상을 제외
  • 응답 반환
    • 분산된 요청을 대상에서 처리하고 클라이언트에 응답을 반환
    • 응답은 로드 밸런서에서 수신 후 반환되므로 대상 그룹에서 응답을 받은 것으로 확인

ELB 교차 영역 로드 밸런싱

교차영역 로드 밸런싱[비활성화] 상태일시 같은 50의 트래픽을 2개의 서버에 나눌경우 25씩 할당하여

대상그룹에 분배된다 교차영역 로드밸런싱을 통해 모든 영역에 균등한 트래픽을 나눌 수 있도록 한다.

출처 : https://juju-study.tistory.com/m/1010

  • ALB 사용시 기본적으로 활성화 되나 NLB 사용시 비활성화 되어있다

ELB 종류

  • CLB
    • 초기 로드 밸런서로 L4 L7 프로토콜을 지원한다
    • SSL/TLS 암호화 프로토콜을 지원하며 SSL 인증서를 사용
    • 고정 IP 주소를 사용하여 DNS이름으로 액세스 가능
    • 서버의 기본 주소 변경 시 로드밸런서 새로 생성해야함
    • 기능적 한계로 포트, 헤더 같은 데이터를 수정 및 변경이 불가능하다
    • 서버의 아키텍처의 복잡성 증가 시 사용비용 증가
  • ALB
    • L7 로드밸런서로 HTTP/HTTPS 같은 앱 애플리케이션 프로토콜 지원
    • ALB 그룹 단위 트래픽 분산하며 EC2 ,람다, 컨테이너 및 IP 주소 라우팅 기능 제공
      • 경로 기반 라우팅: URL 경로 기반 요청 분산
      • 호스트 기반 라우팅 : 호스트 이름을 기반으로 요청 분산
      • 쿼리 문자열 기반 라우팅 : URL 쿼리 문자열 기반 요청 분산
    • 오토 스케일링과 병행하여 사용하여 확장성 확보
    • 인스턴스 상태 검사를 수행하고 문제 발생시 자동 장애 조치
    • CloudWatch Log와 통합하여 로그 및 지표 데이터 수집, 모니터링 분석
    • 웹 애플리케이션에 특화된 세밀한 라우팅 제어
  • NLB
    • L4 로드 밸런서로 TCP/UDP/TLS 프로토콜 지원
    • L4를 지원하므로 TPC 레벨을 통해 대규모 트래픽 처리 가능
    • 대규모 처리, IP 주소로 식별시 높은 처리량과 빠른 응답 시간을 보장한다
    • 주요 대상 : VoIp 서비스, 미디어 스트리밍
    • 높은 처리량, 초당 연산 기능을 사용하여 동일 IP 주소에서 여러 대상 그룹 지원
      • 높은 처리량
      • 빠른 응답시간
      • 높은 가용성
      • IP 주소 보존
      • 모니터링 : CloudTrail , CloudWatch Log
  • GWLB
    • 네트워크 트래픽을 서드 파티의 방화벽 / 어플라이언스 장비로 부하분산을 처리
    • 서드 파티 방화벽 / 어플라이언스 장비를 쉽게 배포하고 확장
    • 요청에 따라 트래픽을 확장하거나 축소하여 가용성과 확장성 향상
    • TCP/ UDP 프로토콜을 지원하여 유연하게 적용

CloudFormation

특징

  • IAC
    • 수동으로 자원을 생성하지 않고 선언된 코드를 사용하여 자원을 생성한다
    • 불필요한 오류를 줄리고 다른 환경에서도 인프라를 쉽게 생성 가능
    • 형상관리가 용이
  • AWS 리소스 종속성 관리
    • AWS리소스간 종속성을 템플릿에 정의가 가능
  • 인프라 관리 자동화
    • 인프라 구성을 자동화 하여 운영비용 감소
    • 지속적 배포를 지원하는 CI/CD 파이프라인과 통합 가능

구성요소

  • 템플릿 : AWS인프라를 JSON 또는 YAML 형식의 코드로 정의
  • 스택 : 생성하는 AWS 인프라 집합
  • 리소스 : AWS 리소스 EC2,RDS S3 등 포함
  • 파라미터 : 스택 생성시 전달 가능한 매개변수
  • 이벤트 : 모든 이벤트를 기록하여 형상관리에 사용하며 스택 문제 해결

 


실습

ALB 와 NLB를 이용한 로드 밸런싱 구성

 

ALB 실습

 

실습 환경 구성도

1. MyVPC -> MyEC2 서버 배치하여 ELB 로드 밸런싱

1. 로드밸런서 구성

  1.1. EC2 대상그룹 생성

  • ELB-VPC에 존재하는 그룹을 대상으로 ALB-TAG이름으로 대상 그룹 생성

  1.2  로드밸런서 생성

  • ALB 생성 
  • 네트워크 매핑 : 로드밸런서를 사용할 네트워크 선택
  • 가용 영역 선택 : server 1,2,3 가 위치한 가용영역 선택
  • 보안 그룹 지정 : elblab 
  • 리스너 및 라우팅 : HTTP 80 , 대상그룹 = ALB-TG 

ELB 설정

 

name: ALB 로드 밸런서 생성 완료

  1.3 로드밸런서 동작 확인

 

   동작 예상도

  1. 생성된 로드 밸런서는 두개의 가용 영역에 각각 ENI를 생성하여 통신을 할 수 있도록 하며 Public Ip 주소 할당
  2. HTTP 클라이언트인 MyEC2 에서 HTTP -> Server {1,2,3} 접근 시 각각 직접 접근이 아닌 ALB 도메인 주소로 접근
  3. 로드 밸런서의 정책에 의해 ALB 를 이용하여 로드 밸런싱 되어서 전달

각각 ALB 인터페이스 주소가 생성됨
로드 밸런싱 결과

  • 90회 반복시 30%대 확률로 균등하게 로드 밸런싱
  • 기본적으로 라운드 로빈 방식을 통해 ALB당 동일한 트래픽 전달
  • 교차영역으로 인한 동일한 횟수로 전달함으로 서버가 적은 곳에 부하가 발생할 수 있음

1.4. ALB 경로 기반 라우팅 기능 구성

로드밸런싱 기능으로 인해 서버에 구성된 경로에 접속 하고자 할때 사용되는 경로가 다를경우 해당
경로를 갖지 않을 시 오류 발생

 

-> 경로 기반 라우팅 기능을 통해 해결

 

  1. 대상 그룹 생성
  2. 로드밸런서 규칙  추가 
    1. 경로 기반추가
    2. 경로 지정
    3. 조건 순위 지정

경로 지정 전 오류 발생

 

지정된 경로로 이동

1.5 ALB User-Agent를 활용하여 로드밸런싱 구성 및 확인

  • 고급 라우팅 기능 중 HTTP 헤더 기반 라우팅 구성
  • 특정 장치의 차단이 가능 예) 스마트폰
  • 클라이언트에 맞는 최적의 데이터를 보낼 수 있음

 

 

 

 

 

실습 Yaml : https://cloudneta-aws-book.s3.ap-northeast-2.amazonaws.com/chapter4/elblab.yaml

 

'Cloud' 카테고리의 다른 글

[Cloud] RDS 개념 및 실습  (0) 2025.03.27
[Cloud] VPC -> Pub -> Pri 서버 구성  (0) 2025.03.19
[Cloud] 클라우드 네트워크  (0) 2025.02.25
[Cloude] AWS EC2 생성 실습  (0) 2025.02.23
[Cloud] 클라우드 기초  (0) 2025.02.23
'Cloud' 카테고리의 다른 글
  • [Cloud] RDS 개념 및 실습
  • [Cloud] VPC -> Pub -> Pri 서버 구성
  • [Cloud] 클라우드 네트워크
  • [Cloude] AWS EC2 생성 실습
cumo
cumo
  • cumo
    이것저것
    cumo
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • 이것저것 (1)
      • 보안뉴스 (14)
      • Project (9)
      • wargame (1)
      • Cloud (7)
      • DevOps (11)
      • Linux (20)
      • 네트워크 (23)
      • AWS Developer BootCamp (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 도구모음 사이트
    • 참고 기술 블로그
  • 공지사항

  • 인기 글

  • 태그

    1
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
cumo
[Cloud] Amazon ELB / 부하 분산 서비스
상단으로

티스토리툴바