첫 번째 실패 후 Opsworks 배포 중지

첫 번째 실패 후 Opsworks 배포 중지

마침내 프로젝트 중 하나에 대해 AWS Opsworks에서 완전한 기능을 갖춘 환경 설정을 완료했지만 아직 완전히 실행되지는 않았습니다.

내 템플릿 중 하나를 약간 조정한 후 실수로 Chef 구문 오류를 푸시하고 실행 중인 인스턴스에서 사용자 지정 요리책 저장소를 업데이트하고 내 앱을 다시 배포했습니다.

배포 중간에 첫 번째 인스턴스는 분명히 실패했고 두 번째 인스턴스는 계속해서 배포를 수행했습니다. 로드 밸런서를 통해 사이트를 로드하려고 하면 사이트가 이미 다운되었고 두 번째 인스턴스의 배포가 곧 완료된 것을 볼 수 있습니다.

내가 말했듯이 이것은 프로덕션 단계가 아니었고 일단 라이브로 전환하면 스테이징 스택도 갖게 될 것이며 라이브에서 이와 같은 일이 발생하지 않기를 바랍니다(예: 셰프 구문 오류). 하지만 여전히 Opsworks가 사용자에게 제공하는 기능이 있는지 궁금합니다. "한 인스턴스에서 실패했습니다. 이제 나머지 인스턴스에 대한 배포를 중지하세요."라고 말할 수 있습니다.

SNS 알림 등을 보내는 등 배포가 실패할 때 알림을 받을 수 있는 방법이 있으면 좋을 것입니다.

배포가 실패하는 경우, 모든 인스턴스에 대한 배포 중지, 알림, 롤백 등과 같은 상황을 다른 사람들이 어떻게 처리하는지 궁금합니다. 아니면 대시보드에서 일부 구성을 놓쳤을 수도 있습니다.

답변1

안타깝게도 OpsWorks는 아직 롤링 배포(예: CodeDeploy 및 Elastic Beanstalk)를 지원하지 않습니다. 따라서 한 인스턴스가 실패할 때까지 작업 실행이 절반쯤 되었을 수 있는 다른 인스턴스를 중지하는 것은 어렵습니다.

제가 제안하는 것은 프로덕션 스택을 복제하여 개발 스택을 만드는 것입니다. 레시피 저장소에 마스터 및 프로덕션 git 브랜치가 있고 개발 스택은 마스터를 사용하고 프로덕션은 프로덕션 브랜치를 사용합니다.

실수로 Chef 구문 오류가 발생하더라도 문제가 되지 않는 개발 스택에서 모든 작업과 테스트를 수행하십시오. 변경 사항을 테스트하고 적용 준비가 완료되면 마스터를 프로덕션에 병합하고 프로덕션 스택에서 작업을 실행합니다.

관련 정보