EC2 인스턴스 생성 ~ war 톰캣배포 (3)

tyang·2021년 7월 21일
0

ec2

목록 보기
3/5
post-thumbnail

개발환경 : ubuntu, mysql, mac os

⭐️비전공자가 작성한 글이므로 전문적이지 않을 수 있습니다.
⭐️구글에 검색하면 나오는 정보들을 입맛에 맞게 다시 정리한 글입니다. 부족한 부분이 있을 수 있습니다.
⭐️⭐️보안에 굉장히x100 취약하게 만들었습니다. 개인 공부겸 정리용으로 작성한 글입니다.⭐️⭐️

1.tomcat 설치

tomcat 버전은 가장 일반적인 8.5 버전으로 설치해주겠습니다. (다른 버전도 OK)

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


톰캣 사이트에 들어가서 tar 다운로드 링크를 복사 해줍니다.

# wget 복사한 주소

wget 명령어를 통해 다운로드 합니다.

# ls -al

ls -al 은 현재 디렉토리의 파일과 권한을 보여주는 명령어 입니다.
tomcat 파일이 무사히 다운로드 되었는지 확인합니다.

# tar xvfz apache-tomcat-8.5.69.tar.gz 

다운로드 된 파일을 압축해제 해줍니다.

# mv apache-tomcat-8.5.69 /usr/local/tomcat8.5

이후 mv 명령어를 통해 /usr/local 경로에 이름을 tomcat8.5로 변경 후 옮깁니다.

# cd /usr/local/
# ls -al

마찬가지로 해당 local 폴더까지 진입 후 옮겨 졌는지 확인합니다.

2.tomcat 환경변수 설정

# vi /etc/profile

를 통해 편집기를 엽니다.

export CATALINA_HOME=/usr/local/tomcat8.5
export CATALINA_BASE=/usr/local/tomcat8.5

i 를 눌러서 편집모드로 전환 후,
위와 같은 문구를 추가해줍니다.
esc 를 눌러 편집모드 종료 후 :wq 로 저장종료 해줍니다.
(폴더 이름을 다르게 했을땐 해당 폴더 이름으로 지정해줍니다.)

사진에서는 CATALINA_BASE 가 없지만 .. 추가해주세요....

# source /etc/profile
# echo $CATALINA_HOME

환경변수가 잘 적용 되었는지 확인해줍니다

톰캣 인코딩 설정을 해줍니다.

# vi /usr/local/tomcat8.5/conf/server.xml 
    <Connector port="8080" protocol="HTTP/1.1"
                URIEncoding="UTF-8"
               connectionTimeout="20000"
               redirectPort="8443" />


URIEncoding="UTF-8" 을 추가해줍니다.

톰캣이 구동 되는지 확인할때 netstat -tnlp 을 사용합니다.
해당 명령어를 실행했을때 포트 번호가 나온다면 아래의 과정은 생략해주세요.
하지만 만약

Command 'netstat' not found, but can be installed with:
apt insatall net-tools

가 뜬다면
apt install net-tools
를 입력해서 설치해주시면 됩니다.

환경변수까지 설정이 끝났다면 실행만 해주면 됩니다.

# cd /usr/local/tomcat8.5/bin
# ./startup.sh 

혹은

# /usr/local/tomcat8.5/startup.sh

로 실행해줍니다.

# netstat -tnlp

로 톰캣이 돌아가는지 확인해줍니다.

위와 같이 8080 포트가 떠 있다면 실행이 끝났습니다.

ec2 해당 인스턴스의 ip주소를 복사해주거나 개방 주소법을 클릭해 열어줍니다.

ip 주소 뒤에 :8080 을 붙여줍니다. 위와 같은 화면이 뜬다면 구동성공!
⭐️https:// 가 아닌 http:// 로 해줘야 합니다!

# ./shutdown.sh 

톰캣을 종료할때는 /usr/local/tomcat8.5/bin 경로에 있는 shutdown.sh를 실행해줍니다.

☠️톰캣을 실행하시고 무사히 구동까지 됐다면 ... 거진 끝나거나 마찬가지입니다.. 만 쉽게 안되시는 분들이 계실거라 생각합니다 ㄱ- (본인이 그랬음)
이렇게 했음에도 불구하고 톰캣이 안되시는 분들을 위해 ...
(aws tomcat 안될때)

  • aws 방화벽 설정
    저는 일단 삽질을 하다가 이걸로 됐습니다.
    https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-instance-hosting-unresponsive-website/
    아마존 가이드 입니다. 해당 사이트에 들어가서 본인 운영체제에 맞는 명령어를 실행후 다시 톰캣을 구동해주세요.

  • 존버
    ... 두번째로 막혔을때 였습니다.
    정확하게는 netstat -tnlp 를 실행했을때 8080 포트는 뜨는데 8005 포트가 안떠서 종료도 안되고 (물론 강제종료는 됨) 시작도 안되고 ...
    너무 억울해서 화장실 다녀왔더니 됐습니다 ... 5초만에 될때도 있고 3분걸려서 될때도 있어서 일단 로딩화면이 나온다면 마음을 비우고 존버.

# vi /usr/local/tomcat8.5/bin/catalina.sh

JAVA_OPS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
추가

  • 메모리가 없을 경우
    명령어를.. 적어뒀다고 생각했는데 없네요 .....
    사실 전 이 케이스는 아니었지만 .. 처음 ebs 볼륨 설정 크기를 적게 했을때 생기는 경우라고 들었습니다.
    ec2 왼쪽 메뉴 -> 볼륨 -> 해당 볼륨 크기 를 확인해보세요. 너무 작으면 서버 실행이 안될수도 있습니다.

  • 일단 포트를 죽이고 싶어요
    저는 맨날 죽였습니다. shutdown 이 안돼서 ...
    그럴 가능성은 적지만 8005 포트 혹은 8080 포트가 다른 곳에서 사용 됐을때는 해당 PID 를 찾아서 죽여주면 됩니다.

netstat -a -n -o -p tcp

혹은

ps aux | grep tomcat

명령어를 통해 8080, 8005 등의 포트의 PID 를 찾은 후

kill -9 해당PID번호

로 죽여주면 됩니다.


다음글🧩: https://velog.io/@readordie021/EC2-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4-%EC%83%9D%EC%84%B1-war-%ED%86%B0%EC%BA%A3%EB%B0%B0%ED%8F%AC-4

profile
크아악

0개의 댓글