신규 인스턴스는 생성했으니, 지금 개발중인 크롤링 서버를 띄우기 위해 Tomcat 설치 및 관련 셋팅을 진행한다.
EC2 생성 및 SSH를 통한 접속 방법은 아래에 있는 이전 포스팅을 참고하면 된다.
[혼자 다 해볼거야/Cloud & Architecture] - [AWS] Free Tier EC2 생성 [혼자 다 해볼거야/Cloud & Architecture] - [AWS] SSH로 EC2 접속하기 (w/PuTTY) |
JDK 설치
Tomcat은 Java EE 플랫폼을 기반으로 만들어져 Java를 필수적으로 요구한다.
JDK 또는 JRE를 설치하면 정상적으로 Tomcat 구동이 가능하며, Java 관련 개발을 할 진 모르겠으나 확장성을 위해 JDK를 설치하였다.
JDK를 설치하기 전, 필요한 버전부터 우선 확인한다.
아래 표를 보면 Apache Tomcat Version별 Supported Java Versions가 표시되어 있으니 본인에게 필요한 Tomcat 버전과 Java 버전을 확인하고 설치를 진행하면 된다.
현재 공식 홈페이지를 보면 Tomcat 11 버전까지 출시가 되었으나 Alpha 버전이므로, 정식 출시 버전 중 가장 최신인 10 버전으로 설치하기로 한다. JDK는 11 이상 버전을 선택하여 설치하면 되겠다.

내가 생성한 인스턴스의 OS는 Ubuntu이므로, apt를 이용해 설치를 진행한다.
레드햇 계열의 OS(CentOS 등)는 yum을 사용해 설치를 진행하면 되고, 일부 명령어 차이는 있으나 진행 방식은 거의 유사하므로 CentOS 등을 사용하시는 분은 아래 명령어 비교표를 참고하며 진행하면 되겠다.
Ubuntu apt(apt-get) 와 Redhat/CentOS yum 명령어 비교표 |
sudo apt update # apt로 설치 가능한 패키지 리스트를 업데이트
sudo apt upgrade # apt로 설치한 패키지들을 업그레이드
설치한 적 없으나 혹시 몰라 Java 버전을 확인해 보니, 당연히 설치된 버전이 없다고 표시가 되지만 거기에 그치지 않고 자동으로 설치 가능한 버전과 설치 명령어를 제시해 준다. 아주 똑똑하다.

나는 Tomcat 10 버전을 사용하기로 했으므로, 11 버전의 jdk를 설치하였다.
sudo apt install openjdk-11-jre-headless
설치 후 버전 확인을 다시 한번 진행하면, 아래와 같이 openjdk 버전이 정상 표시되는 것을 볼 수 있다.
ubuntu@ip-(my-ip):~$ java --version
openjdk 11.0.17 2022-10-18 # 정상 설치된 jdk 버전
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu222.04)
OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu222.04, mixed mode, sharing)
Tomcat 설치
다음으로는 Tomcat 설치를 진행한다.
우선 home 디렉토리 아래에 tomcat 폴더를 생성한다.
sudo mkdir /home/tomcat
다음으로는 tomcat 폴더 안에 tomcat 설치 파일을 다운받는다.
다운로드를 위해서는 설치 경로를 알아야 하는데, 설치 경로는 공식 다운로드 페이지 내에서 Download > Tomcat XX(다운받을 버전) 메뉴로 진입한 뒤 아래와 같이 tar.gz 파일의 URL을 복사하여 사용한다.

cd /home/tomcat # 디렉토리 이동
sudo wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz(복사한 URL) # tomcat 10버전 다운로드
이후 다운받은 파일을 tar 명령어를 이용하여 압축 해제한다.
사용되는 옵션의 상세 내용은 아래를 참고한다.
-v : 묶거나 파일을 풀 때 과정을 출력
-f : 파일 이름을 지정
-x : tar 압축 풀기
-z : gzip으로 압축하거나 해제
sudo tar xvfx apache-tomcat-10.0.27.tar.gz # 다운받은 파일 압축 해제
# 압축 해제된 이후 폴더 정상 생성 확인
sudo rm apache-tomcat-10.0.27.tar.gz # 원본 압축파일 삭제
압축을 해제하는 것만으로 Tomcat 설치는 완료된다.
이후 tomcat 정상 구동을 확인하기 위해 bin 폴더에 있는 startup.sh을 실행하였다.
sudo chmod -R 777 /home/tomcat/apache-tomcat-10.0.27/bin #tomcat bin 폴더의 권한을 전체 권한으로 변경
cd bin # /home/tomcat/apache-tomcat-10.0.27 폴더 내에서 bin 폴더로 한 단계 더 진입
./startup.sh # startup.sh 실행
그랬더니 아래와 같이 catalina.out 파일에 권한이 없어 로깅을 못 한다는 오류가 표시되며 구동이 되지 않는다.

나는 정상 설치가 되었는지, 현재 별다른 환경 변수 설정 없이 tomcat이 구동 가능한 상태인지를 확인하고자 하는 것이기 때문에, sudo로 계정을 변경하여 진행하기로 했다.
[혼자 다 해볼거야/Cloud & Architecture] - [Ubuntu] sudo 계정 패스워드 초기화 및 sudo 계정으로 전환 |
무적의 sudo 계정을 가지고 다시 돌아왔다. 명령어를 재 실행해 보면...
Tomcat started.

Security Group - Port 설정
정상적으로 기동된 tomcat의 웰컴 페이지를 보기 위해, 기본 포트를 확인한다.
Tomcat 설치 경로 아래 conf\server.xml 파일을 확인해 보면, 아래와 같이 Connector port의 설정값이 8080임을 볼 수 있다.

그러면 내 인스턴스의 Public IP를 넣고, 포트를 8080으로 붙여서 접속해 보면...
아래와 같이 접속 불가 페이지를 볼 수 있다.

이유는 현재 내 인스턴스는 SSH로 접속하기 위한 SSH 기본 포트인 22 포트만 오픈되어 있기 때문이다.
AWS 콘솔에서 'EC2 > 인스턴스 > 인스턴스' 메뉴로 들어가서 내 인스턴스를 클릭한 뒤 아래 뜨는 창에서 '보안' 탭으로 들어가 보면, 아래와 같이 인바운드에 22번 Port만 오픈되어 있는 것을 볼 수 있다.

위 화면에서 '보안 그룹' 부분의 파란색 보안 그룹 ID를 클릭하면 해당 보안 그룹을 편집할 수 있는 새 창이 표시된다.
해당 화면에서 하단의 '인바운드 규칙' 탭으로 진입한 뒤 '인바운드 규칙 편집' 버튼을 클릭한다.

표시되는 페이지에서 '규칙 추가' 버튼을 클릭한다.
유형은 '사용자 지정 TCP' 유형으로, 포트 범위는 Tomcat의 기본 커넥터 포트였던 8080으로, 소스는 우선은 전체 접속이 가능하도록 '0.0.0.0/0' 으로 입력한다.
이러한 인바운드 규칙을 추가하면 해당 인스턴스는 어떤 IP에서 접속하더라도 22번 포트로의 진입 뿐 아니라 8080 포트로의 진입도 허용하게 된다.

이후 다시 Public IP:8080 형태로 진입을 시도하면 아래와 같이 Tomcat 기본 페이지를 정상적으로 확인할 수 있다.

환경변수 설정 등 기본적으로 확인해야 할 내용들이 더 있으나, 해당 글에서는 전반적인 설치 후 정상적인 기동 확인까지만 진행한 후 다른 포스팅에서 이어 진행해보려고 한다.
끝.
'혼자 다 해볼거야 > Cloud & Architecture' 카테고리의 다른 글
[Ubuntu] sudo 계정 패스워드 초기화 및 sudo 계정으로 전환 (0) | 2023.01.24 |
---|---|
[AWS] SSH로 EC2 접속하기 (w/PuTTY) (0) | 2023.01.20 |
[AWS] Free Tier EC2 생성 (0) | 2023.01.20 |
[AWS] Free Tier 계정 생성 (0) | 2023.01.15 |
기술 스택 선정 (0) | 2023.01.14 |