카테고리 없음
Next.js에서 Ping 체크를 위한 Health Check 파일 작성
ANG DEV
2023. 3. 26. 23:25
프로젝트의 상태를 검사하기 위해 Health Check를 진행하는 것은 매우 중요합니다.
서비스에 문제가 발생하지는 않았는지, 가용성 점검을 위해 안정적인 상태를 확인하는 것이 필요한데요,
이때 프론트엔드의 건강 상태를 모니터링하기 위해서 적절한 health check 파일을 생성해주는 것이 좋습니다.
| 만약 헬스 체크 파일이 없다면 어떻게 될까요?
임의의 사이트에 대해 curl 요청을 날려보겠습니다. 아주 많은 양의 통 html 코드가 응답으로 반환되는 것이 보이시나요?
사이트에 따라 헬스체크를 위한 별도의 경로가 존재하겠지만, 만약 health check 파일이 생성되어 있지 않다면 상태 모니터링을 위해 매번 대용량의 응답을 돌려받아야 합니다. 😱
서비스에 문제가 발생하지는 않았는지를 확인하고, 가용성 점검을 위한 테스트에서 이게 적절한 응답일까요?
curl https://openai.com
정답은 No! 입니다.
가볍고 직관적인 health check 파일을 설정하면,
서버가 정상 작동 여부 점검을 더 빠르게 확인할 수 있고, 성능 저하나 장애 발생 시 신속하게 대응할 수 있습니다.
# 실행 명령어
curl http://localhost:3000/healthz
# 응답
{"status":"OK"}
이제 healthz 경로를 생성해주면 위처럼 간편하게 응답을 돌려줄 수 있습니다.
Next JS 환경에서 어떻게 파일을 설정하면 좋은지 아래 내용을 참고해주세요.
| src/pages/api/health_check.ts
- /healthz 경로로 콘솔 헬스 체크 진행할 수 있도록 엔드포인트 추가합니다.
import type { NextApiRequest, NextApiResponse } from 'next';
export default function handler(_: NextApiRequest, res: NextApiResponse) {
res.status(200).json({ status: 'OK' });
}
| next.config
const nextConfig = {
rewrites() {
return [
{
source: '/healthz',
destination: '/api/health_check',
},
];
},
};
이렇게 간단한 설정을 통해 서비스의 정상 작동 여부를 확인하고, 시스템의 안정성과 성능을 유지할 수 있습니다.
Posted by Ang