
GitHub Actions로 웹사이트 응답 상태 정기 확인하는 방법
이 글에서는 GitHub Actions를 사용하여 웹사이트의 응답 상태를 정기적으로 확인하고, 실패 시 알림을 받는 방법을 단계별로 설명합니다.
GitHub Actions를 이용하면 YAML 파일로 워크플로우를 구성하여 웹사이트에 정기적으로 HTTP 요청을 보낼 수 있습니다. 요청 결과를 응답 코드로 판단하고, 실패할 경우 Slack이나 이메일로 알림을 받도록 설정합니다. 크론 표현식을 사용해 원하는 주기로 실행하면 추가 비용 없이 웹사이트 가동 상태를 지속적으로 점검할 수 있습니다.
GitHub Actions와 웹사이트 모니터링 개념 이해
GitHub Actions는 리포지토리 안에서 자동화된 작업을 실행할 수 있는 CI/CD 플랫폼입니다. 워크플로우(Workflow)는 하나 이상의 잡(Job)으로 구성되며, 잡은 여러 스텝(Step)으로 이루어집니다. 각 스텝에서는 셸 명령이나 사전 정의된 액션을 실행할 수 있습니다. 웹사이트 모니터링은 주기적으로 사이트에 요청을 보내 응답 상태가 정상인지 확인하는 프로세스입니다. GitHub Actions를 사용하면 크론(cron) 구문으로 스케줄을 정의해 무료로 모니터링을 구현할 수 있습니다.
워크플로우 파일 생성 및 기본 구성
- 디렉터리 생성: 리포지토리 루트에
.github/workflows디렉터리를 만듭니다. - YAML 파일 생성: 이 디렉터리 안에
monitor.yml과 같은 이름의 파일을 생성합니다. 파일에는 워크플로우의 이름, 실행 조건, 잡을 정의합니다. - 기본 구조 작성:
name에 워크플로우 이름을,on에 스케줄을,jobs에 실행할 작업을 지정합니다. 러너는 GitHub 호스트형을 사용해ubuntu-latest로 설정합니다.
예를 들어, 10분마다 실행되는 최소한의 워크플로우는 다음과 같은 뼈대를 가집니다.
name: Website Uptime Checkon:아래schedule:에cron: '*/10 * * * *'jobs:아래check:에runs-on: ubuntu-lateststeps:에서 원하는 명령을 실행합니다.
HTTP 요청을 보내는 스텝 추가
curl 명령어로 웹사이트에 HTTP GET 요청을 보내고 응답 코드를 가져옵니다. 다음 셸 스크립트를 스텝으로 추가하면 됩니다.
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" https://example.com)
echo "HTTP status: $HTTP_CODE"
echo "http_code=$HTTP_CODE" >> $GITHUB_OUTPUT
$GITHUB_OUTPUT 파일에 변수를 기록하면 이후 스텝에서 steps.출력아이디.outputs.http_code 식으로 참조할 수 있습니다.
응답 코드에 따른 조건부 알림 설정
실패 시에만 알림을 보내려면 스텝에 if 조건을 추가합니다. 일반적으로 상태 코드가 200~399이면 성공, 그 외는 실패로 간주합니다. Slack 알림을 예로 들면, 이전 스텝의 출력값이 200이 아닐 때만 slackapi/slack-github-action을 사용하도록 구성합니다. 필요한 Slack 웹훅 URL은 리포지토리의 Settings > Secrets and variables > Actions에서 시크릿으로 등록합니다.
if: steps.check.outputs.http_code != '200'
크론 일정으로 워크플로우 정기 실행
워크플로우의 on.schedule에 크론 표현식을 설정하여 주기적인 실행을 정의합니다. 크론 표현식은 분, 시, 일, 월, 요일 순서로 '0 * * * *' (매시간 정각)처럼 작성합니다. GitHub Actions의 크론 트리거는 실행 시간이 약간 지연될 수 있으므로 모니터링 간격에 여유를 두는 것이 좋습니다.
워크플로우 실행 로그 확인 및 문제 해결
실행 결과를 확인하려면 리포지토리의 Actions 탭에서 해당 워크플로우 실행을 선택합니다. 실행 로그를 확인하려면 리포지토리에 읽기 접근 권한이 있어야 합니다. 필요한 경우 로그를 삭제하려면 쓰기 권한이 필요합니다. 로그 검색은 확장된 단계만 결과에 포함됩니다. 또한 공개 리포지토리에서 워크플로우 실행 정보를 보려면 GitHub 계정에 로그인해야 합니다.
보다 포괄적인 웹사이트 점검 항목은 소규모 사업자 홈페이지 유지보수 체크리스트를 참고하세요.
참고 자료
- GitHub Docs — 워크플로 실행 로그 사용 — 확인일 2026-07-30