DEVELOPMENT NOTE / CHIP THRONE
Watchtower 기반 자동 배포
문제
- GitHub Actions 러너가 EC2에 SSH로 접속하는 재배포 단계에서
i/o timeout발생 - 22번 포트는 개인 IP만 허용했지만 GitHub Actions 러너의 IP는 실행할 때마다 달라짐
해결 전략
- 22번 포트를 전체 공개하지 않고 배포 방향을 push에서 pull로 전환
- EC2의 Watchtower가 GHCR을 60초마다 확인하고 새 이미지가 있으면 컨테이너 교체
- GitHub Actions는 이미지 저장까지만, EC2 반영은 Watchtower가 담당
기술 선택 이유
- SSH 포트를 전체 공개하면 상시 스캔과 무차별 대입 공격에 노출
- pull 구조는 외부에서 EC2로 접속하지 않으므로 기존 보안그룹을 그대로 유지
결과
- 보안그룹 22번은 개인 IP만 허용한 채 유지
main반영 → 이미지 빌드 → 60초 내 EC2 자동 갱신- 배포 경로에서 SSH 키·러너 IP 관리 부담 제거