피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Zero-Downtime 구현을 위한 Immutable Infrastructure 기반 배포 체계 전환
Understanding immutable infrastructure patterns: when servers become disposable
AI 요약
Context
서버별 개별 수정으로 인한 Configuration Drift 발생 및 환경 불일치 문제 직면. 수동 패치 기반의 Mutable Infrastructure 구조로 인한 예측 불가능한 배포 리스크 및 디버깅 비용 증가.
Technical Solution
- 서버를 Disposable Asset으로 정의하여 배포 후 수정 금지 원칙 적용
- Build Artifact 단계에서 Application과 Dependency를 포함한 Golden Image 생성
- 신규 인프라 프로비저닝 후 Health Check를 통한 검증 절차 수행
- Load Balancer의 Traffic Switchover를 통한 무중단 서비스 전환 구현
- 검증 완료 후 구버전 인프라를 즉시 Terminate 하는 Cleanup 프로세스 정립
- Session 및 Log 등 모든 Persistent State의 외부 저장소 분리 설계
Impact
- AMI 기반 프로비저닝 및 검증을 포함한 총 8분의 Zero-Downtime 배포 시간 달성
- 50대 규모 플랫폼 기준 배포당 약 €200의 추가 비용 발생하나 디버깅 시간 단축으로 상쇄
- 시간당 2,000건 트랜잭션 처리 환경에서 환경 일관성 확보를 통한 배포 안정성 강화
Key Takeaway
인프라를 'Pets'가 아닌 'Cattle'로 취급하는 관점 전환을 통해 환경의 재현성(Reproducibility)을 확보하고 운영 복잡도를 획기적으로 낮춘 사례
실천 포인트
- 서비스의 Stateless 여부 확인 및 상태 데이터의 외부 저장소 분리 검토 - Golden Image 제작을 통한 프로비저닝 시간 단축 및 CI/CD 파이프라인 자동화 구축 - 배포 기간 중 발생하는 일시적 인프라 중복 비용에 대한 예산 책정 - Load Balancer 및 DNS 수준의 Traffic 제어 메커니즘 설계
태그