고가용성 및 스케일링

Jong_cc·2026년 1월 25일

1. 확장성 (Scalability)

확장성은 애플리케이션이나 시스템이 증가하는 부하(Load)에 맞춰 적응하고 처리할 수 있는 능력을 의미합니다.

수직적 확장 (Vertical Scaling)

  • 정의: 인스턴스의 사양(Size)을 향상시키는 방식
  • 별칭: Scale Up (확장) / Scale Down (축소)
  • 예시: t2.microt2.largem5.xlarge로 업그레이드
# AWS CLI로 인스턴스 타입 변경 예시
aws ec2 modify-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --instance-type m5.large

적용 사례:

  • Amazon RDS (관계형 데이터베이스)
  • Amazon ElastiCache (인메모리 캐시)
  • 단일 노드 애플리케이션

한계점:

  • 하드웨어의 물리적 제약 (현재 AWS 최대 사양: u-24tb1.112xlarge - 24TB RAM)
  • 단일 장애점(Single Point of Failure) 위험

수평적 확장 (Horizontal Scaling = Elasticity)

  • 정의: 인스턴스의 개수(Number)를 증가시키는 방식
  • 별칭: Scale Out (확장) / Scale In (축소)
  • 예시: EC2 인스턴스 1대 → 10대로 확장
# Auto Scaling Group 설정 예시
AutoScalingGroup:
  MinSize: 2
  MaxSize: 10
  DesiredCapacity: 3
  TargetGroupARNs:
    - !Ref ApplicationLoadBalancer

핵심 AWS 서비스:

  • Auto Scaling Groups (ASG): 자동 인스턴스 관리
  • Elastic Load Balancer (ELB): 트래픽 분산
  • Amazon ECS/EKS: 컨테이너 오케스트레이션

2. 고가용성 (High Availability)

고가용성은 시스템 장애 발생 시에도 서비스 중단 없이 운영을 지속할 수 있는 능력입니다.

핵심 원칙: Multi-AZ 배치

  • 최소 2개 이상의 가용 영역(Availability Zone)에 리소스 분산
  • 목표: 데이터센터 전체 장애 상황에서도 서비스 생존

구현 방식

1. Passive HA (수동 고가용성)

# RDS Multi-AZ 설정
aws rds create-db-instance \
    --db-instance-identifier mydb \
    --multi-az \
    --availability-zone us-east-1a
  • 평상시: Primary에서만 서비스, Standby는 대기
  • 장애시: 자동 Failover (RDS Multi-AZ, EFS 등)

2. Active HA (능동 고가용성)

# 다중 AZ에 걸친 ASG 설정
AutoScalingGroup:
  VPCZoneIdentifier:
    - subnet-12345 # us-east-1a
    - subnet-67890 # us-east-1b
    - subnet-abcde # us-east-1c
  • 모든 AZ의 인스턴스가 동시에 트래픽 처리
  • Load Balancer가 트래픽 분산

3. 비교 요약표

구분확장성 (Scalability)고가용성 (High Availability)
목적증가하는 부하 처리장애 상황에서 서비스 지속
방법Scale Up/OutMulti-AZ 배치
핵심 서비스ASG, ELBMulti-AZ RDS, ELB
측정 지표RPS, LatencyUptime, MTTR

함정 주의: 단일 AZ에서 인스턴스를 아무리 많이 늘려도 고가용성은 확보되지 않습니다. 반드시 Multi-AZ가 핵심입니다.

profile
능동적인 삶을 위하여

0개의 댓글