오토스케일링과 로드밸런싱

·2024년 8월 2일

Web

목록 보기
4/6
post-thumbnail

오토스케일링(Auto Scaling)

컴퓨터 리소스 양을 동적으로 조정하는 클라우드 컴퓨팅에 사용되는 한 방식이다. 메트릭(CPU 사용률, 메모리 사용량, 분당 네트워크 속도 등) 조건을 기준으로 자원의 크기를 조절한다.

확장 유형

수평적 확장(Scale-Out)

시스템의 처리 능력을 늘리기 위해 더 많은 리소스(서버나 인스턴스)를 추가한다.

수직적 확장(Scale-Up)

기존 서버에 RAM, CPU, 스토리지 등의 성능을 추가한다.

예시

대표적인 예시로 Amazon EC2 Auto Scaling은 애플리케이션의 부하를 처리하기 위해 적절한 수의 Amazon EC2 인스턴스를 확보할 수 있도록 도와준다.

  • Auto Scaling 그룹
    • 오토스케일링이 적용되는 EC2 인스턴스의 컬렉션
    • 최소, 최대, 원하는 용량을 지정 가능
    • 그룹 내 인스턴스 수는 자동으로 조정

예를 들어 다음 그림과 같은 Auto Scaling 그룹은 최소 크기가 4개 인스턴스, 원하는 용량이 6개 인스턴스, 최대 크기가 12개 인스턴스이다.

지정한 기준에 따라 최소 및 최대 인스턴스 수 범위 내에서 인스턴스 수를 조정한다.

로드밸런싱 (Load Balancing)

네트워크 트래픽을 여러 서버에 분산하여 애플리케이션의 성능과 신뢰성을 향상시키는 기술이다. 이를 통해 단일 서버의 과부하를 방지하고, 시스템 가용성을 증가시키고, 확장성을 향상시키고, 장애 발생 시 서비스가 중단되지 않도록 한다.

로드 밸런싱 작동 방식

들어오는 클라이언트 요청을 실시간으로 중재하고 어떤 백엔드 서버가 이러한 요청을 가장 잘 처리할 수 있는지 결정하는 방식으로 작동한다.

할당된 서버는 요청을 받으면 로드 밸런서를 통해 클라이언트에 응답한다. 그런 다음 로드 밸런서가 클라이언트의 IP 주소를 선택한 서버의 IP 주소와 일치시켜 서버-클라이언트 연결을 완료한다. 클라이언트와 서버는 세션이 완료될 때까지 통신하고 요청된 작업을 수행할 수 있다.

로드 밸런싱 장점

가용성

로드 밸런서는 서버 문제를 자동으로 감지하고 클라이언트 트래픽을 사용 가능한 서버로 리디렉션하여 시스템의 내결함성을 높인다.

  • 애플리케이션 가동 중지 없이 서버 유지 관리 또는 업그레이드 실행
  • 백업 사이트에 자동 재해 복구 제공
  • 요청을 서버로 라우팅하기 전에 서버의 상태 확인을 수행하고 가동 중지를 유발할 수 있는 문제 방지

확장성

로드 밸런서를 사용하여 여러 서버 간에 네트워크 트래픽을 지능적으로 전달할 수 있다.

  • 한 서버에서 트래픽 병목 현상 방지
  • 필요한 경우 다른 서버를 추가하거나 제거할 수 있도록 애플리케이션 트래픽을 예측

보안

  • SSL 암호화, 웹 애플리케이션 방화벽(WAF), 멀티팩터 인증(MFA)과 같은 보안 기능이 포함될 수 있음
  • 공격 트래픽을 여러 백엔드 서버로 자동으로 리디렉션하여 영향 최소화

성능

로드 밸런서는 응답 시간을 늘리고 네트워크 지연 시간을 줄여 애플리케이션 성능을 향상시킨다.

  • 서버 간에 로드를 균등하게 배포하여 애플리케이션 성능 향상
  • 클라이언트 요청을 지리적으로 더 가까운 서버로 리디렉션하여 지연 시간 단축
  • 물리적 및 가상 컴퓨팅 리소스의 신뢰성 및 성능 보장

로드밸런싱 알고리즘

  • 라운드 로빈 (Round Robin) : 요청을 순차적으로 각 서버에 균등하게 분배
  • 최소 연결 (Least Connections) : 현재 가장 적은 수의 활성 연결을 가진 서버로 새 요청을 보냄
  • 가중 라운드 로빈 (Weighted Round Robin) : 각 서버에 가중치를 할당하고, 더 많은 요청을 처리 능력이 높은 서버로 보냄
  • IP 해시 (IP Hash) : 클라이언트의 IP 주소를 해시하여 특정 서버에 매핑
  • 최소 응답 시간 (Least Response Time) : 가장 빠른 응답 시간과 가장 적은 활성 연결을 가진 서버를 선택
  • URL 해시 (URL Hash) : 요청 URL을 해시하여 특정 서버에 매핑

L4(Layer 4, 전송 계층)와 L7(Layer 7, 응용 계층) 차이

특징L4 로드밸런싱L7 로드밸런싱
작동 계층OSI 모델의 4계층(전송 계층)OSI 모델의 7계층(응용 계층)
트래픽 분산 기준IP 주소와 포트 정보를 기반HTTP 헤더, 쿠키, URL 등 애플리케이션 레벨의 데이터를 기반
다루는 프로토콜TCP, UDPHTTP, HTTPS, WebSocket
패킷 검사패킷의 내용을 검사하지 않고, 헤더 정보를 사용패킷의 내용을 검사하고 이해할 수 있음
속도단순하고 빠름복잡하고 지능적
성능높은 성능, 적은 리소스 사용상대적으로 낮은 성능, 많은 리소스 사용
보안 기능기본적인 보안 기능 제공보안 기능 구현에 용이

오토스케일링과 로드밸런싱?

지금까지는 오토스케일링과 로드밸런싱 각각의 개념과 동작 방식에 대해 알아보았다. 두 기술은 비슷한 것 같으면서도 다른데, 이 두 가지 기술을 함께 사용하면 생기는 이점들은 아래와 같다.

  • 고가용성 보장 오토스케일링은 장애 발생 시 자동으로 새 인스턴스를 프로비저닝(사용자가 요청한 IT 자원을 사용할 수 있는 상태로 준비하는 것을 말한다)하고, 로드밸런서는 정상 작동 중인 인스턴스로만 트래픽을 라우팅한다.
  • 비용 최적화 오토스케일링은 필요한 만큼만 리소스를 유지하고, 로드밸런서는 이 리소스를 효율적으로 활용한다.
  • 동적 용량 관리 오토스케일링은 트래픽 변화에 따라 인스턴스 수를 자동으로 조절하고, 로드밸런서는 이 새로운 인스턴스들에게 트래픽을 균등하게 분배한다.
  • 성능 향상 오토스케일링은 부하 증가 시 추가 리소스를 제공하고, 로드밸런서는 이 리소스들에게 부하를 균등하게 분산시킨다.
  • 장애 대응 오토스케일링은 장애 인스턴스를 자동으로 교체하고, 로드밸런서는 장애 인스턴스를 신속하게 감지하고 트래픽을 재라우팅한다.

참고

What is Amazon EC2 Auto Scaling? - Amazon EC2 Auto Scaling

로드 밸런싱이란 무엇인가요? - 로드 밸런싱 알고리즘 설명 - AWS

로드밸런서(Load Balancer)의 개념과 특징

로드 밸런싱이란? | IBM

Auto Scaling이란 무엇인가요? | IBM

profile
개발블로그👩🏻‍💻

0개의 댓글