너굴 개발 일지

[AWS] EC2(AWS) Amazon Linux2에 Java, Tomcat 설치해보기 본문

AWS

[AWS] EC2(AWS) Amazon Linux2에 Java, Tomcat 설치해보기

너굴냥 2021. 9. 19. 20:52

이번 포스팅은 생성한 EC2 인스턴스(Amazon Linux2)에 JDK 1.8, Tomcat 8을 설치하는 방법을 공유하려 합니다.

해당 포스팅은 맥OS에서 진행하였습니다.

먼저 터미널에서 해당 인스턴스에 접속을 합니다.

 

 

[JDK 1.8 버전설치]

터미널에서 아래와 같이 명령어를 입력하면 JDK 1.8 버전이 설치됩니다.

sudo yum install -y java-1.8.0-openjdk-devel.x86_64

설치가 되었으면 Java version을 확인해봅니다.

java -version

아래와 같이 출력된다면 java는 잘 설치된 것입니다.

$ java -version
openjdk version "1.8.0_302"
OpenJDK Runtime Environment (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)

다음은 자바 환경변수 설정입니다.

환경변수 설정을 위해 자바가 설치된 위치를 확인합니다.

(1번째 명령어 결과로 나온 경로를 readlink -f 뒤에 붙여줍니다.)

which javac
readlink -f /usr/bin/javac

참고로 javac는 자바 컴파일러로 자바 언어 사양을 충족하는 소스 코드를 받아들인 다음 자바 가상 머신 사양을 충족하는 바이트 코드를 생성합니다. 

readlink( get absolute path)는 일반 파일, 디렉토리에 대해서는 실제 절대 경로를 알려주는 명령어 입니다.

위와 같이 자바의 위치를 알아냈으니 환경변수 설정을 합니다.

 

# profile을 열기 위한 명령어
nano /etc/profile

# profile에 입력해야 하는 환경변수
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.amzn2.0.1.x86_64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar

맨 아래 부분에 환경변수를 입력합니다. 다 입력한 후에는 control + X => Y => 엔터를 눌러 저장합니다.

저장한 후에는 profile을 reload 시킵니다.

# profile을 reload하기 위한 명령어
source /etc/profile

환경변수가 잘 설정되었는지 echo 명령어로 확인합니다.

# 환경변수 확인하는 명령어
echo $JAVA_HOME
$JAVA_HOME/bin/javac -version

 

[Tomcat 8 설치]

[1. Wget 명령어를 사용하여 톰캣 파일 다운로드하기]

Wget란 비 상호작용형 네트워크 다운로더로 로그인 없이 웹상에 있는 파일을 다운로드할 수 있습니다.

아래의 링크로 들어가 tar.gz 파일의 링크 주소를 복사합니다.

 

https://tomcat.apache.org/download-80.cgi

 

Apache Tomcat® - Apache Tomcat 8 Software Downloads

Welcome to the Apache Tomcat® 8.x software download page. This page provides download links for obtaining the latest versions of Tomcat 8.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versions

tomcat.apache.org

 그 후 터미널에서 아래와 같이 복사한 주소를 붙여넣어 명령어를 입력합니다.

(버전이 업데이트 될 수도 있기에 아래의 주소와 다를 수도 있습니다.)

wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.71/bin/apache-tomcat-8.5.71.tar.gz

다음으로 다운로드한 파일의 압축을 풀어줍니다.

tar xvfz apache-tomcat-8.5.71.tar.gz

압축 해제 후 저는 새로운 폴더를 만들어 압축 해제한 톰캣을 이동시키겠습니다.

mv apache-tomcat-8.5.71 /usr/local/tomcat8.5

자바 환경변수 설정과 마찬가지로 vi 편집기로 이동하여 톰캣 환경설정을 하겠습니다.

vi /etc/profile

# 최하단에 다음과 같이 입력
export CATALINA_HOME=/usr/local/tomcat8.5

아까 압축해제한 파일의 위치를 이동하여 위와 같이 입력하였습니다.

다른 경로에 이동시켰다면 해당 경로를 입력하면 됩니다.

 

ls 명령어를 사용하여 폴더를 우선 확인 후 아래의 경로를 찾아서 server.xml 파일을 수정합니다.

(apache-tomcat-8.5.71 > conf > server.xml)

$ ls
BUILDING.txt     LICENSE  README.md      RUNNING.txt  conf  logs  webapps
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          lib   temp  work

$ cd conf
$ ls
catalina.policy      jaspic-providers.xml  server.xml        web.xml
catalina.properties  jaspic-providers.xsd  tomcat-users.xml
context.xml          logging.properties    tomcat-users.xsd

$ vi server.xml

* 수정 방법

i 입력 후 아래와 같이 표시한 부분 추가

<Connector port="8080" protocol="HTTP/1.1"

URIEncoding="UTF-8" <= 추가하기

connectionTimeout="20000"
redirectPort="8443" />

 

:wq 를 입력하여 저장하고 나가기 

 

[2. 톰캣 실행하기]

설치가 되었다면 root  계정으로 들어갑니다.

sudo su

다음으로 아래의 경로로 들어가 톰캣을 실행합니다.

(apache-tomcat-8.5.71 > bin > startup.sh)

./startup.sh		
// 톰캣 실행

./shutdown.sh
// 톰캣 강제종료

 

 

 

port 연결이 잘 되었는지 확인해봅니다.

netstat -anp | grep 8080
[ec2-user@XXX bin]$ sudo su

[root@XXX bin]# ls

bootstrap.jar                 configtest.sh     startup.sh
catalina-tasks.xml            daemon.sh         tomcat-juli.jar
catalina.bat                  digest.bat        tomcat-native.tar.gz
catalina.sh                   digest.sh         tool-wrapper.bat
ciphers.bat                   setclasspath.bat  tool-wrapper.sh
ciphers.sh                    setclasspath.sh   version.bat
commons-daemon-native.tar.gz  shutdown.bat      version.sh
commons-daemon.jar            shutdown.sh
configtest.bat                startup.bat

[root@ip-172-31-13-223 bin]# ./startup.sh

Using CATALINA_BASE:   /usr/local/tomcat8.5
Using CATALINA_HOME:   /usr/local/tomcat8.5
Using CATALINA_TMPDIR: /usr/local/tomcat8.5/temp
Using JRE_HOME:        /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.amzn2.0.1.x86_64
Using CLASSPATH:       /usr/local/tomcat8.5/bin/bootstrap.jar:/usr/local/tomcat8.5/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

[root@XXX bin]# netstat -anp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      29737/java

다음으로 퍼블릭 ip로 접속을 해보도록 하겠습니다.

보안그룹 규칙을 먼저 추가합니다. 외부접속을 위해 8080 포트를 열어줍니다.

AWS에 접속하여 해당 인스턴스를 선택한 후 좌측 하단 '네트워크 및 보안' > '보안그룹' 에서 아래와 같이 인바운드 규칙을 추가합니다.

그러면 마지막으로 퍼블릭 ip를 통해 접속을 해보겠습니다.

브라우저에서 아래와 같이 입력하여 톰캣 화면이 뜬다면 완료된 것입니다.

http://[IPv4 퍼블릭 IP주소]:8080/