구현 시에는 86. Lab CPU 사용량식별 및 경고 v2.0 문서를 참고.
Azure SQL Database의 CPU 사용률이 일정 임계값(예: 평균 80%)을 넘으면 Azure Monitor를 통해 자동으로 이메일 알림이 오도록 Alert Rule을 구성하는 실습을 진행했다.
방역로 프로젝트에서 Azure Functions(fn_weather, fn_kahis, fn_disinfection, fn_migratory)로 매일 자동으로 데이터를 수집해 적재하는 파이프라인을 구축했다. 이런 정기 배치 구조를 실제 운영 환경으로 확장한다면, 데이터 양이 늘어나거나 특정 배치 작업이 무거워질 때 DB에 지속적인 부하가 걸릴 수 있다. 이번 실습에서 배운 CPU 알림을 적용하면 이런 상황을 사후에 로그로 확인하는 게 아니라 사전에 감지하고 대응할 수 있다고 생각했다.
Q. Static threshold 말고 Dynamic threshold는 언제 써요?
A. 트래픽 패턴이 일정하지 않고 가변적인 경우, 고정된 임계값(예: 80%)은 false positive를 자주 발생시킬 수 있다. Dynamic threshold는 ML 기반으로 정상 패턴을 학습해 임계값을 자동 조정하기 때문에, 트래픽이 시간대별로 크게 변하는 서비스에 적합하다. 다만 정확도를 위해 14일 이상의 메트릭 히스토리가 필요하다.
Q. Elastic Pool에서는 이 알림이 왜 더 중요해요?
A. Pool 밖에서는 각 DB가 자원을 독점하기 때문에 한 DB의 부하가 다른 DB에 영향을 주지 않지만, Pool 안에서는 자원을 공유하기 때문에 한 DB의 부하 급증이 다른 DB들의 성능 저하로 이어질 수 있다. 이런 연쇄 영향을 조기에 감지하고 원인 DB를 특정하기 위해 DB별 알림이 더 중요하다.
Q. 알림을 받으면 그다음엔 뭘 해요?
A. 원인 쿼리를 확인해 최적화하거나, 지속적으로 부하가 높다면 더 높은 컴퓨팅 티어로 스케일업을 검토한다. 자동화까지 고려한다면 Action Group에 Webhook이나 Logic App을 연결해 임계값 초과 시 자동 스케일업 같은 대응도 구성할 수 있다.