TIL | [로드밸런싱] 스케일 업과 스케일 아웃

bubblegum·2024년 4월 12일
0

Today I learn(TIL)

목록 보기
69/84
post-thumbnail

스케일 업(Scale Up)과 스케일 아웃(Scale Out)은 시스템의 처리 능력을 확장하는 두 가지 주요 방법입니다. 이 두 방법은 서버나 데이터베이스와 같은 컴퓨팅 리소스의 성능을 향상시키거나, 시스템의 부하를 분산시키는 데 사용됩니다.

스케일 업(Scale Up)

  • 정의: 스케일 업은 기존의 서버나 시스템에 더 강력한 리소스(예: CPU, RAM, 스토리지 등)를 추가하여 성능을 향상시키는 방법입니다. 이 방법은 종종 "수직적 확장"이라고도 불립니다.
  • 적용 예시: 한 서버의 RAM 용량을 16GB에서 32GB로 증가시키거나, 더 높은 성능의 CPU로 교체하는 경우 등이 있습니다.
  • 장점: 시스템 아키텍처의 큰 변경 없이 리소스를 증가시킬 수 있으며, 관리가 비교적 간단합니다.
  • 단점: 특정 포인트 이상에서는 비용이 기하급수적으로 증가하거나, 추가적인 성능 향상이 어렵습니다. 또한, 하드웨어의 물리적 한계에 도달할 수 있습니다.

스케일 아웃(Scale Out)

  • 정의: 스케일 아웃은 시스템에 추가적인 서버나 인스턴스를 추가하여 처리 능력을 확장하는 방법입니다. 이 방법은 "수평적 확장"이라고도 불립니다.
  • 적용 예시: 로드 밸런서 뒤에 웹 서버의 인스턴스를 추가하여, 트래픽을 여러 서버에 분산시키는 경우 등이 있습니다.
  • 장점: 리소스의 한계에 도달하는 것이 덜 우려되며, 필요에 따라 유연하게 확장할 수 있습니다. 또한, 높은 가용성을 제공할 수 있습니다.
  • 단점: 복잡한 시스템 아키텍처와 더 많은 관리가 필요할 수 있으며, 잠재적으로 네트워크 지연이 발생할 수 있습니다.

관련 기술

  • 클라우드 컴퓨팅 서비스: AWS, Azure, Google Cloud Platform(GCP) 등의 클라우드 서비스는 스케일 업과 스케일 아웃을 손쉽게 구현할 수 있는 다양한 서비스와 도구를 제공합니다. 예를 들어, AWS의 EC2(Elastic Compute Cloud) 인스턴스는 필요에 따라 자동으로 스케일 아웃과 스케일 인을 수행할 수 있습니다.
  • 쿠버네티스(Kubernetes): 쿠버네티스는 컨테이너화된 애플리케이션의 배포, 스케일링 및 관리를 자동화하는 오픈 소스 시스템입니다. 쿠버네티스를 사용하면 애플리케이션의 스케일 아웃을 쉽게 관리할 수 있습니다.
  • 로드 밸런서(Load Balancer): 로드 밸런서(Load Balancer)는 스케일 아웃 전략의 핵심 요소 중 하나입니다. 로드 밸런서는 네트워크 트래픽을 여러 서버나 리소스 간에 분산시켜, 단일 서버에 과부하가 발생하는 것을 방지하고, 애플리케이션의 가용성과 내구성을 향상시킵니다. 로드 밸런싱 기술을 사용함으로써, 시스템 전체의 처리량을 증가시키고, 사용자 요청에 대한 응답 시간을 단축시킬 수 있습니다.

로드 밸런서의 주요 기능

  1. 트래픽 분산: 로드 밸런서는 들어오는 네트워크 트래픽을 여러 서버에 균등하게 분산시키는 역할을 합니다. 이는 각 서버가 트래픽을 처리하는데 있어 균형을 유지할 수 있도록 도와줍니다.

  2. 건강 검사(Health Checks): 로드 밸런서는 연결된 서버들의 상태를 주기적으로 확인합니다. 만약 어떤 서버가 고장나거나 응답하지 않는 경우, 로드 밸런서는 해당 서버로의 트래픽 전송을 중단하고, 자동으로 정상 작동하는 다른 서버들에 트래픽을 분산시킵니다.

  3. 세션 유지(Session Persistence): 일부 애플리케이션은 사용자 세션이 특정 서버에 연결되어 유지되어야 할 필요가 있습니다. 로드 밸런서는 세션 유지 기능을 제공하여, 특정 사용자의 요청이 항상 같은 서버로 전송되도록 할 수 있습니다.

  4. SSL 종료(SSL Termination): 로드 밸런서는 SSL/TLS 암호화 해독 작업을 처리할 수 있으며, 이를 통해 서버의 부담을 줄일 수 있습니다. 이 과정에서 로드 밸런서는 암호화된 트래픽을 해독하고, 내부 네트워크에서는 암호화되지 않은 형태로 트래픽을 전송합니다.

로드 밸런서의 종류

  1. L4 로드 밸런서: 네트워크 계층(Transport Layer)에서 작동하며, IP 주소와 포트 번호를 기반으로 트래픽을 분산합니다.

  2. L7 로드 밸런서: 애플리케이션 계층(Application Layer)에서 작동하며, HTTP 헤더, 쿠키, 요청 URL 등을 기반으로 보다 정교한 라우팅 결정을 내릴 수 있습니다.

로드 밸런싱은 클라우드 컴퓨팅, 대규모 웹 애플리케이션, 고가용성을 요구하는 시스템 등 다양한 환경에서 중요한 역할을 합니다. AWS의 Elastic Load Balancing(ELB), Google Cloud의 Cloud Load Balancing, Microsoft Azure의 Load Balancer 등 다양한 클라우드 서비스 제공업체들이 로드 밸런싱 솔루션을 제공합니다.

profile
황세민

0개의 댓글

관련 채용 정보