7장 네트워크 트래픽을 분산시켜 주는 로드 밸런싱

김신영·2023년 4월 6일
0

AWS Discovery Book

목록 보기
6/10
post-thumbnail

Load Balancing

네트워크 트래픽을 하나 이상의 서버나 장비로 분산하기 위해 사용되는 기술

Scale up vs Scale out

  • Scale Up 을 통해 CPU, 메모리, 디스크 등의 기능을 업그레이드 한다.
  • Scale out 을 통해 저렴한 노드 여러 개를 하나의 Cluster로 구성한다.

Load Balancing 방식

Round Robin

  • 클라이언트로부터 받은 요청을 로드밸런싱 대상 서버에 순서대로 할당하는 방식
  • Session 보장 ❌
  • Weighted Round Robin 도 가능 (가중 라운드 로빈 방식)

Hash

  • Hash값을 이용하여 로드 밸런싱하는 방식
  • Session 보장 ✅

Least Connection

  • 현재 Session 수를 고려하여, 가장 작은 Session을 보유한 서버에게 할당하는 방식
  • Session 보장 ❌

Response Time

  • 응답시간을 고려하여, 빠른 응답시간을 제공하는 서버에게 할당하는 방식
  • Session 보장 ❌

ELB (Amazon Elastic Load Balancing)

단일 AZ 또는 다수 AZ에서 EC2 인스턴스 및 컨테이너, IP 주소 같은 동일한 서비스를 제공하기 위해 준비된 여러 대상으로 Application 및 Network 트래픽을 자동으로 분산시킨다.

  • High Availability (고가용성)
  • 부하분산
  • Auto Scaling (자동 확대/축소)
  • 강력한 보안

ELB 종류

  • Application Load Balancer
  • Network Load Balancer
  • Classic Load Balancer
  • Gateway Load Balancer
기능Application Load BalancerNetwork Load BalancerGateway Load BalancerClassic Load Balancer
로드 밸런서 유형계층 7계층 4계층 3 게이트웨이 + 계층 4 로드 밸런싱계층 4/7
대상 유형IP, 인스턴스, LambdaIP, 인스턴스, Application Load BalancerIP, 인스턴스
흐름/프록시 동작 종료아니요
프로토콜 리스너HTTP, HTTPS, gRPCTCP, UDP, TLSIPTCP, SSL/TLS, HTTP, HTTPS
다음을 통해 연결 가능VIPVIP라우팅 테이블 항목

계층 7Application Load BalancerNetwork Load BalancerGateway Load BalancerClassic Load Balancer
리디렉션
고정 응답
Desync Mitigation Mode
HTTP 헤더 기반 라우팅
HTTP2/gRPC

일반적인 구성 및 특징Application Load BalancerNetwork Load BalancerGateway Load BalancerClassic Load Balancer
느린 시작
Outpost 지원
로컬 영역
IP 주소 - 고정, 탄력적
Connection Draining(등록 취소 지원)
구성 가능한 유휴 연결 시간 초과
PrivateLink 지원✔ (TCP, TLS)✔ (GWLBE)
영역 격리
세션 재개
수명이 긴 TCP 연결
같은 인스턴스의 여러 포트로 로드 밸런싱
로드 밸런서 삭제 방지
소스 IP 주소 유지
WebSocket
지원되는 네트워크/플랫폼VPCVPCVPCEC2-Classic, VPC
교차 영역 로드 밸런싱
IAM 권한(리소스 기반, 태그 기반)✔ (리소스 기반만)
흐름 고정(흐름의 모든 패킷이 하나의 대상으로 전송되고 동일한 대상에서 반환 트래픽이 전송됨)대칭대칭대칭대칭
대상 장애 시 동작대상에 대해 장애 시 닫기(Fail Close), 모든 대상이 비정상이면 장애 시 열기(Fail Open)대상에 대해 장애 시 닫기(Fail Close), 모든 대상이 비정상이면 장애 시 열기(Fail Open)기존 흐름은 계속해서 기존 대상 어플라이언스로 전송되고, 새 흐름은 정상 상태인 대상 기기로 다시 라우팅
상태 확인HTTP, HTTPS, gRPCTCP, HTTP, HTTPSTCP, HTTP, HTTPSTCP, SSL/TLS, HTTP, HTTPS

보안Application Load BalancerNetwork Load BalancerGateway Load BalancerClassic Load Balancer
SSL 오프로드
SNI(서버 이름 표시)
백엔드 서버 암호화
사용자 인증
사용자 지정 보안 정책
ALPN

k8s ControllerApplication Load BalancerNetwork Load BalancerGateway Load BalancerClassic Load Balancer
포드 직접 연결✔ (Fargate 포드)
여러 네임스페이스로 로드 밸런싱
완전 프라이빗 EKS 클러스터 지원

로깅 및 모니터링Application Load BalancerNetwork Load BalancerGateway Load BalancerClassic Load Balancer
CloudWatch 지표
로깅

ELB 주요 특징

Health Check

  • ELB와 연결된 인스턴스의 연결 상태를 수시로 체크
  • TCP
    • 서비스 Port 연결 가능 여부 확인
  • HTTP, HTTPS
    • 특정 웹 페이지 접속 시도에 따른 응답 코드 확인
  • 상태 확인 빈도, 실패 임계치, 성공시 응답 코드 설정 가능

Sticky Session

  • ELB는 기본적으로 Round Robin 방식으로 트래픽을 분산
    • Round Robin 방식은 Session 유지 불가 ❌
  • Sticky Session을 사용하면, Cockie 값 기반으로 Session 유지 ✅

고가용성 구성

  • ELB는 단일 AZ 혹은 여러 AZ에 있는 여러 대상에 걸쳐 트래픽을 자동으로 분산할 수 있다.

SSL Termination 및 보안 기능

  • ELB의 SSL Termination 기능을 사용하게 되면
    • 개별 인스턴스에 SSL 인증서를 직접 설치할 필요가 없다.
    • ACM (Amazon Certifiate Manager) 을 통해 무료로 인증서를 발급 가능
    • 별도의 인증서 관리도 필요없음.
    • 인스턴스의 암호화 및 복호화에 따른 부하를 줄일 수 있다.

profile
Hello velog!

0개의 댓글