공부하는 스누피

[AWS, Spring] Spring 프로젝트 Beanstalk에 올리기 본문

Web/Spring

[AWS, Spring] Spring 프로젝트 Beanstalk에 올리기

커피맛스누피 2020. 8. 11. 12:03

환경

- Eclipse Jee 2019-03

- JDK 1.8

- STS 3.x

- AWS EC2 t2.micro (프리 티어)

 

1. Spring mvc 프로젝트 만들기

이클립스에서 marketplace에 있는 Spring Toolkit을 설치하면 간단한 Spring MVC 프로젝트를 바로 빌드할 수 있다. 

검색창에 Spring이라고 치면 바로 나옵니다.
Spring MVC Project를 선택해줍니다.

패키지 입력할 때는 반드시 3단계로 해주어야 합니다.

ex. com.myexample.app

2. Tomcat 서버에 돌아가는지 확인하기

프로젝트 폴더 우클릭->Run as->Run on Server 클릭

서버 선택 : 버전에 맞는 서버 선택하기 (Tomcat 9.0 선택했음)

서버를 돌린 후 콘솔에 아래 메세지가 출력되고, 자동으로 웹페이지가 켜짐

3. war 배포 파일로 만들기

war 파일은 자바 웹 애플리케이션을 배포하기 위한 패키지 파일이다. mvn package 커맨드를 사용하면 jar파일을 만들어 준다....

프로젝트 폴더 우클릭->Export->WAR 검색 후 클릭->저장 디렉터리 선택

 

4. AWS beanstalk 시작하기

AWS 계정은 이미 만들었다고 가정한다. 없으면 아래 가이드를 따라 만들고 진행합시다.

https://aws.amazon.com/ko/premiumsupport/knowledge-center/create-and-activate-aws-account/

 

AWS 계정 생성 및 활성화

계정 생성 Amazon Web Services 홈 페이지를 엽니다. [AWS 계정 생성]을 선택합니다. 참고: 최근에 AWS에 로그인한 경우 [콘솔에 로그인]을 선택합니다. AWS 계정 새로 만들기가 표시되지 않으면 우선 다른

aws.amazon.com

AWS 콘솔에 root 계정으로 접속해서 메뉴창에 Elastic Beanstalk를 선택한다. Beanstalk는 EC2 서버 기반의 웹 애플리케이션 관리 서비스로, AWS의 여러 서비스들을 쉽게 연결할 수 있고 웹 콘솔에서 모니터링이 가능하다는 장점이 있다.

Beanstalk 페이지에 들어가면 환영 페이지가 나온다. 우측의 환경 만들기 버튼을 클릭한다.

- Select Environment tier

Web server environment 선택

 

- Create Envrionment

어플리케이션, 환경 이름은 마음대로 정할 수 있다.

여기서 중요한 단계는 Platform을 정하는 부분이다. 지금 사용하는 예제는 Tomcat 서버를 사용하기 때문에 Managed Platform을 클릭하고 적정한 버전의 Tomcat을 선택한다.

플랫폼 선택 후 Application code의 Upload your code 옵션을 선택해 war 파일을 올릴 수 있다.

다 마치고 폼을 제출하면 콘솔창이 나타나면서 자동으로 EC2, S3, Beanstalk 환경이 만들어진다.

환경 생성 종료 후 콘솔 페이지에 있는 링크로 이동하면 어디서나 예시 페이지를 볼 수 있다.

 

5. 자주 발생하는 이슈

- 404 에러

response를 JSON으로 줄 때, 해당 응답 메소드에 @ResponseBody 어노테이션을 붙이지 않으면 return 값의 View를 찾아서 보여준다. 이때 return 값에 해당하는 View가 없으므로 404 에러가 난다.

 

- Timeout 에러

Elastic Beanstalk는 기본적으로 5000 포트에서 서버를 돌리고, Spring은 8080 포트에서 돌린다. 이 차이 때문에 에러가 생길 수 있으니 Beanstalk 환경 콘솔 좌측 메뉴의 Configuration 페이지에서 변수를 추가해야 한다. Configuration 페이지에 들어가면 Software 박스 안의 편집 버튼을 클릭한다. 맨 밑으로 스크롤하면 환경 변수를 추가하는 페이지가 나온다. 여기에 SERVER_PORT에 5000인 property를 추가한다.

'Web > Spring' 카테고리의 다른 글

[Spring] 메시지 정리  (0) 2020.08.28
[Spring] MVC 기본 정리  (0) 2020.08.19
[Spring] AOP 정리  (0) 2020.08.10
[Spring] 자동 의존 주입을 위한 어노테이션들  (0) 2020.08.07
[Spring] Dependency Injection (DI)  (0) 2020.08.05
Comments