본문으로 건너뛰기

롤백 절차

배포 후 문제 발생 시 이전 버전으로 복구하는 방법입니다.

빠른 롤백

make rollback NAME=myapp

바로 이전 릴리즈로 롤백됩니다.

특정 버전으로 롤백

# 릴리즈 목록 확인
make release-list NAME=myapp

# 특정 버전으로 배포
make deploy NAME=myapp VERSION=251216-1200

롤백 원리

심볼릭 링크 변경으로 즉시 롤백:

# 현재 상태
live/myapp → releases/myapp/251218-1400

# 롤백 후
live/myapp → releases/myapp/251217-0900
왜 빠른가?

파일 복사 없이 심볼릭 링크만 변경하므로 수 초 내 완료됩니다.

롤백 시 주의사항

DB 마이그레이션

마이그레이션 롤백 불가

이미 적용된 마이그레이션은 자동으로 롤백되지 않습니다.

해결 방법:

  1. 새 마이그레이션으로 수정
  2. 수동 롤백 (php artisan migrate:rollback)
  3. DB 백업에서 복원

캐시/세션

롤백 후 캐시 클리어:

make shell NAME=myapp
php artisan cache:clear
php artisan config:clear

롤백 체크리스트

  • 문제 증상 파악
  • 릴리즈 목록에서 안정 버전 확인
  • 롤백 실행
  • 서비스 정상 확인
  • 원인 분석 후 수정

비상 롤백 (수동)

Makefile이 동작하지 않을 경우:

# 심볼릭 링크 직접 변경
cd live
rm myapp
ln -s ../releases/myapp/251216-1200 myapp

# 웹 서버 재시작 (필요시)
sudo systemctl reload nginx

예방 조치

배포 전 백업

make backup NAME=myapp
make release NAME=myapp
make deploy NAME=myapp

스테이징 테스트

프로덕션 배포 전 스테이징 환경에서 테스트.

릴리즈 유지

최소 3-5개 이전 릴리즈 유지:

make release-clean NAME=myapp KEEP=5