피드로 돌아가기
Dev.toDevOps
원문 읽기
GitHub Actions 기반 배포 자동화로 배포 시간 80% 단축 및 휴먼 에러 제거
Cutting Deployment Time by 80% with GitHub Actions and Docker
AI 요약
Context
인프라 비용 절감과 서버 제어권 확보를 위해 AWS Elastic Beanstalk에서 AWS Lightsail로 마이그레이션 수행. 이 과정에서 자동화된 배포 환경이 사라지며 SSH 접속, 태그 체크아웃, Docker 빌드, DB 마이그레이션을 매번 수동으로 처리하는 비효율적 구조 발생.
Technical Solution
- workflow_dispatch 기반의 수동 트리거 설계를 통한 의도적인 Production 배포 제어
- GitHub Secrets를 활용한 SSH Private Key 및 접속 정보의 보안 관리
- Tag 입력을 강제하는 파라미터 설계를 통한 배포 버전 관리 및 Rollback 가능성 확보
- Boolean 타입의 run_migration 옵션을 통한 DB Schema 변경 사항의 선택적 자동 적용
- Docker Compose 기반의 컨테이너 빌드 및 배포 프로세스를 YAML 워크플로우로 단일화
- SSH-keyscan을 통한 known_hosts 등록으로 서버 연결 시의 인증 신뢰성 확보
실천 포인트
1. Production 배포 시 실수 방지를 위해 workflow_dispatch 트리거 고려
2. 배포 버전 추적을 위한 Git Tag 입력 필드 필수 구성
3. DB 마이그레이션 여부를 선택할 수 있는 조건부 실행 로직 설계
4. 민감 정보(SSH Key, Host)의 하드코딩 방지를 위한 Secret 저장소 활용