7주차. 로드밸런싱 서비스 (이론)

송현아·2021년 10월 6일
0
post-thumbnail

[요약]

  • 로드 밸런서를 통한 서비스 제공
  • ALB와 NLB 동작의 차이를 확인
  • 웹 서버에서 사용자의 IP를 확인

📌 ELB 소개

ELB (Elastic Load Balancing) 는 AWS에서 제공하는 로드밸런싱 기술입니다. 즉, 사용자의 요청을 받아들여 부하분산 대상들에게 요청을 나누어주는 역할을 합니다.

  • 일반적인 서비스 환경 구성 : 최소 2개의 AZ 사용(복수의 가용영역으로 고가용성 보장)하며 사용자는 Route53을 통해서 도메인 주소로 접근

☑️ ELB 구성 요소

[리스너(Listener)]

사용자의 요청을 받아들이고, 적절한 대상 그룹으로 라우팅하는 역할

  • L4 로드밸런서(스위치)에서 Virtual Server 역할에 해당
  • 서비스 포트(Service Port)를 보유하고 있으며 외부의 요청은 서비스 포트로 접속하는 요청만을 처리
    • 보통 웹 서비스의 경우 80 포트(http)를 사용
  • 로드밸런서에 접근한다는 것은 해당 리스너의 포트로 접근하는 것이기에 리스너는 접근을 위한 리스너 ID에 포트를 명시
  • 한 개의 로드밸런서는 다수의 리스너를 보유할 수 있음
  • SSL 인증서를 게시하여 SSL Offload를 실시할 수도 있습니다

[대상 그룹(Target Group)]

리스너가 전달한 요청을 처리하기 위한 부하분산 대상들의 모임

  • L4 로드밸런서(스위치)에서 Pool 에 해당
  • 서비스 포트(Service Port)를 보유하고 있으며 부하 분산 대상인 EC2는 해당 포트가 열려있어야함
  • 대상 그룹의 포트는 꼭 리스너의 포트와 같을 필요는 없다.
    • 요청을 검토한 리스터가 요청이 적합한 경우 대상 그룹에게 이를 전달할 때 대상 그룹의 포트로 Port Translation을 한다.
  • 포함되어 있는 정보
    • 대상 그룹에 등록된 EC2의 각종 정보(인스턴스 ID, Port, AZ)
    • EC2가 전달받은 요청을 처리할 수 있는지를 나타내는 '헬스 체크(Health Check)'
      • 부하 분산 대상인 대상 그룹 내 리소스들은 헬스체크(Health Check)를 활용해 끊임없이 상태를 확인받는다.
    • 요청 처리에 관련된 모니터링(Monitoring)
      • 요청 처리에 관련된 모니터링이라 함은 이 대상 그룹에 요청 처리가 가능한 EC2가 몇 개인지, 불가능한 EC2는 몇 개인지를 뜻함

🔎 Health Check?

ELB는 ELB와 연결된 인스턴스의 연결 상태를 수시로 체크하여 인스턴스의 OS나 애플리케이션의 문제로 인해 연결 장애나 서비스 가능 여부에 대한 Health Check를 지속적으로 수행합니다.
이러한 Health Check가 실패하는 경우에는 해당 인스턴스로 트래픽을 전달하지 않습니다. 

☑️ ELB의 종류

ELB는 서비스의 목적에 따라 세 가지의 로드 밸런서 중 하나의 서비스를 선택하여 사용할 수 있으며, 이를 통해 애플리케이션의 내결함성 보장을 위해 필요한 고가용성, 부하분산, 자동 확대/축소, 강력한 보안 기능을 제공합니다.

  1. ALB (Application Load Balancer)

    • OSI 모델 7계층(Application)에서 작동하며, HTTP, HTTPS와 같은 고급 로드 밸런싱 서비스에 적합합니다.
    • 마이크로 서비스 및 컨테이너 기반 애플리케이션, 최신 애플리케이션 서비스에 최적회된 로드 밸런싱 제공
    • SSL/TLS 암호화 및 프로토콜 사용하여 보안성 보장
  1. NLB (Network Load Balancer)

    • OSI 모델 4계층(Transport Layer)에서 작동하며, TCP와 UDP 트래픽의 로드밸런싱 서비스에 적합
    • 짧은 지연 시간과 초당 수백만 개의 요청 처리가 가능하며, 가용 영역당 1개의 정적 주소를 사용하면서 트래픽의 변동이 심한 서비스에 최적화
  1. CLB (Classic Load Balancer)

    • OSI 모델 4계층(Transport Layer), 3계층(Network Layer)에서 작동합니다.
    • 적합 서비스 : EC2 - Classic 네트워크 내에 구축된 애플리케이션

☑️ ELB 작동방식

ELB는 로드 밸런싱 서비스를 인터넷에 연결할 것인지 아닌지에 따라 작동 방식이 나뉩니다.

항목Internet Facing ELBInternal ELB
인터넷 연결연결 가능연결 불가
사용 가능 IPPublic IP, Private IPPrivate IP
접속 가능 영역인터넷, VPC 내부VPC 내부

☑️ 교차영역 로드 밸런싱

AZ별 부하 분산 대상의 숫자가 불균형하기 때문에, 숫자가 적은 AZ 쪽에 있는 인스턴스에 부담이 쏠릴 수 있습니다. (기본적으로, 라운드 로빈 방식을 사용하여 트래픽을 분산 )

[기능]

  • AZ에 따라 차이가 없이 고르게 부하를 분산합니다.

[사용방법]

  • ALB는 교차 영역 로드 밸런싱이 항상 사용
  • NLB는 기본적으로 교차 영역 로드 밸런싱이 비활성화
    • 하지만, 로드 밸런서 생성 이후 언제든지 교차 영역 밸런싱을 활성화 가능

☑️ 고가용성 구성

ELB는 고가용성 구성을 위해 Route53와 같은 AWS의 다른 서비스와의 연계를 통해 가용성 서비스를 제공할 수 있습니다.

0개의 댓글