Cloudflare Pages 빌드 후 매번 실행하는 3가지 배포 후 점검 사항
프로덕션 이슈를 디버깅하는 데 2주를 보냈습니다.
사이트맵 규칙이 XML 파일을 차단했습니다. 레이스 컨디션(race condition)으로 인해 이미지 업로드 실패가 발생했습니다. 저는 추측하는 것을 그만두고 워크플로우에 세 가지 구체적인 점검 사항을 추가했습니다.
저는 이 점검들을 세 개의 Astro 5 SSG 사이트인 aiappdex.com, findindiegame.com, ossfind.com에서 실행합니다.
이 점검들은 실제 발생했던 장애 유형을 대상으로 합니다.
- Sitemap Verification
모든 도메인에서 sitemap-index.xml이 200 상태 코드를 반환하는지 확인합니다. 리다이렉트 추적 없이 curl을 사용합니다. 이를 통해 URL을 잘못 재작성하는 규칙을 잡아낼 수 있습니다.
하위 사이트맵도 확인합니다. 최소한의 URL 개수가 포함되어 있는지 검증합니다. 예를 들어, aiappdex.com의 URL이 1,000개 미만으로 떨어지면 데이터 파이프라인에 문제가 생긴 것입니다.
- IndexNow Submission
사이트맵 점검을 통과하면, IndexNow에 URL을 제출하는 스크립트를 실행합니다. 이를 통해 Bing, Yandex, Naver, Seznam에 새로운 콘텐츠를 알립니다.
403 에러를 모니터링합니다. 403 에러는 보통 키 검증 파일이 배포되지 않았거나 리다이렉트 규칙이 경로를 깨뜨렸음을 의미합니다. 이를 조기에 발견하면 인덱싱 지연을 방지할 수 있습니다.
배포 후 수동으로 실행합니다. 이를 통해 CDN에 실제로 활성화된 URL만 제출하도록 보장합니다.
- Scheduled Lighthouse Audits
매주 월요일마다 cron job을 통해 Lighthouse 점검을 실행합니다. 사이트당 홈페이지 하나와 내부 페이지(deep page) 하나를 점검합니다.
다음 지표들을 모니터링합니다:
- Performance (목표 80 이상)
- CLS (목표 0.1 미만)
- Accessibility 점수
Lighthouse를 트렌드 모니터로 사용합니다. 점수가 약간 떨어진다고 해서 배포를 차단하지는 않습니다. 대신 이 데이터를 사용하여 Tailwind 설정이나 컴포넌트 레이아웃에서 발생하는 회귀(regression) 현상을 파악합니다.
왜 이 세 가지인가요?
저는 업타임 모니터링이나 엔드 투 엔드(E2E) 사용자 테스트를 사용하지 않습니다. 제 사이트들은 정적 SSG 배포 방식입니다. 전체 런타임은 미리 빌드된 HTML과 CSS로 구성됩니다.
장애 발생 범위가 좁습니다. 이 세 가지 점검은 프로덕션 환경이 깨질 수 있는 가장 가능성 높은 경로들을 커버합니다.
출처: https://dev.to/morinaga/three-post-deploy-checks-i-run-after-every-cloudflare-pages-build-3j14