[CICD/AWS] GitHub Actions은 성공인데 EB 서버가 5xx 뜰 때

hyoin·2025년 10월 19일
post-thumbnail

원래는 EC2로 배포하다가, 배포 롤링을 실습하기 위해 EB를 사용했습니다.
평소처럼 필요한 도메인만 구성하고, 깃허브 액션까지 Success했는데, EB에 접속해 보면 5xx 에러가 잔뜩이었습니다.

문제 상황

  • 환경: GitHub Actions, AWS Elastic Beanstalk (EB)
  • 증상: 액션은 Success지만, 실제 서버는 5xx 에러 100%

원인

EB는 서버 상태를 확인하기 위해 기본적으로 포트 80(HTTP)과 443(HTTPS)으로 헬스체크 요청을 특정 경로에 보냅니다:

  • /

  • /health

  • HTTPS:443/

  • HTTPS:443/health

서버에 해당 엔드포인트가 없으면 EB는 서버가 응답하지 않는다고 판단해 인스턴스를 종료합니다.

즉, 배포 자체는 성공했지만 헬스체크에 실패해 서비스가 내려간 것입니다.

해결 방법 (아래 중 택 1):

  • 서버에 / 엔드포인트를 만든다

    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class HealthCheckController {
    
        @GetMapping("/")
        public String healthCheck() {
            return "OK";
        }
    }
  • EB 설정에서 헬스체크 경로를 바꾼다

회고

이번 경험을 통해, “루트 경로는 안 쓰니까 생략해도 되겠지”라는 생각이 얼마나 위험한지 배웠습니다...

출처

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html?utm_source=chatgpt.com

profile
배워야 할 게 많은 개발자... 하지만 공부를 포기하지 않지!!

0개의 댓글