Cloudflare + AWS SSM 자동화 가이드

목적

  • Cloudflare 배포 필수값을 AWS SSM에 저장
  • SSM 최신값을 GitHub Actions에 동기화
  • main push 시 블로그 자동 배포

필요한 값 (사용자가 제공)

  1. CF_ACCOUNT_ID
  2. CF_API_TOKEN
  3. CF_PROJECT_NAME (권장: solodev-root-blog)

SSM 경로

SSM 경로 타입
Cloudflare Account ID /solodev/ci/blog/cloudflare/account-id String
Cloudflare API Token /solodev/ci/blog/cloudflare/api-token SecureString
Cloudflare Pages Project /solodev/ci/blog/cloudflare/project-name String

원클릭 실행

CF_ACCOUNT_ID=... \
CF_API_TOKEN=... \
CF_PROJECT_NAME=solodev-root-blog \
scripts/blog/bootstrap-cloudflare-pages-from-values.sh --overwrite --create-project --trigger-deploy

실행 내용:

  1. SSM 파라미터 등록
  2. GitHub Secret/Variable 동기화
  3. Cloudflare Pages 프로젝트 생성 시도
  4. 배포 워크플로우 실행
  5. 준비 상태 점검

수동 단계별 실행

1) SSM 등록

CF_ACCOUNT_ID=... \
CF_API_TOKEN=... \
CF_PROJECT_NAME=solodev-root-blog \
scripts/blog/register-cloudflare-blog-ssm.sh --overwrite

2) GitHub 동기화

scripts/blog/sync-cloudflare-blog-secrets-from-ssm.sh

3) 준비 상태 점검

scripts/blog/check-cloudflare-blog-ready.sh

4) 배포 실행

gh workflow run deploy-cloudflare-pages-blog.yml

값 회전(최신화)

Cloudflare 토큰 변경 시 아래 2개만 재실행:

CF_ACCOUNT_ID=... \
CF_API_TOKEN=... \
CF_PROJECT_NAME=solodev-root-blog \
scripts/blog/register-cloudflare-blog-ssm.sh --overwrite

scripts/blog/sync-cloudflare-blog-secrets-from-ssm.sh

실패 시 점검

  1. AWS 권한: aws sts get-caller-identity
  2. SSM 값 확인:
    • aws ssm get-parameter --name /solodev/ci/blog/cloudflare/account-id
    • aws ssm get-parameter --name /solodev/ci/blog/cloudflare/api-token --with-decryption
  3. GitHub 설정 확인:
    • gh secret list
    • gh variable list
  4. 워크플로우 로그:
    • gh run list --workflow deploy-cloudflare-pages-blog.yml