웹 사이트와 함께 사업 규모가 커지고 나면, 로그나 매트릭(metric), 자동화(automation) 같은 도구에 필수적으로 투자해야 합니다.
- 로그: 에러 로그를 모니터링하는 것은 중요합니다. 시스템의 오류와 문제들을 보다 쉽게 찾아낼 수 있도록 하기 때문입니다. 에러 로그는 서버 단위로 모니터링 할 수도 있지만, 로그를 단일 서비스로 모아주는 도구를 활용하면 더 편리하게 검색하고 조회할 수 있습니다.
- 메트릭: 메트릭을 잘 수집하면 사업 현황에 관한 유용한 정보를 얻을 수도 있고, 시스템의 현재 상태를 손쉽게 파악할 수도 있습니다. 메트릭 가운데 특히 유용한 것을 몇 가지 살펴보면 다음과 같습니다.
- 호스트 단위 메트릭: CPU, 메모리, 디스크 I/O에 관한 메트릭이 여기 해당합니다.
- 종합(aggregated) 메트릭: 데이터베이스 계층의 성능, 캐시 계층의 성능 같은 것이 여기 해당됩니다.
- 핵심 비즈니스 메트릭: 일별 능동 사용자(daily active user), 수익(revenue), 재방문(retention) 같은 것이 여기 해당합니다.
- 자동화: 시스템이 크고 복잡해지면 생산성을 높이기 위해 자동화 도구를 활용해야 합니다. 가령 지속적 통합(continuous integration)을 도와주는 도구를 활용하면 개발자가 만드는 코드가 어떤 검증 절차를 자동으로 거치도록 할 수 있어서 문제를 쉽게 감지할 수 있습니다. 이 외에도 빌드, 테스트, 배포 등의 절차를 자동화할 수 있어서 개발 생산성을 크게 향상시킬 수 있습니다.
메시지 큐, 로그, 메트릭, 자동화 등을 반영하여 수정한 설계안
지면 관계상 하나의 데이터센터만 그림에 포함시켰습니다.
- 메시지 큐는 각 컴포넌트가 보다 느슨히 결합(loosely coupled)될 수 있도록 하고, 결함에 대한 내성을 높입니다.
- 로그, 모니터링, 메트릭, 자동화 등을 지원하기 위한 장치를 추가하였습니다.
참조
'System Design' 카테고리의 다른 글
[사용자 수에 따른 규모 확장성] 백만 사용자, 그리고 그 이상 (0) | 2021.09.13 |
---|---|
[사용자 수에 따른 규모 확장성] 데이터베이스의 규모 확장 (0) | 2021.09.10 |
[사용자 수에 따른 규모 확장성] 메시지 큐 (0) | 2021.09.08 |
[사용자 수에 따른 규모 확장성] 데이터 센터 (0) | 2021.09.07 |
[사용자 수에 따른 규모 확장성] 무상태(stateless) 웹 계층 (0) | 2021.09.07 |
댓글