일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 코딩테스트
- 프로젝트
- Project
- 포트포워딩
- Eclipse
- 네이버클라우드
- Java
- Linux
- peachcong
- Repositort복사
- github
- navercloud
- Maven
- sts
- Code Templates
- spring
- 깃허브프로필
- 웹배포
- EC2
- 자바
- AWS
- swap
- 주석
- ncloud
- 깃허브
- 자바의정석
- 공부
- 일상기록
- Git
- 프로그래머스
- Today
- Total
PEACHCONG
[프로젝트 배포 #5] AWS를 통해 서버 구축하기 (Java / Tomcat / 방화벽 / 포트포워딩) 본문
https://peachcong.tistory.com/43
⬆️ 위 내용 진행 후 아래 내용 실행하기!
1. 인스턴스에 필수 dependency program 다운로드
ssh명령어를 이용해서 인스턴스에 연결되어 있는 상태에서 시작!
cd C:\Users\Peach\Desktop\PEACH
ssh -i peachcong29.pem ec20user@{instance-public-dns-name}
인스턴스에 정상적으로 연결되면 나오는
귀여운 비둘기.. 독수리.. 🕊️
1) Java 1.8 설치하기
yum list java*
위 명령어를 입력하면 java로 시작하는 모든 rpm 파일을 찾아준다
> 내가 원하는 rpm명 확인하고 설치!
나는 이미 설치했기 때문에 yum명령어로 확인 시
Installed Packages에 Java-1.8 이 있는 것을 확인할 수 있다
설치는 아래 코드와 같이 입력하면 된다!
sudo yum install {file_name}
ex ) sudo yum install java-1.8.0-amazon-corretto
** yum -y로 입력시 설치 확인 여부를 물어보지 않고, 바로 설치가 진행된다
java -version
정상적으로 설치가 잘 되었는지 확인하기 위해
java -version 입력해서 확인!
이렇게 version 내용이 나오면 정상적으로 설치 완료!
2) 톰캣 다운로드하기
yum list Tomcat*
Java 설치와 동일하게 list를 검색해보면
터미널에서 기본적으로 Tomcat version9로 설치할 수 있다
그러나 혹시라도 원하는 버전이 따로 있는 경우!
Apache Tomcat 사이트에 들어가서 다운받고 수동 설치해주면 된다
나도 프로젝트 할 때 사용했던 톰캣 버전이 8.5 라서
최대한 맞춰서 진행하려고 수동 설치로 진행해주었당
⬇️ 아래는 수동 설치 방법!
수동 설치가 필요 없다면 바로 2-1번으로 넘어가세용
https://tomcat.apache.org/download-80.cgi
Tomcat 사이트에 들어가서 원하는 버전 확인 후
> 리눅스 압축파일 tar.gz 다운로드
> 파일질라(FileZila)를 사용해서 다운 받은 파일 이동
** 파일질라(FileZlia) 다운로드 및 사용방법은 아래 링크 참고!
https://peachcong.tistory.com/37
2-1) 터미널에서 `ll` 입력하여 파일 리스트 출력
파일질라로 이동시킨 Tomcat 압축 파일이 잘 보인다면 성공!
2-2) 아래 코드를 입력해서 압축 파일을 풀어줍니다
tar -zxvf apache-tomcat-8.5.98.tar.gz
** tar -zxvf : 압축 푸는 명령어
2-3) 압축 폴더명 변경 (생략 가능)
톰캣의 폴더명이 길다고 생각되어 편의상 폴더명 변경하기!
이 부분은 정말 단순히 '편의상'이므로 생략 가능하다
mv {folder_name} {new_folder_name}
ex ) mv apache-tomcat-8.5.98 tomcat
✨ mv 명령어 ?
mv 명령어는 {이동시킬 디렉토리/파일} {이동될 위치} 두 인자를 필수로 갖는다
경로를 지정하지 않는다면 현 위치를 디폴트로 설정!
이동시킬 때 새로운 이름을 지정할 수 있으며,
현재 위치에 이름만 바꿔서 이동시키는 식으로 파일의 이름을 바꿀 수 있다
2-4) port 번호 수정 (tomcat / conf)
cd tomcat
cd conf
ll
vi server.xml
i
> 압축 풀었던 tomcat 폴더의 conf 로 이동
> vi명령어로 server.xml을 열어주고, i (insert)를 입력해서 --INSERT-- 모드가 되었는지 확인
터미널 아래에 이렇게 뜬다면 편집이 가능하다!
기본으로 포트 번호가 8080으로 되어있는데
> 내가 원하는 포트 번호로 수정하고, esc + shift + :wq 입력
명령키 | 설명 |
:q | vi에서 작업한 것이 없을 때 vi 종료합니다. |
:q! | vi에서 작업한 내용을 저장하지 않고 종료합니다 |
:wq | vi에서 작업한 내용을 저장하고 종료합니다. |
2-5) startup 쉘 스크립트 실행 (tomcat / bin)
cd ..
cd bin
ll
sh startup.sh
** 종료하고 싶다면 sh shutdown.sh 입력
2-6) AWS 방화벽 설정
인스턴스 > 보안 > 보안그룹명 클릭 > 인바운드 규칙 - 인바운드 규칙 편집
> 유형 : 사용자 지정 TCP
> 포트 범위 : 내가 사용하려는 포트 번호 (server.xml에 작성한 포트번호와 동일하게)
> 소스 : 사용자 지정 0.0.0.0/0
나는 Tomcat의 포트번호를 추가하고, DB 서버로 사용하는 네이버클라우드의
Linux SSH 서비스 기본 포트 번호 22도 함께 추가해주었다!
2-7) 파일질라를 이용해서 war 파일 이동 (tomcat / webapps)
> 파일질라(FileZila)를 이용해서 빌드한 war파일을 이동
> war파일 저장 경로 : tomcat > webapps
⬇️ 프로젝트 war파일 빌드 방법
https://peachcong.tistory.com/42
2-8) 터미널에서 ContextPath명 변경해주기
mv {war_filename} {new_war_filename}
ex) mv porongport.war ROOT.war
ContextPath를 ROOT로 변경하지 않으면,
아래 표에 있는 예시 내용처럼 DNS 뒤에 기존 ContextPath가 계속 붙어서 출력된다
예시 | 설명 |
기존 ContextPath 사용시 | http://www.peachcong.store/porongport |
ROOT로 ContextPath 변경시 | http://www.peachcong.store |
2-9) 포트포워딩 설정 (80 포트 > 8080 포트)
💡 포트포워딩을 진행한 이유?
브라우저의 기본 포트는 80포트로 포트 번호를 입력하지 않으면 자동으로 80포트를 잡는다
ex) http://www.***co.kr = http://www.co.kr:80
Tomcat의 경우 기본 포트가 8080으로 잡혀있기 때문에
Tomcat 서버에 접근 시 항상 포트 번호를 입력해야 하는 번거로움이 생긴다
ex) http://www.***.co.kr:8080
이렇게 된다면 웹 사이트를 이용하는 사용자는 불편함이 있을 수밖에 없다😥
1) Tomcat 포트를 80 포트로 직접 변경해주는 방법
2) 80 포트를 8080 포트로 리다이렉트 시켜주는 방법
불편함을 해결하기 위해 위와 같은 방법을 사용할 수 있는데,
1번 방법의 경우 AWS에서 일반 유저의 80포 접근을 제한하기 때문에 권한 문제로 사용이 어렵다
따라서 2번의 리다이렉트 방법으로 포트포워딩을 진행한 것!
ifconfig
sudo iptables -A PREROUTING -t nat -i {인터페이스} -p tcp --dport 80 -j REDIRECT --to-port {포트번호}
ex) > sudo iptables -A PREROUTING -t nat -i enX0 -p tcp --dport 80 -j REDIRECT --to-port 8080
> 터미널에서 ifconfig로 이더넷 이름을 확인
> 포트 포워딩 명령어 입력
ifconfig를 입력했을 때 네모박스 부분에 출력되는 이름이
해당 네트워크의 인터페이스명이다!
sudo iptables-save
> iptables 저장하면 포트포워딩 설정 완료!
Ref.
'Project' 카테고리의 다른 글
[프로젝트 배포#7] NAVER CLOUD를 이용해서 DB서버 구축하기 (Oracle 설치) (9) | 2024.01.24 |
---|---|
[프로젝트 배포 #6] NAVER CLODE를 이용해서 DB서버 구축하기 (CentOS) (6) | 2024.01.24 |
[프로젝트 배포 #4] AWS를 통해 서버 구축하기 (EC2 / 인스턴스 연결) (10) | 2024.01.22 |
[프로젝트 배포 #3] Spring에서 war 파일 빌드하기 (11) | 2024.01.21 |
[프로젝트 배포 #2] 프로젝트 배포 기록 작성하기👻 (11) | 2024.01.21 |