YONG-MIN

Amazon EC2에 Java, Tomcat 설치하기

클라우드/AWS 2018. 2. 28. 23:12

EC2 자체로는 단순히 조정이 가능한 컴퓨팅 파워를 클라우드 서비스로 제공하는 것뿐입니다.


이것으로 무엇을 할지는 오직 사용자에게 달려있습니다.


하지만, 아마 많은 분들이 Tomcat을 이용해 웹서버로 활용하기 위해 사용하리라 생각합니다.


이번 포스팅에서는 WAS로 활용하기 위해 EC2 Instance에 Java와 Tomcat을 설치할 것입니다.


1. EC2 Instance 접속하기 (PuTTY)

접속하는 방법은 "Amazon EC2 생성하기" 에서 다루었기 때문에 간단히 넘어가겠습니다.

PuTTY를 이용하여 EC2 인스턴스에 접속합니다.




2. JDK 다운로드 및 설치

EC2를 개인 개발환경용으로 구축하기 때문에 현재 기준 가장 최신 버전인 JDK-9.0.4를 다운로드 받겠습니다.

wget 명령어를 이용합니다.

#jdk 9.0.4 다운로드 (linux-x64)
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/9.0.4+11/c2514751926b4512b076cc82f959763f/jdk-9.0.4_linux-x64_bin.tar.gz"
#폴더내 파일 확인
ls 

다운로드 후 ls 명령어를 통해 잘 받아졌는지 확인합니다.



다운로드가 성공적으로 이루어졌음을 확인하고 tar 명령어를 통해 압축을 풀겠습니다.


# 압축해제 tar xzf jdk-9.0.4_linux-x64_bin.tar.gz # 압축해제 결과 확인 ls # 기존 압축파일 삭제 (sudo는 root 권한으로 실행함을 의미) sudo rm -f jdk-9.0.4_linux-x64_bin.tar.gz # 삭제 확인 ls # 압축해제한 폴더의 경로를 이동시킨다 sudo mv jdk-9.0.4/ /usr/local/jdk-9.0.4 # 경로를 이동시킨 폴더로 이동 cd /usr/local/jdk-9.0.4 # 결과 확인 ls



압축이 제대로 풀렸음을 확인 후 Tomcat 설치로 넘어가겠습니다.


환경변수의 설정은 Tomcat 설치가 완료된 후 진행합니다.


3. Tomcat 다운로드 및 설치

Tomcat 역시 현재의 최신버전(9.0.5)을 다운로드 받아 설치하겠습니다.

# 사용자 폴더로 이동
cd #
# Tomcat 다운로드
wget http://mirror.apache-kr.org/tomcat/tomcat-9/v9.0.5/bin/apache-tomcat-9.0.5.tar.gz
# 다운로드 결과 확인
ls
# 압축해제
tar xzf apach-tomcat-9.0.5.tar.gz
# 압축해제 결과 확인
ls
# 압축파일 삭제
sudo rm apach-tomcat-9.0.5.tar.gz
# 압축해제한 폴더의 경로를 이동시킨다. (이동시키며 폴더명 변경)
sudo mv apach-tomcat-9.0.5/ /usr/local/tomcat-9.0.5
# 경로로 이동한다.
cd /usr/local/tomcat-9.0.5
# 경로 이동이 잘이루어졌는지 확인
ls



Tomcat의 설치도 완료가 되었으니 Java와 Tomcat의 환경변수 설정을 시작합니다.

Java, Tomcat 환경변수 설정하기

#환경설정 파일을 편집기로 오픈. 반드시 sudo(관리자권한)으로 열어야함!!
sudo vi /etc/profile

#오픈된 환경설정(profile)의 맨 아랫부분에 입력 (i키로 편집모드 활성화)
export JAVA_HOME=/usr/local/jdk-9.0.4
export CATALINA_HOME=/usr/local/tomcat-9.0.5
export CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

#환경설정(profile)에 위 내용을 입력 후 ESC를 눌러 빠져나간 후 다음과 같이 저장
:wq!



source 명령어를 통해 환경변수를 적용하고 java -version을 통해 환경설정이 잘 적용되었는지 확인한다.

# 환경설정(profile) 적용
source /etc/profile
# 적용이 잘되었는지 확인
java -version
javac -version


Java 버전이 뜨면서 환경설정 적용이 되었다는 것을 알 수 있다.


Tomcat 가동과 접속 테스트

Tomcat/bin 폴더로 이동해서 Start 한다.

# Tomcat/bin 경로로 이동 
cd /usr/local/tomcat-9.0.5/bin
# Tomcat run
./startup.sh


Tomcat을 시작하고 접속 테스트를 합니다.


주소는 EC2 Instance의 "Public IP:8080" 로 접속하면 됩니다.


하지만, 아래와 같이 접속이 불가능한데 지극히 정상적인 결과입니다.


그 이유는 아무것도 임의로 건드리지 않았을때 AWS의 기본 보안정책은 인바운드는 모두 거부, 아웃바운드 모두 허용이기 때문입니다.


당연히 8080 포트로의 인바운드 접속은 거부될 수밖에 없습니다.



이 문제를 해결하기 위해서 AWS로 돌아가 Security Group을 설정해줘야 합니다.


AWS의 EC2 인스턴스 현황에서 적용되고 있는 Security Group을 확인합니다.


저 같은 경우는 launch-wizard-2 정책이 적용되고 있음을 확인하고 [Security Groups] 로 이동합니다.



[Security Groups]에서 적용되고 있는 보안 그룹을 선택 후 [Inbound] > [Edit] 를 실행합니다.


[Edit inbound rules] 창에서

  - Type: "Custom TCP Rule"로 변경

  - Port Range: "8080" 으로 변경

  - Source: "0.0.0.0/0" 으로 변경

그리고 [Save] 합니다.


보안그룹 설정이 완료된 후 다시 접속합니다.




정상적으로 Tomcat 화면으로 접속됨을 확인하며 이번 포스팅을 종료합니다.