반응형
이전 시리즈
[AWS] RDS EC2 사용하여 배포하기 (1) - RDS 및 IntelliJ 설정
https://deve1opment-story.tistory.com/115
[AWS] RDS EC2 사용하여 배포하기 (2) - EC2 서버 구매하기
https://deve1opment-story.tistory.com/116
지금까지는 8080 포트를 붙여야만 실행할 수 있었습니다.
하지만 보통의 도메인에는 8080이 없듯이 우리는 이 8080 포트를 지우고도 접속해보고자 합니다.
HTTP 요청에서는 80포트가 기본이기 때문에, 굳이 :80을 붙이지 않아도 자동으로 연결이 됩니다.
포트 번호를 입력하지 않아도 자동으로 접속되기 위해,
우리는 80 포트로 오는 요청을 8080 포트로 전달하게 하는 포트포워딩(port forwarding)을 해보겠습니다.
포트포워딩 진행하기
우선, 서비스를 먼저 종료합니다.
ctrl + c
그 다음 포트포워딩 룰을 입력합니다.
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
포트포워딩 명령어 설명
- sudo:
- 관리자 권한으로 명령어를 실행하기 위해 사용됩니다. iptables 명령어는 일반적으로 root 권한이 필요합니다.
- iptables:
- Linux에서 네트워크 패킷을 필터링하고 변환하는 도구입니다. 이 명령어는 패킷을 특정 방식으로 처리하도록 규칙을 설정하는 데 사용됩니다.
- -t nat:
- -t 옵션은 테이블을 지정합니다. nat 테이블은 네트워크 주소 변환(Network Address Translation)을 처리하는 테이블입니다. 이 테이블은 들어오고 나가는 트래픽의 주소를 변환하는 데 사용됩니다.
- -A PREROUTING:
- -A는 규칙을 추가하는 옵션입니다.
- PREROUTING 체인은 패킷이 라우팅 결정을 내리기 전에 처리되는 체인입니다. 즉, 패킷이 들어오면 라우팅 전에 이 체인에서 정의된 규칙을 적용받습니다.
- -i eth0:
- -i는 "input interface"를 지정하는 옵션입니다. eth0는 패킷이 들어오는 네트워크 인터페이스를 지정하는 부분으로, 이 경우 eth0 인터페이스로 들어오는 패킷에 대해 규칙이 적용됩니다.
- -p tcp:
- -p는 프로토콜을 지정하는 옵션입니다. 이 명령어는 TCP 프로토콜을 처리하는 규칙을 설정하는 것입니다. 즉, TCP 패킷만 해당 규칙을 따르게 됩니다.
- --dport 80:
- --dport는 목적지 포트를 지정하는 옵션입니다. 이 규칙은 목적지 포트가 80인 패킷, 즉 HTTP 트래픽을 처리하도록 설정되어 있습니다.
- -j REDIRECT:
- -j는 "jump"로, 해당 규칙이 만족되면 수행할 동작을 지정합니다.
- REDIRECT는 패킷을 로컬 시스템의 다른 포트로 리디렉션하는 동작을 의미합니다. 즉, 목적지 포트가 80인 패킷을 다른 포트(여기서는 8080)로 전달합니다.
- --to-port 8080:
- 리디렉션할 대상 포트를 지정합니다. 즉, --dport 80으로 들어오는 트래픽을 포트 8080으로 리디렉션하도록 설정합니다.
다시 서비스를 시작합니다.
java -jar JAR파일명.jar
이렇게 진행하고 난 뒤 포트 번호를 제거하고 접속해봅니다.
http://내AWS아이피/
nohup 적용하기
현재 git bash 또는 맥의 터미널을 종료하면, 즉 SSH 접속을 끊으면 프로세스가 종료되고 서버가 돌아가지 않습니다.
그러나 우리가 원하는 동작은 원격 접속을 끊어도 서버를 계속 동작하게 만들고자 하는 것입니다.
그 과정을 하기 위해서는 nohup 명령어를 적용해야 합니다.
nohup java -jar JAR파일명.jar &
이 명령어를 적용하면 원격 접속을 종료하더라도 서버가 계속 돌아갑니다.
이제 서버를 강제 종료하고자 합니다.
아래 명령어로 미리 PID(프로세스 번호) 값을 확인합니다.
ps -ef | grep java
다음 명령어로 jar 파일 프로세스를 죽입니다.
kill -9 [pid값]
다시 명령어를 입력합니다.
nohup java -jar JAR파일명.jar &
이제 SSH 접속을 종료하고 접속해봅시다.
http://내AWS아이피/
반응형
'Infra & DevOps > AWS' 카테고리의 다른 글
[AWS] RDS EC2 사용하여 배포하기 (2) - EC2 서버 구매하기 (0) | 2024.11.20 |
---|---|
[AWS] RDS EC2 사용하여 배포하기 (1) - RDS 및 IntelliJ 설정 (0) | 2024.11.19 |