가용성과 확장성 평가
가용성
시스템이 정상적으로 사용 가능한 정도를 말합니다.
정상적인 사용시간(Uptime)을 정상사용시간과 사용불가 시간을 합친 전체사용시간(Uptime + Downtime)으로 나눈 값을 표현하며,
예를 들어 가용성 99.95%는 약 1년에 4시간 22분의 다운타임이 됩니다.
-> 위의 수식에 따라서 서비스 사용 불가능 시간을 최소로 만들어야 가용성이 올라갑니다.
가용성의 핵심은 바로 단일 장애점(Single Point of Failure)을 없애는 것
즉, 어떤 한 노드가 장애가 발생해도, 동일한 처리 능력을 가진 다른 노드로 대체될 수 있어야 합니다.
-> 이를 위해 필요한 것이 바로 시스템 확장임
확장성
확장 가능한 시스템: 요구되는 시스템의 성능에 따라 동적으로 서버 구성이 변경되고, 시스템 처리 능력을 최적화할 수 있는 시스템을 의미합니다.
- 시스템의 처리 능력을 확장하는 방법: 하나의 머신에서 메모리나 CPU를 늘리는 수직 확장(Scale Up), 머신의 인스턴스 수를 늘리는 수평 확장(Scale Out)
- 수직 확장은 한계가 있으므로, 수평 확장이 가능할 때 확장성이 좋다고 평가할 수 있습니다.
- AWS와 같은 클라우드 사업자가 확장성을 보증하는 경우도 존재합니다. 기본적으로 AWS 등에서 제공하는 서버리스 서비스들은 확장성이 좋습니다.
-> 수직 확장을 고려할 경우 다운타임이 발생하여 가용성이 떨어지며, 성능 제한이 있으므로 반드시 한계를 이해해야 합니다.
'DevOps BootCamp > 성능 테스트' 카테고리의 다른 글
부하 테스트 도구와 활용 (0) | 2023.06.08 |
---|---|
병목 찾기 (0) | 2023.06.07 |
부하 테스트 기본 (1) | 2023.06.07 |
버스트 기능 (0) | 2023.06.07 |