본문 바로가기

AWS

AWS 프로젝트 배포하기(프로젝트배포)

728x90

나는 AWS배포를 위해 수십여개의 블로그를 찾아보고 참조 하였으나 내 프로젝트 조건과 맞는 건은 하나도 없어서… 어렵게 배포에 성공한 사례로 이글을 읽기전에 본인의 상황과 맞는지 확인해보고 읽어주시길…

데스크탑 : 맥 에어 인텔코어

프로젝트 : Spring, Maven

JAVA버전 : 17버전

Tomcat : 9버전

DB : ORACLE


1. war 파일 준비

Spring에서 프로젝트를 export 하여 war파일을 생성합니다.

 

war file을 선택하고

 

파일을 저장할 위치를 고르고 finish 클릭

 

2.

filezilla에 ec2 인스턴스 연결

 

 

Download FileZilla Client for macOS

파일 > 사이트 관리 클릭

ec2의 퍼블릭 ip 주소 입력하고 키 파일 연결

이런 창이 뜨면 확인 클릭(나는 체크하고 클릭하니 되었다..)

 

2-1 /usr/local/tomcat89/webapps 폴더 밑으로 war 파일 전송(파일을 끌어다 놓으면 복사된다)

만일 폴더를 찾을 수 없다면 터미널에서 아래와 같이 권한 설정

sudo su : root 모드

chmod -R 777 /usr/local/tomcat9/webapps : 모든 잡업 가능

chown -R ubuntu /usr/local/tomcat9/webapp : ubuntu에게 소유자 권한 줌

/usr/local/tomcat9/bin/startup.sh : 다시 시작

3. 톰캣 xml 파일인 server.xml 수정

터미널에서 서버연결

맥은 putty가 안되고 사용이 어렵기때문에 인스턴스에서 바로 ssh경로를 복사해서 터미널에 입력하면 연결된다. 간단한방법!!

  • $ sudo su 로 root 계정 접속
  • $ cd /usr/local/tomcat9/conf 로 파일접속
  • $ vi server.xml

E를 눌러 edit 모드로 접속 (이건 모르겠던데;)

방향키로 제일 아래로 내려온 다음

i 를 눌러서 insert모드로 변경

<Host> 태그 안쪽에

<Context docBase="프로젝트명" path="/" reloadable="false" source="org.eclipse.jst.jee.server:[프로젝트명]" />

<Context docBase="yes24" path="/" reloadable="false" source="org.eclipse.jst.jee.server:[yes24]" />

추가해준다.

esc를 누르고 shift + :

wq 입력후 엔터를 눌러 나온다.

4. URL에서 확인

주소 : http://<퍼블릭 ip>:8080/<.war의 파일명>/ ex) http://43.202.107.21:8080/yes24/

프로젝트를 배포했는데 로컬에서 확인할 때와 다르게 회차 정보를 가지고 오지 못해서 예매가 안된다..

혹시 몰라 테스트로 이클립스에서 돌렸는데 여기서는 잘 되는데….

GET 메 서드를 찾을 수 없다는 오류가 나와서 매핑을 GET으로 바꿔봐도 ..;; 이건 리팩토링 때 수정해 봐야겠다..

근데.. 리팩토링을 하려는데.. 공연 API를 가져다 사용하려면.. 프로젝트를 다 뒤집어야 할 거 같은데…