GitHub Action으로 배포 시 AWS 상태 검사 관련 배포 실패 이슈
⚡문제 발생
GitHub Action을 이용해서 AWS 엘라스틱 빈스톡에 자동 배포하는 과정을 진행 중 배포 단계에서 문제가 생긴 것을 발견했다.
WARN: Environment health has transitioned from Info to Degraded. ELB processes are not healthy on 1 out of 2 instances. Application update in progress on 1 instance. 0 out of 1 instance completed (running for 4 minutes). ELB health is failing or not available for 1 out of 2 instances. All instances are in same availability zone (ap-northeast-2a).
Spring 테스트도 리눅스 환경에서 모두 통과하는 것도 확인했고, 무엇보다 Spring 상에서 발생한 에러가 아니었기 때문에 원인을 찾기가 막막했다.
열심히 구글링도 해봤지만, 해당 에러 로그와 정확히 일치하는 사례가 없었다.
😊해결
그래서 에러 로그를 찬찬히 살펴보았는데, 이 부분이 눈에 띄었다.
WARN: Environment health has transitioned from Info to Degraded.
‘상태 검사’가 생각났는데, 의문이 드는 점이 있었다. 엘라스틱 빈스톡에 jar 파일을 직접 올리는 방식으로 배포를 진행했을 때는 상태 검사에서 경고 또는 심각이 뜨는 것을 본적은 있어도 정상적으로 배포가 진행되었기 때문이었다.
그래도 현재 코드 상으로는 Spring Security가 적용되어 있고 Default 경로인 / 에 대해서 권한 부족으로 오류가 발생하기 때문에 상태 검사에 통과하지 못할 것이라 생각했고, 이와 같이 인증 없이 들어갈 수 있는 URI로 수정했다.
이후 다시 배포를 진행했는데, 성공했다!
정리
GitHub Action을 통해 CI/CD를 구성할 때, 엘라스틱 빈스톡의 상태 검사를 통과해야 정상적으로 배포가 됨을 알게 되었다.
여기서 마지막으로 남는 궁금점은, 상태 검사를 할 때 어느 URI를 사용하는게 적절한가 이다.
지금은 일단 테스트를 위한 전용 컨트롤러를 두어 해결한 상태인데 (Spring Security가 적용되어서 권한 부족으로 접근하지 못하는 URI가 대다수이다.) 이 방식이 옳은 방식인지 생각해봐야할 것 같다.
⚡개인적으로 공부하면서 포스팅한 글입니다. 오류가 있는 경우 지적해주시면 감사하겠습니다!⚡
댓글남기기