IT STUDY LOG
[성능 테스트] 01. 가용성과 확장성 본문
# 학습 목표
- 시스템의 가용성과 확장성을 평가할 수 있다.
- 부하 테스트의 목적을 이해할 수 있다.
- Throughput과 Latency의 개념을 이해할 수 있다.
- 시스템의 병목이 발생하는 주요 원인과 대책을 이해할 수 있다.
- SLO를 설정하고, 이를 기반으로 부하 테스트를 진행하고, 달성 여부를 파악할 수 있다.
# 학습 내용
1. 가용성과 확장성 평가
- 시스템 설계 시 가용성과 확장성을 염두하고 설계하는 것이 중요
- 다수의 노드를 가진 분산 시스템, 또한 서버리스 아키텍처 등을 통해 가용성과 확장성을 확보할 수 있음
가용성
- 가용성(Availability)이란 시스템이 정상적으로 사용 가능한 정도
- 정상적인 사용시간(Uptime)을 정상사용시간과 사용불가 시간을 합친 전체사용시간(Uptime + Downtime)으로 나눈 값을 표현하며, 예를 들어 가용성 99.95%는 약 1년에 4시간 22분의 다운타임이 됨
- 위의 수식에 따라서 서비스 사용 불가능 시간을 최소로 만들어야 가용성이 향상
- 가용성의 핵심은 바로 단일 장애점(Single Point of Failure)을 없애는 것이어야 함. 즉, 어떤 한 노드가 장애가 발생해도, 동일한 처리 능력을 가진 다른 노드로 대체될 수 있어야 하며 이를 위해 필요한 것이 바로 시스템 확장
확장성
- 확장 가능한 시스템: 요구되는 시스템의 성능에 따라 동적으로 서버 구성이 변경되고, 시스템 처리 능력을 최적화할 수 있는 시스템을 의미
- 시스템의 처리 능력을 확장하는 방법: 하나의 머신에서 메모리나 CPU를 늘리는 수직 확장(Scale Up), 머신의 인스턴스 수를 늘리는 수평 확장(Scale Out)
- 수직 확장은 한계가 있으므로, 수평 확장이 가능할 때 확장성이 좋다고 평가
- AWS와 같은 클라우드 사업자가 확장성을 보증하는 경우도 존재하며 기본적으로 AWS 등에서 제공하는 서버리스 서비스들은 확장성이 좋음
- 수직 확장을 고려할 경우 다운타임이 발생하여 가용성이 떨어지며, 성능 제한이 있으므로 반드시 한계를 이해해야 함
'devops bootcamp 4 > DevOps 인프라 관리' 카테고리의 다른 글
[성능 테스트] 03. 병목 찾기 (2) | 2023.06.06 |
---|---|
[성능 테스트] 02. 부하 테스트 기본 (0) | 2023.06.06 |
[서비스 모니터링] 04. 서비스 수준 목표 (0) | 2023.06.05 |
[서비스 모니터링] 03. Prometheus + Grafana (0) | 2023.06.02 |
[서비스 모니터링] 02. 쿠버네티스 클러스터 모니터링 (0) | 2023.06.02 |
Comments