AWS

클라우드의 수평/수직 확장성과 고가용성 이해하기

heesoohi 2025. 2. 17. 23:32

  # Scalability  

Scalability, 즉 애플리케이션을 스케일링(=확장)한다는 건, 시스템이 더 큰 부하를 처리할 수 있도록 하는 과정이다. 

 

 

클라우드의 확장성의 두 종류

  1. 수직 확장성   
    - 부품을 업그레이드 시키는 것. ex) 인스턴스의 크기 증가
    - 데이터베이스와 같이 분산되지 않은 시스템에서 흔히 사용 -> DB의 성능을 높이기 위해 DB의 크기를 늘림
    - 하드웨어의 한계로 인해 수직 확장에도 한계가 있다.
    - 증가하면 Scale up
    - 감소하면 Scale down

수직 확장성은 더 경험 많은 직원을 고용하는 경우와 대응함

 

 

 

2. 수평 확장성
- 크기 대신 숫자를 늘리는 경우
- 수평 확장 시, 분산 시스템이어야 함. ex) 모든 인스턴스가 동시에 작동할 필요 없이, 각 인스턴스가 개별 작업을 처리할 수 있음.
- 숫자를 늘릴 때 Scale out
- 숫자를 줄이면 Scale in

수평 확장성은 더 많은 직원을 고용하는 경우와 유사

 

 

AWS에서는 로드 밸런서(Load Balancer)와 (ASG)오토 스케일링 그룹을 사용하여 쉽게 애플리케이션 및 시스템을 확장할 수 있다.

(로드밸런서, ASG는 추후 포스팅에서 깊게 다룰 예정)

 

 

  # High Availability  

 

고가용성(High Availability)은 같은 애플리케이션 및 시스템을 AWS의 여러 가용 영역(AZ)에서 (최소 2군데) 실행하는 것을 의미한다. 

 

하나의 AZ에만 데이터 센터가 있는 경우, 해당 지역에 지진이나 정전 처럼 재앙이 발생했을 경우 데이터를 모두 잃어버리게 될 가능성이 있다.

 

반면 2개 이상의 AZ를 사용하면, 데이터 센터의 손실과 같은 위험에서 벗어날 수 있다. 하나의 AZ에서 문제가 발생하더라도, 다른 AZ가 정상적으로 작동할 때 가용성이 높다고 할 수 있을 것이다. 즉 '고가용성'인 것. 

 

서로 다른 지역에 데이터를 분산하여 위험 부담을 줄인다.

 

다중 AZ 모드의 ASG과 다중 AZ의 로드 밸런서를 이용해 고가용성을 누릴 수 있다.