Spring Boot Application Deploy to AWS Elastic Beanstalk

aws console 을 이용해서 spring boot application 을 aws Elastic Beanstalk 에 배포하는 것을 정리해보겠다. EB 를 들어가면 어떤 애플리케이션도 없을 경우 아래와 같은 화면을 확인할 수 있다. Create Application 을 눌러서 배포를 진행해보자. 어플리케이션 이름은 임의로 배포하려는 앱에 따라 지어주면된다. 플랫폼은 spring boot app 을 jar 로 올릴경우 Java 로 선택하면 된다. 코드 업로드는 로컬에서 업로드해도 되고 S3 에 jar 가 있다면, S3 URL 을 넣어주면 된다. 이제 구성쪽으로 넘어가자. 우선 단순한 예제를 진행함으로 단일 인스턴스 구성을 해주었다. 따라서 로드 밸런서에 대한 신경은 꺼버리면 된다. 보안 그룹의 경우, 기본적으로 inbound 에서 80 port 를 열어줘야 된다. outbound 는 모든 통신을 허용해주면 된다. 제일 중요한 부분이다. EB 는 기본적으로 reverse proxy 용도로 nginx 를 사용하고 있다. default port 는 5000 번이다. 반면에, spring boot 는 default port 8080 을 사용한다. 따라서 그냥 배포를 할 경우, 배포 완료되고 environment url 을 들어가게되면 달콤한 502 error 를 마주할 수 있다. https://aws.amazon.com/ko/blogs/devops/deploying-a-spring-boot-application-on-aws-using-aws-elastic-beanstalk/ 따라서 EB 의 nginx port 설정을 spring boot port 에 맞추거나, spring boot port 를 nginx port 에 맞춰줘야 한다. 나는 EB 기본 port 5000 에 맞추었다. 아래와 같이 application.yaml 의 port 를 5000 으로 변경했다. 그리고 EB 환경 속성에 SERVER_PORT 라 하여 5000 으로 싱크를 맞추었다. 정상적...