Cloudflare Pages 빌드 후 매번 실행하는 3가지 배포 후 점검 사항

프로덕션 이슈를 디버깅하는 데 2주를 보냈습니다.

사이트맵 규칙이 XML 파일을 차단했습니다. 레이스 컨디션(race condition)으로 인해 이미지 업로드 실패가 발생했습니다. 저는 추측하는 것을 그만두고 워크플로우에 세 가지 구체적인 점검 사항을 추가했습니다.

저는 이 점검들을 세 개의 Astro 5 SSG 사이트인 aiappdex.com, findindiegame.com, ossfind.com에서 실행합니다.

이 점검들은 실제 발생했던 장애 유형을 대상으로 합니다.

  1. Sitemap Verification

모든 도메인에서 sitemap-index.xml이 200 상태 코드를 반환하는지 확인합니다. 리다이렉트 추적 없이 curl을 사용합니다. 이를 통해 URL을 잘못 재작성하는 규칙을 잡아낼 수 있습니다.

하위 사이트맵도 확인합니다. 최소한의 URL 개수가 포함되어 있는지 검증합니다. 예를 들어, aiappdex.com의 URL이 1,000개 미만으로 떨어지면 데이터 파이프라인에 문제가 생긴 것입니다.

  1. IndexNow Submission

사이트맵 점검을 통과하면, IndexNow에 URL을 제출하는 스크립트를 실행합니다. 이를 통해 Bing, Yandex, Naver, Seznam에 새로운 콘텐츠를 알립니다.

403 에러를 모니터링합니다. 403 에러는 보통 키 검증 파일이 배포되지 않았거나 리다이렉트 규칙이 경로를 깨뜨렸음을 의미합니다. 이를 조기에 발견하면 인덱싱 지연을 방지할 수 있습니다.

배포 후 수동으로 실행합니다. 이를 통해 CDN에 실제로 활성화된 URL만 제출하도록 보장합니다.

  1. 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