본문 바로가기
Cloud

[Oracle Cloud] 리눅스 서버에 배포하기 - Java 8, Tomcat 8.5 설치

by Amy IT 2022. 10. 29.

 

목차

     

    오라클 클라우드를 이용해 리눅스 서버에 프로젝트를 배포하는 방법에 대해 알아보겠습니다.

    로컬에서 개발할 때 JDK와 Tomcat을 설치했듯이 서버 컴퓨터에도 JDK와 Tomcat을 설치해야 합니다.

    이 글은 다음 사항이 완료된 후의 과정입니다.

     

    1. 오라클 클라우드에서 VM 인스턴스를 생성하며 SSH키를 발급받고 고정 IP를 할당받음
    2. 오라클 클라우드에서 데이터베이스를 생성하고 프로젝트와 연동
    3. 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을 설치하는 과정을 알아봤습니다.

    이어서 실제 프로젝트를 배포하는 방법은 다음 글에서 살펴보실 수 있습니다!

     

     

    참고

     

    댓글