.NET 애플리케이션 건강 상태 체크 설정 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
.NET 애플리케이션 개발자, DevOps 엔지니어, CI/CD 파이프라인 구성자
핵심 요약
- 건강 상태 체크는 애플리케이션의 가용성을 확인하는 핵심 지표로,
Healthy
,Degraded
,Unhealthy
상태를 반환하는 엔드포인트(/health
)로 구성 - 기본 설정은
AddHealthChecks()
와UseHealthChecks("/health")
로 간단히 구현 가능 - 데이터베이스 장애 시에도
Healthy
상태를 유지하는 한계가 존재 - 커스텀 로직은
IHealthCheck
인터페이스 구현 후AddCheck<>()
로 등록 가능 - SQL Server 등 외부 시스템 연동은
AddSqlServer()
API로 지원
섹션별 세부 요약
1. 건강 상태 체크의 목적
- 서비스 가용성 모니터링 및 자동 복구(예: Kubernetes Health Probe) 지원
Unhealthy
상태 시 애플리케이션 재시작 또는 알림 생성 가능- CI/CD 파이프라인에서 서비스 상태 실시간 확인 가능
2. 기본 설정 방법
- DI 등록:
builder.Services.AddHealthChecks();
- 미들웨어 추가:
app.UseHealthChecks("/health")
- 기본 응답:
Healthy
시200 OK
, 나머지 상태는Unhealthy
3. 커스텀 건강 체크 구현
IHealthCheck
인터페이스 구현 후AddCheck<>()
로 등록- 예시:
```csharp
builder.Services.AddHealthChecks().AddCheck
```
4. 외부 시스템 연동
- 데이터베이스:
AddSqlServer()
API로 연결 문자열 및 쿼리 설정
```csharp
.AddSqlServer("your-connection-string", "SELECT 1;", "sqlserver", HealthStatus.Unhealthy)
```
- 시스템 모니터링: 디스크 공간, 네트워크 상태 등 기본 모니터링 지원
5. 상태 추적 옵션
- UI 대시보드: 애플리케이션 내 URL로 접근 가능한 모니터링 인터페이스
- Kubernetes/Docker: 자동 복구 기능 연동
- 모니터링 도구: Application Insights, Grafana 등으로 메트릭 수집
결론
- 건강 상태 체크는 서비스 가용성 향상과 문제 발생 시 빠른 대응을 위해 필수
- 외부 시스템 연동 및 커스텀 로직 적용으로 정확한 상태 추적 가능
- UI 대시보드 또는 Kubernetes Health Probe 활용을 권장