1. EC2 생성
먼저 EC2 인스턴스는 아래 설명한 방식으로 생성하자.
2. RDS 생성 및 spring 설정 방법
RDS 생성 및 spring 설정 방법은 아래 포스팅을 참고하자. 배포하려는 spring mvc 서버는 RDS를 사용하고 있기 때문에 EC2환경에서 따로 MySQL을 다운 받아 사용하지 않는다. 방법은 아래 포스팅을 참고하자.
RDS와 MySQL Workbench를 연동해보고 싶다면 아래 포스팅을 추가로 참고하면 된다.
3. EC2 탄력적 IP 설정
EC2 인스턴스는 매번 재실행할 때마다 새로운 IP를 부여한다. 이러한 점을 막기 위해서 탄력적 IP를 부여할 수 있다. 이를 부여하기 위해 좌측 툴바에서 "탄련적 IP"를 선택하자.
그러면 탄력적 IP 관련 화면이 발생할 텐데 우측 상단에 "탄력적 IP 주소 할당"을 클릭하자.
그러면 아래와 같이 설정화면이 뜨는데 내 경우 그냥 모두 default로 설정하고 넘어갔다. 모든 설정이 끝났다면 "할당"을 클릭한다.
탄력적 IP가 잘 만들어졌다면 해당 탄력적 IP를 선택하고 "작업"→"탄력적 IP주소 연결"을 클릭한다.
그러면 관련 화면이 뜨고 해당 IP를 적용하고 싶은 EC2 인스턴스를 선택한 후 "연결"을 클릭하면 된다.
4. EC2 환경 설정
Spring MVC를 활용해 작성된 서버 코드를 실행하기 위해서는 해당 코드를 해석하기 위한 JDK, WAS, nginx를 설치해야 한다. 먼저 원격 접속을 활용하기 위해 Window에서는 PuTTY를 활용하는데 원격 접속 방법은 아래 포스팅을 참고하자.
JDK, WAS, nginx를 설치하기 전에 apt를 업데이트한다.
sudo apt update
JDK, Tomcat, nginx는 아래와 같이 설치한다. 만약 본인이 원하는 JDK나 tomcat 버전이 있다면 해당 버전으로 설치하자.
sudo apt install nginx
sudo apt install tomcat9
sudo apt openjdk-11-jdk
tomcat의 경우 실행시 8080포트를 default로 사용한다. 이를 위해 다른 곳에서 해당 포트에 접속할 수 있게 인바운드 규칙을 설정해야 한다. EC2 인스턴스에 들어가서 "보안"→"보안그룹"→"인바운드 규칙 편집"을 클릭하고 아래와 같이 8080 포트에 대해 다른 컴퓨터가 접속할 수 있도록 아래와 같은 규칙을 추가한다.
그리고 파일 시스템에서 /etc/nginx/sites-available/default 파일의 server 중괄호 안에 location 부분을 아래와 같이 수정한다.
sudo vim /etc/nginx/sites-available/default
이제 tomcat과 nginx를 실행하기 위해서 아래 명령을 사용한다.
sudo service tomcat9 start
sudo service nginx start
제대로 실행이 되었다면 "http://[탄력적 IP]:8080/"으로 접속시 tomcat 기본 화면이 발생하게 된다.
5. FileZilla를 통한 war 파일 이동
FileZilla를 다운받았다는 가정하에 본 과정을 진행한다. FileZilla를 다운받고 실행하면 기본 화면이 발생하는데 이때 "사이트 관리자 열기"를 클릭한다.
이후 "새 사이트"를 클릭하고 사이트의 이름을 원하는 이름으로 바꾼다. 그리고 우측 설정 창에서 프로토콜은 SFTP로 설정하고 호스트는 탄련적 IP로 설정한다. 로그온 유형은 "키 파일", 사용자는 "ubuntu"(다른 사용자면 다른 사용자 입력), 키 파일에는 EC2 설정시 받았던 key를 넘겨준다. 모든 설정이 완료되었다면 "연결"을 누른다.
이제 /var/lib/tomcat9/webapps에 war파일을 추가할 것이다. 파일을 옮기기 위해서는 먼저 webapps 폴더의 권한을 풀어줘야 한다. 아래 명령어를 전달하자.
sudo chmod 777 /var/lib/tomcat9/webapps
이후 리모트 사이트 주소칸에 /var/lib/tomcat9/webapps를 입력하고 원하는 war 파일을 옮긴다. 내 경우 좌측의 war 파일을 옮겨서 Greenmate.war로 이름을 바꾸었다.
이 상태에서 tomcat을 재실행해도 기본 화면이 발생한다. tomcat은 ROOT 파일을 기준으로 작동하므로 war 파일이름이 ROOT.war이 아니라면 별도의 설정없이 위와 같은 war 파일을 실행하지 않는다. 즉, 별 다른 설정없이 war 파일을 배포하고 싶다면 위에 존재하는 ROOT 파일을 다른 곳으로 옮기고 Greenmate.war을 Root.war로 바꾸면 된다. 만약 Greenmate.war과 같이 원하는 이름의 war 파일을 사용하고 싶다면 /var/lib/tomcat9/conf/server.xml의 끝 부분에 다음 내용을 추가하자.
sudo vim /var/lib/tomcat9/conf/server.xml
이후 tomcat과 nginx를 재실행한다.
sudo service tomcat9 restart
sudo service nginx restart
6. 결과
이로써 배포가 완료되었다. "http://[탄력적 IP]:8080/"로 접속하면 아래와 같이 Spring MVC 프로젝트의 index.jsp 화면이 발생한다.
'BackEnd > AWS' 카테고리의 다른 글
[RDS] MySQL workbench 연결하기 (0) | 2023.05.15 |
---|---|
[RDS, JDBC] RDS(MySQL)와 JDBC 연결하기 (0) | 2023.05.15 |
[AWS] EBS란? (생성 방법 및 마운트) (0) | 2023.05.02 |
[AWS] Windows에서 EC2 인스턴스 접속하기 (0) | 2023.04.30 |
[AWS] EC2란? (인스턴스 유형, 구매 옵션, 생성 방법) (0) | 2023.04.30 |