학습 목표
- 시스템의 가용성과 확장성을 평가할 수 있다.
- 부하 테스트의 목적을 이해할 수 있다.
- Throughput과 Latency의 개념을 이해할 수 있다.
- 시스템의 병목이 발생하는 주요 원인과 대책을 이해할 수 있다.
- SLO를 설정하고, 이를 기반으로 부하 테스트를 진행하고, 달성 여부를 파악할 수 있다.
- 가용성
- 시스템이 정상적으로 사용 가능한 정도
- Uptime / (Uptime + Downtime)
- 핵심은 단일 장애점(Single Point of Failure)을 없애는 것
- 어떤 한 노드에 장애가 발생해도 동일한 처리 능력을 가진 다른 노드로 대체도리 수 있어야 함
- 확장성
- 확장 가능한 시스템: 요구되는 시스템의 성능에 따라 동적으로 서버 구성이 변경되고, 시스템 처리 능력을 최적화할 수 있는 시스템
- 시스템의 처리 능력을 확장하는 방법: 하나의 머신에서 메모리나 CPU를 늘리는 수직 확장(Scale Up), 머신의 인스턴스 수를 늘리는 수평 확장(Scale Out)
- 수직 확장은 한계가 있으므로, 수평 확장이 가능할 때 확장성이 좋다고 평가할 수 있음
- 수직 확장을 고려할 경우 다운타임이 발생하여 가용성이 떨어지며, 성능 제한이 있으므로 반드시 한계를 이해해야함
- AWS와 같은 클라우드 사업자가 확장성을 보증하는 경우도 존재함
- 기본적으로 AWS 등에서 제공하는 서버리스 서비스들은 확장성이 좋음
'Code States > TIL' 카테고리의 다른 글
[0607] 성능 테스트 - 병목 찾기 (0) | 2023.06.08 |
---|---|
[0607] 성능 테스트 - 부하 테스트 기본 (0) | 2023.06.08 |
[0605] 서비스 모니터링 - 서비스 수준 목표 (0) | 2023.06.05 |
[0602] 서비스 모니터링 - Prometheus 모니터링 시스템 (0) | 2023.06.02 |
[0601] 서비스 모니터링 - Auto Scailing + CloudWatch를 이용한 알림 (0) | 2023.06.01 |