Code States/TIL

[0607] 성능 테스트 - 가용성과 확장성

ki1111m2 2023. 6. 7. 17:40

학습 목표

  • 시스템의 가용성과 확장성을 평가할 수 있다.
  • 부하 테스트의 목적을 이해할 수 있다.
  • Throughput과 Latency의 개념을 이해할 수 있다.
  • 시스템의 병목이 발생하는 주요 원인과 대책을 이해할 수 있다.
  • SLO를 설정하고, 이를 기반으로 부하 테스트를 진행하고, 달성 여부를 파악할 수 있다.

  • 가용성
    • 시스템이 정상적으로 사용 가능한 정도
    • Uptime / (Uptime + Downtime)
    • 핵심은 단일 장애점(Single Point of Failure)을 없애는 것
    • 어떤 한 노드에 장애가 발생해도 동일한 처리 능력을 가진 다른 노드로 대체도리 수 있어야 함
  • 확장성
    • 확장 가능한 시스템: 요구되는 시스템의 성능에 따라 동적으로 서버 구성이 변경되고, 시스템 처리 능력을 최적화할 수 있는 시스템
    • 시스템의 처리 능력을 확장하는 방법: 하나의 머신에서 메모리나 CPU를 늘리는 수직 확장(Scale Up), 머신의 인스턴스 수를 늘리는 수평 확장(Scale Out)
    • 수직 확장은 한계가 있으므로, 수평 확장이 가능할 때 확장성이 좋다고 평가할 수 있음
    • 수직 확장을 고려할 경우 다운타임이 발생하여 가용성이 떨어지며, 성능 제한이 있으므로 반드시 한계를 이해해야함
    • AWS와 같은 클라우드 사업자가 확장성을 보증하는 경우도 존재함
    • 기본적으로 AWS 등에서 제공하는 서버리스 서비스들은 확장성이 좋음