Skip to content

6. 운영 런북

시스템을 살아있게 유지하는 법: 배치 작업, 모니터링, 장애 대응, DB 운영.

6.1 배치 작업 (Cloud Scheduler)

이용권 관련 배치 2종이 매일 자동 실행됩니다. 전체 가이드 → docs/infra/cloud-scheduler.md.

Job스케줄설명
spective-ticket-expire매일 00:01 KSTAVAILABLE/RESTORED 이용권 만료 처리
spective-ticket-recover매일 00:01 KST미사용 RESERVED 이용권 자동 복구 후 만료 처리
  • 인증: 모든 CRON 엔드포인트는 CRON_SECRET Bearer 토큰 (timingSafeEqual)
  • 엔드포인트: POST /api/tickets/expire, POST /api/tickets/recover
  • ⚠️ recover는 recoverUnusedTickets()processExpiredTickets() 순서가 중요(복구분이 만료 대상이 될 수 있음)
  • 설정: ./scripts/setup-cloud-scheduler.sh dev|prod
  • 관리: gcloud scheduler jobs {list,run,pause,resume,delete} ... --location=asia-northeast3
bash
# 수동 테스트 (dev)
curl -X POST -H "Authorization: Bearer ${CRON_SECRET}" \
  https://spective-web-xf3kugqnca-du.a.run.app/api/tickets/recover

6.2 모니터링 · 로그

  • ⚠️ 별도 모니터링·알림 체계 없음 (현 담당자 확인). Cloud Monitoring 대시보드·외부 APM·Sentry·온콜 모두 미구성.

  • 사실상 유일한 관측 수단: Cloud Run 로그 — GCP 콘솔 Cloud Run → spective-web → 로그 (또는 gcloud run services logs read spective-web --region=asia-northeast3)
  • @repo/logger 태그 컨벤션으로 필터링: admin:pricing, service:auth, composable:session
  • 서버/프로덕션은 consola, 클라이언트 개발은 네이티브 console
  • 💡 인수 권고: 최소한 Cloud Run 오류율·지연 알림(Cloud Monitoring) 또는 Sentry 도입을 우선 검토. 현재는 장애를 능동적으로 감지할 수단이 없음.

6.3 장애 대응 플레이북

기록된 과거 장애 사례 없음(담당자 확인). 아래는 코드·설정에서 유추 가능한 알려진 대응만 정리.

증상1차 확인대응
서비스 5xxCloud Run 로그/리비전 상태이전 리비전 롤백 (5.6)
배치 401(CRON_SECRET 불일치)Cloud Run env vs Scheduler 헤더 일치 여부gcloud run services describe로 env 확인 → cloud-scheduler.md 트러블슈팅
Cold start 타임아웃min-instances 값gcloud run services update --min-instances=1
배치 권한 오류계정 IAM 역할roles/cloudscheduler.admin 부여
결제/PG 오류Cloud Run 로그(service: 태그), 토스 콘솔토스페이먼츠 콘솔 확인 (알렉스앤앨리스)
이메일 미발송Resend 대시보드, resend 로거RESEND_API_KEY·발송 한도 확인 (§4.4)

6.4 DB 운영

  • DB: Supabase (관리형 Postgres), 리전 Seoul
  • 접속: Prisma datasource(postgresql) — DATABASE_URL(pooled) + DIRECT_URL(direct, 마이그레이션용). 접속 문자열은 dotenvx 시크릿에 보관.
  • 마이그레이션 배포: bun run db:migrate:deploy (prod 배포 파이프라인에 포함, 5.4)
  • 시드: 환경별 명령 → 3.4, README.md Database
  • 백업: Supabase 기본 정책에 의존 (플랜에 따라 자동 일일 백업 / PITR). Supabase 계정은 알렉스앤앨리스 소유이므로 플랜·백업 정책 관리도 알렉스앤앨리스 영역.
  • 복구: 복구 수행 경험 없음. Supabase 대시보드 백업/복원 기능 사용. 인수 후 알렉스앤앨리스 측에서 복구 리허설 1회 권장.