본문 바로가기
Linux \ Ubuntu

[EC2] 우분투 20.04에 Tomcat 9 설치하기

by 서피 2021. 3. 21.

먼저 업데이트가 필요한 패키지가 있다면 업데이트를 해준다.

$ sudo apt update

jdk 11을 다운로드한다.

$ sudo apt install openjdk-11-jdk

아래와 같은 메세지가 나오면 Y를 입력한다. 2~3분 소요된다.

jdk11 다운로드


톰캣을 root계정에서 사용하는 것은 보안상 좋지 않기 때문에, 별도의 계정을 만들어 이용한다.

아래 명령어로 tomcat 이라는 계정 그룹을 생성한다.

$ sudo groupadd tomcat

 

 

아래 명령어를 입력하여 tomcat 이라는 계정을 생성하고, 그 계정을 tomcat 그룹에 포함시킨다.

$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

/opt/tomcat 이 톰캣의 홈 디렉토리가 될 것이다.


설치 파일을 다운로드하기 위해 tmp 디렉토리로 이동한다.

$ cd /tmp

글 작성일 기준 최신 버전인 9.0.44 버전을 다운로드 한다.

톰캣 홈페이지에서 최신 버전을 확인해서 숫자를 입력하면 된다.

tomcat.apache.org/download-90.cgi

$ VERSION=9.0.44
$ wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp

아래와 같이 입력. VERSION=부분에 원하는 버전 숫자를 입력한다.

Tomcat 9.0.44 버전 다운로드


톰캣을 설치할 디렉토리를 생성한다.

$ sudo mkdir /opt/tomcat

방금 받은 파일이 있는 tmp폴더로 이동한 후 다운로드한 톰캣 파일을 해당 디렉토리에 설치한다.

$ sudo tar xzvf apache-tomcat-*tar.gz -C /opt/tomcat --strip-components=1

톰캣을 설치한 디렉토리로 이동한다.

$ cd /opt/tomcat

tomcat 그룹에게 해당 디렉토리에 대한 소유권을 부여한다.

$ sudo chgrp -R tomcat /opt/tomcat

conf 디렉토리에 대한 읽기 권한 및 실행 권한을 부여한다.

$ sudo chmod -R g+r conf
$ sudo chmod g+x conf

tomcat 계정에게 webapps, work, temp, logs 디렉토리에 대한 권한도 부여한다.

$ sudo chown -R tomcat webapps/ work/ temp/ logs/

tomcat에게 자바가 어디에 설치되어 있는지를 알려주어야 한다.

아래 명령어로 자바가 설치된 디렉토리를 확인한다.

$ sudo update-java-alternatives -l

실행하면 아래와 같이 경로정보가 출력된다.

jdk 디렉토리


이 경로정보를 이용해 systemd 서비스 파일을 생성한다.

/etc/systemd/system 디렉토리에 tomcat.service 파일을 생성한다.

$ sudo nano /etc/systemd/system/tomcat.service

실행하면 아래와 같은 모습이 나타난다.

service 파일 생성

아래 내용을 입력해준다.

JAVA_HOME 값에는 앞서 확인했던 자바 경로를 입력한다. 

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64  <-- 이 부분에 경로입력
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

붙여넣기 하면 아래와 같이 줄바꿈 없이 입력되는데, 이렇게 저장해버리면 service 파일이 실행되지 않는다.

커서를 이동하여 Enter키로 줄을 맞추어 준다.

service 파일 열기

 

아래와 같이 정리해주어야 한다.

웹 콘솔을 이용하면 텍스트가 실제와 다르게 표시되는 오류가 종종 있다.

그럴 때는 커서를 해당 텍스트 위쪽으로 쭉 지나가면 정확히 표시된다. (마우스 커서가 아닌, 키 입력 커서이다)

아마 커서가 지나가면서 해당 부분의 텍스트를 아마존 서버에서 불러오는 듯 하다.

service 파일 정리

줄을 맞춘 후 Ctrl + O, Enter 로 저장하고, Ctrl + X 로 파일을 닫는다.


방금 만든 service 파일을 인식시키기 위해 데몬을 reload 한다.

$ sudo systemctl daemon-reload

드디어! 톰캣을 실행시킨다.

$ sudo systemctl start tomcat

아래 명령어로 톰캣이 제대로 실행되었는지 재확인할 수 있다.

$ sudo systemctl status tomcat

정상 실행중이면 아래와 같이 출력된다.

tomcat 실행확인

텍스트가 입력되지 않는다면 파일을 실행 중인 것이므로, Ctrl + C로 빠져나온다.


8080 포트를 열어준다.

$ sudo ufw allow 8080

이제 브라우저에 'http://EC2 아이피 주소:8080' 를 입력하면 Tomcat 9 기본 페이지에 접속된다.

만약 접속되지 않는다면, EC2 보안 그룹에서 8080 포트를 열었는지 확인해야 한다.

[EC2]보안 그룹에서 포트 열어주기

 

tomcat 9.0.44 기본화면

 

댓글