ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스케일 업/다운 VS 스케일 아웃/인
    AWS 2025. 2. 28. 13:56

    서버 또는 시스템의 성능과 리소스를 조절하는 방식은 수직 확장(Vertical Scaling)과 수평 확장(Horizontal Scaling)으로 나눌 수 있다. 수직 확장은 간단하지만 확장에 한계가 있고, 수평 확장은 확장성은 뛰어나지만 구성과 관리가 복잡할 수 있다.

     

    1. 수직 확장(Vertical Scaling)

    스케일 업(Scale Up): 하나의 서버나 인스턴스의 CPU, 메모리 등의 사양을 높이는 방식

    스케일 다운(Scale Down): 서버나 인스턴스의 사양을 낮추는 방식

     

    2. 수평 확장(Horizontal Scaling)

    스케일 아웃(Scale Out): 서버나 인스턴스를 여러 대로 늘려 전체 처리 능력을 확장하는 방식

    스케일 인(Scale In): 서버 수를 줄여 시스템 전체의 리소스를 축소하는 방식

     

    스케일 업 (Scale Up) - 수직 확장 : 기존 서버의 성능을 올려서 확장하는 방법

     

    특징

    • 더 좋은 CPU, RAM, SSD 등 하드웨어 업그레이드
    • 기존 애플리케이션과 구조 변경 없이 성능 향상 가능
    • 단일 시스템의 성능 한계가 존재
    • 비용이 비싸질 수 있음 (고성능 장비는 가격이 급격히 증가)

    예시

    • AWS EC2 인스턴스 유형을 t3.micro → m5.large로 변경
    • 기존 서버의 RAM을 16GB → 64GB로 업그레이드
    • 데이터베이스 서버(MySQL)에서 더 빠른 SSD로 교체


    스케일 다운(Scale Down) - 수직 축소 : 
    서버 성능(리소스 크기)을 줄이는 방식

    • Scale Up의 반대 개념
    • 기존 서버의 리소스를 줄여서 다운그레이드하는 방식
    • 예를 들어, EC2 인스턴스를 m5.large → t3.micro로 변경
    • 클라우드 환경에서 비용 절감을 위해 활용

    예시

    • AWS EC2 인스턴스 유형을 m5.large → t3.micro로 변경하여 비용 절감
    • RAM을 32GB → 8GB로 축소해 리소스 최소화
    • 일시적으로만 고성능이 필요했던 분석 서버를 낮은 사양으로 다운그레이드

    사용 예시 비교

     

    1) AWS EC2 인스턴스 타입 변경

    • 스케일 업 (Scale Up): t3.micro → m5.large로 변경하여 CPU·RAM 증가
    • 스케일 다운 (Scale Down): m5.large → t3.micro로 변경하여 비용 절감

    2) 물리 서버 리소스 업그레이드

    • 스케일 업: 기존 서버의 RAM을 16GB → 64GB로 업그레이드
    • 스케일 다운: SSD → 일반 HDD로 변경해 저장 장치 비용 절감

    3) 데이터베이스 서버 사양 조절

    • 스케일 업: MySQL 서버를 더 빠른 CPU와 고속 스토리지로 교체
    • 스케일 다운: 테스트 환경의 DB 서버를 낮은 사양의 VM으로 교체
    구분 스케일 업 (Scale Up) 스케일 다운 (Scale Down)
    방법 서버의 CPU, 메모리 등 사양을 업그레이드 서버 사양을 낮춰 리소스 축소
    비용 고사양 장비 필요 → 비용 증가 리소스 절감 → 비용 절감
    성능 한계 물리적 하드웨어 한계 존재 너무 낮추면 성능 저하 위험
    가용성 / 장애 대응 단일 장애 발생 시 전체 서비스 영향 가능성 과도한 축소 시 안정성 저하 위험
    적용 사례 데이터베이스 서버, WAS 등 단일 노드 중심 시스템 테스트 환경, 소규모 서비스, 개발용 서버 등

     

    스케일 아웃 (Scale Out) - 수평 확장 : 서버 개수를 늘려서 확장하는 방법

     

    특징

    • 여러 대의 서버를 추가하여 로드 분산(Load Balancing)
    • 장애 발생 시 일부 서버만 영향을 받아 가용성이 높음
    • 클라우드 환경(AWS, GCP, Azure)에서 자동 확장(Auto Scaling) 가능
    • 초기 비용이 낮지만, 네트워크 비용 및 운영 복잡도 증가

    예시

    • AWS Auto Scaling을 사용하여 EC2 인스턴스를 동적으로 늘림
    • Kubernetes 클러스터에서 새로운 노드를 추가
    • MySQL Replication을 사용하여 읽기 요청을 여러 DB 서버에 분산

    스케일 인(Scale In) - 수평 축소 : 서버 개수를 줄이는 방식

    • Scale Out(수평 확장)의 반대 개념으로, 서버 개수를 줄이는 방식
    • 트래픽이 감소하면 불필요한 리소스를 줄여 비용 절감 가능
    • Auto Scaling과 함께 사용하면 클라우드 환경에서 자동 조정 가능

    예시

     

    • AWS Auto Scaling을 사용하여 EC2 인스턴스 수를 줄임
    • Kubernetes에서 사용률이 낮은 Pod 수를 자동 축소
    • Apache Web 서버 클러스터에서 유휴 서버를 제거하여 운영 비용 절감

     

    사용 예시 비교

     

    1) AWS Auto Scaling

    • 스케일 아웃 (Scale Out): 낮에 EC2 인스턴스를 10대까지 자동 확장
    • 스케일 인 (Scale In): 밤에 트래픽 감소로 3대까지 자동 축소

    2) Kubernetes Horizontal Pod Autoscaler (HPA)

    • 스케일 아웃: CPU 사용률이 80% 넘으면 Pod 수 증가
    • 스케일 인: CPU 사용률이 30% 미만이면 Pod 수 감소

    3) 웹 서비스 인프라

    • 스케일 아웃: 평소에 5대의 웹 서버 운영해 트래픽 분산
    • 스케일 인: 주말이나 야간에 접속량이 줄면 2대만 유지하여 리소스 절감
    구분 스케일 아웃 (Scale Out)  스케일 인 (Scale In)
    방법 서버나 인스턴스를 수평적으로 추가 서버나 인스턴스 수를 축소
    비용 초기 비용 낮을 수 있으나, 운영비 증가 가능 운영비 절감, 서버 자원 효율화
    확장성 유연한 확장 가능, 탄력적 구조 트래픽 감소 시 효율적 축소
    가용성 / 장애 대응 고가용성(Failover) 구성 가능, 부하 분산에 유리 부하 관리 유지하며 축소 가능
    적용 사례 웹 서비스, 마이크로서비스, Kubernetes, Auto Scaling 트래픽 하락 구간, 예약형 서버 운영 등

    시스템 확장(Scaling) 관련 핵심 개념 정리

    Auto Scaling - 자동 확장

    • 트래픽 변화에 따라 서버를 자동으로 확장(Scale Out)하거나 축소(Scale In) 하는 기능
    • AWS Auto Scaling Group (ASG), Kubernetes Horizontal Pod Autoscaler (HPA)가 대표적인 예시
    • 예제:
      • 낮에는 EC2 인스턴스를 10대로 확장 (Scale Out)
      • 밤에는 트래픽이 줄어 EC2 3대만 유지 (Scale In)

    Load Balancer - 부하 분산

    • 여러 서버에 트래픽을 균등하게 분배하는 장치
    • Scale Out(서버 개수 증가) 후, 부하를 자동으로 분산해야 효과적
    • AWS ALB (Application Load Balancer), NLB (Network Load Balancer), ELB 등이 있음
    • Kubernetes에서는 Ingress Controller 또는 Service Load Balancer 사용

     

    Scalability (확장성) vs Elasticity (탄력성)

    구분 개념 예시
    Scalability (확장성) 시스템이 성장할 때 성능을 확장할 수 있는 능력 EC2 인스턴스를 더 추가하여 트래픽을 처리
    Elasticity (탄력성) 트래픽 변화에 따라 리소스를 동적으로 조절 AWS Auto Scaling이 EC2 개수를 자동 조정

     

    비유:

    • Scalability: 레스토랑이 인기를 끌어 더 많은 테이블을 추가
    • Elasticity: 손님이 많아지면 직원을 늘리고, 한산해지면 줄이는 것

    Horizontal Scaling(수평 확장) vs Vertical Scaling(수직 확장)

    구분 개념 예시
    Vertical Scaling (수직 확장, Scale Up) 서버의 CPU, RAM, 디스크를 업그레이드 EC2 t3.micro → m5.large
    Horizontal Scaling (수평 확장, Scale Out) 여러 개의 서버를 추가 웹 서버 개수를 2대 → 5대로 증가

     

    Kubernetes 관련 확장 개념

    • Horizontal Pod Autoscaler (HPA) → CPU 사용량 기준으로 Pod 개수 자동 조정 (Scale Out/In)
    • Vertical Pod Autoscaler (VPA) → 개별 Pod의 리소스(CPU, 메모리)를 자동으로 조정 (Scale Up/Down)
    • Cluster Autoscaler → 필요에 따라 Kubernetes 노드 개수를 조정 (노드 Scale Out/In)

    Serverless Scaling

    • Serverless Scaling: 서버를 직접 관리하지 않고, 요청량에 따라 자동 확장
    • 서버리스는 자동 확장이 기본 내장되어 있어 운영 부담이 적다  
    • 예: AWS Lambda, Google Cloud Functions

    요약

    • Scale Up / Scale Down → 서버의 성능을 조절
    • Scale Out / Scale In → 서버 개수를 조절
    • Auto Scaling → 트래픽 변화에 따라 자동 조정
    • Load Balancer → 부하를 분산
    • Scalability vs. Elasticity → 확장성과 탄력성의 차이
    • Kubernetes HPA, VPA, Cluster Autoscaler → 자동 확장 기능

    'AWS' 카테고리의 다른 글

    AWS 핵심 용어  (0) 2025.03.26
    AWS 완전 관리형 서비스(Fully Managed Services) 정리  (0) 2025.02.19
    CIDR  (0) 2025.01.05
    서브넷 마스크 / 게이트 웨이 / 네트워크 주소  (0) 2025.01.05
    VPC 관련 정리  (0) 2024.10.17
Designed by Tistory.