Skip to content

Add GHCR to EC2 delivery pipeline - #2

Merged
emfpdlzj merged 1 commit into
mainfrom
agent/ghcr-ec2-cicd
Jul 15, 2026
Merged

Add GHCR to EC2 delivery pipeline#2
emfpdlzj merged 1 commit into
mainfrom
agent/ghcr-ec2-cicd

Conversation

@emfpdlzj

Copy link
Copy Markdown
Member

변경 사항

  • Python 3.12 FastAPI 애플리케이션용 멀티 아키텍처 Docker 이미지를 추가했습니다.
  • PR에서 품질 검사와 컨테이너 빌드를 검증하고, main에서 GHCR에 immutable digest 이미지를 게시하는 GitHub Actions 워크플로를 추가했습니다.
  • GitHub OIDC 단기 자격증명과 AWS SSM Run Command를 이용해 EC2 포트 8001로 자동 배포합니다.
  • 새 컨테이너가 헬스체크를 통과하지 못하면 직전 이미지로 롤백합니다.
  • AWS IAM/SSM 및 Amazon Linux EC2 준비를 위한 멱등 부트스트랩 스크립트와 운영 문서를 추가했습니다.

보안 및 운영

  • 장기 AWS 액세스 키나 SSH 배포 키를 사용하지 않습니다.
  • GHCR 인증에는 작업별 GITHUB_TOKEN을 임시 SecureString으로 사용하고 배포 후 삭제합니다.
  • GitHub OIDC 신뢰는 tech4good-One-T/aiservermain 브랜치로 제한합니다.
  • SSM 명령 권한은 i-089aa1e7e65187550 인스턴스로 제한합니다.

검증

  • uv run ruff check .
  • uv run ruff format --check .
  • uv run pytest --cov=app --cov-report=term-missing (3 passed, 100%)
  • actionlint
  • shellcheck deploy/ec2-deploy.sh infra/bootstrap-aws.sh infra/bootstrap-ec2.sh
  • AWS SSM Agent Online 확인
  • Docker 25.0.14 enabled/active 확인
  • /opt/aiserver1/.env 권한 600 확인
  • 보안 그룹 TCP 8001 → 0.0.0.0/0 확인

@emfpdlzj
emfpdlzj merged commit e678cce into main Jul 15, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant