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 를 마주할 수 있다.


따라서 EB 의 nginx port 설정을 spring boot port 에 맞추거나, spring boot port 를 nginx port 에 맞춰줘야 한다. 나는 EB 기본 port 5000 에 맞추었다.

아래와 같이 application.yaml 의 port 를 5000 으로 변경했다.

그리고 EB 환경 속성에 SERVER_PORT 라 하여 5000 으로 싱크를 맞추었다.

정상적으로 Environment 가 구성되었다.


댓글

이 블로그의 인기 게시물

About JVM Warm up

About idempotent

About Kafka Basic

About ZGC

sneak peek jitpack

Spring Boot Actuator readiness, liveness probes on k8s

About Websocket minimize data size and data transfer cost on cloud

About G1 GC

대학생 코딩 과제 대행 java, python, oracle 네 번째