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