목차
오라클 클라우드를 이용해 리눅스 서버에 프로젝트를 배포하는 방법에 대해 알아보겠습니다.
로컬에서 개발할 때 JDK와 Tomcat을 설치했듯이 서버 컴퓨터에도 JDK와 Tomcat을 설치해야 합니다.
이 글은 다음 사항이 완료된 후의 과정입니다.
- 오라클 클라우드에서 VM 인스턴스를 생성하며 SSH키를 발급받고 고정 IP를 할당받음
- 오라클 클라우드에서 데이터베이스를 생성하고 프로젝트와 연동
- PuTTY로 SSH 접속
개발 및 배포 환경은 다음과 같습니다.
- Oracle Linux 8.6
- Java 8
- Apache Tomcat 8.5
- Eclipse
- Maven
업데이트
sudo yum update
JDK 1.8 설치
sudo yum install -y java-1.8.0-openjdk-devel.x86_64
해당 버전의 자바가 잘 설치되었는지 확인합니다.
java -version
Tomcat 8.5 설치
Apache 공식 홈페이지(https://tomcat.apache.org/download-80.cgi)에서 8.5버전 tar.gz파일의 링크 주소를 복사합니다.
sudo yum install wget 명령어 다음에 복사한 링크 주소를 붙여넣은 후, 원하는 폴더를 지정합니다.
저는 /opt 폴더에 다운을 받도록 하겠습니다.
sudo yum install wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.82/bin/apache-tomcat-8.5.82.tar.gz -P /opt/
다운이 완료되면 압축 해제합니다.
sudo tar xf /opt/apache-tomcat-8.5.82.tar.gz -C /opt/
폴더를 이동한 후 파일을 확인합니다.
cd /opt
ls
Tomcat 심볼릭 링크 만들기
톰캣 디렉토리의 버전 정보를 제외하고 간략하게 tomcat으로 사용하기 위해 다음의 명령어를 실행합니다.
sudo ln -s apache-tomcat-8.5.82 tomcat
환경변수 설정
(톰캣 9를 설치하면 자동으로 JDK 11을 설치하고 환경변수 설정까지 자동으로 해준다고 하는데, 저는 기존 프로젝트에서 특정 버전의 자바와 톰캣을 사용 중이어서 따로 설치한 후 환경변수 설정을 해야 했습니다.)
javac의 위치를 확인합니다.
which javac
위의 위치를 이용해 실제 위치를 확인합니다.
readlink -f /usr/bin/javac
/usr/lib/lvm/자바파일/bin/javac 로 되어 있다면, 지정할 경로는
/usr/lib/lvm/자바파일 이 됩니다.
vi 편집기로 파일을 수정합니다. (편집 시작 i)
sudo vi /etc/profile
맨 아래 다음의 내용을 추가합니다. (편집 종료 esc, 변경 저장 및 종료 :wq!)
export JAVA_HOME=위의경로
PATH=$PATH:$JAVA_HOME/bin
export PATH
수정한 설정을 적용합니다.
source /etc/profile
SSH 재접속 후 환경변수 설정이 잘 되었는지 확인합니다.
echo $JAVA_HOME
Tomcat Service 등록
서버를 실행했을 때 자동으로 톰캣이 실행되도록 하기 위해 톰캣 서비스를 등록합니다.
/etc/systemd/system/ 디렉토리에 tomcat.service 파일을 생성합니다.
sudo vi /etc/systemd/system/tomcat.service
아래 내용을 추가한 후 저장합니다.
[Unit]
Description=Tomcat8.5
After=network.target syslog.target
[Service]
Type=forking
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
User=root
Group=root
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
----------
톰캣에 자바 설정이 되어 있지 않은 경우는 [Service] 아래 Environment 설정을 추가합니다.
아래는 톰캣 자바 설정을 확인하는 방법입니다.
cd /opt/tomcat/bin
sudo cat setclasspath.sh
setclasspath.sh 파일에 JAVA_HOME 설정이 되어 있지 않으면 tomcat.service 파일에 아래 설정을 추가합니다.
Environment="JAVA_HOME=경로"
(저는 이걸 모르고... JAVA_HOME 설정이 이미 되어있는데 tomcat.service 파일에도 JAVA_HOME 설정을 중복으로 추가해서 톰캣 실행이 안됐습니다. 해결하느라 고생했던 기억이 ㅠㅠ)
----------
systemd에 톰캣 서비스를 활성화하여 서버 시작 시 자동으로 톰캣 서비스를 시작하게 합니다.
sudo systemctl enable tomcat
서비스 매니저를 재시작합니다.
sudo systemctl daemon-reload
포트 개방
Firewall 구동 상태를 확인합니다. 실행 중이면 running이라고 표시됩니다.
sudo firewall-cmd --state
포트 80, 8080을 tcp로 추가합니다.
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=8080/tcp
방화벽 설정을 적용합니다.
firewall-cmd --reload
오라클 클라우드에서도 포트를 개방해 줍니다.
VM 인스턴스 - 리소스 - 연결된 VNIC - 서브넷 또는 VLAN 클릭 - 보안 목록 클릭 - 수신 규칙 추가
0.0.0.0/0 으로 모든 프로토콜에 대해 추가합니다. 모든 규칙에 대해 오픈하는 것입니다.
Tomcat 실행 및 확인
톰캣 서비스를 시작합니다.
sudo service tomcat start
톰캣 서비스의 상태를 확인합니다.
sudo service tomcat status
아래와 같이 초록불이 뜨면 됩니다.
8080 포트를 잘 listen하고 있는지 확인합니다.
netstat -atn
iptables 규칙을 초기화합니다.
sudo iptables -F
주소에 검색합니다.
[공용IP]:8080
고양이가 뜨면 성공입니다!
리눅스 서버에 프로젝트를 배포하기 위해 서버 컴퓨터에 JDK와 Tomcat을 설치하는 과정을 알아봤습니다.
이어서 실제 프로젝트를 배포하는 방법은 다음 글에서 살펴보실 수 있습니다!
참고
- https://shanepark.tistory.com/171
- https://www.infracody.com/2022/05/install-apache-tomcat-8-on-centos-7.html
- https://haenny.tistory.com/141
- https://ux.stories.pe.kr/162
- https://velog.io/@away0419/spring-boot%EC%98%A4%EB%9D%BC%ED%81%B4-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-war-%EB%B0%B0%ED%8F%AC-2.JDK-%EB%B0%8F-Tomcat9-%EC%84%A4%EC%B9%98
'Cloud' 카테고리의 다른 글
[Oracle Cloud] 리눅스 서버에 배포하기 - FileZilla로 war 배포 (0) | 2022.10.30 |
---|
댓글