BackEnd/Infra

[AWS] EC2 포트 포워딩

PgmJUN 2022. 4. 5. 23:57

 

포트 포워딩을 하는 이유


 

 

*전제조건

스프링 server.port: 8080 / ubuntu 1.8 환경

 

 

EC2 환경에 서버를 배포한 상황에서 서버에 요청을 보내야한다면

 

아래와 같이 기본 포트(:8080) 를 붙여 서버에 요청을 보내야한다.

 

8080포트로 요청

 

 

물론 좋은 방법이지만 포트번호를 입력하지 않았을 때 더 편하고 깔끔하게 서버에 요청을 보낼 수 있다.

 

포트번호를 입력하지 않으려면 HTTP 기본 포트인 80번 포트로 요청해야한다.

 

 

80번 포트 포워딩


 

 

 

HTTP 기본 포트 번호인 80번 포트로 서버에 요청을 보냈을 때

 

배포한 서버에서 설정된 기본포트(8080포트)로 포워딩 되도록 설정한다면 포트번호 입력 없이 요청을 보낼 수 있다.

 

위 설명처럼

 

"내 서버로 들어오는 요청에서 80 포트로 들어온 요청은 8080 으로 해석하라~" 라고 설정을 해주는 것을 포트 포워딩이라고 부른다.

 

 

방법은 아주 간단하다.

 

EC2

 

AWS 접속 후에 EC2 검색한다.

 

 

보안 그룹

 

EC2 좌측 리스트의 "네트워크 및 보안 - 보안 그룹" 을 선택한다.

 

 

보안그룹

 

현재 포트포워딩이 필요한 EC2 환경에 적용된 보안 그룹에 접속하여

 

인바운드 규칙을 편집해야한다.

 

우측 하단에 있는 "인바운드 규칙 편집" 을 선택하자.

 

 

인바운드 규칙

 

- 8080(IPv4 0.0.0.0/0) 사용자 지정 TCP

- 80(IPv4 0.0.0.0/0) HTTP

- 80(IPv6 ::/0) HTTP 

 

위의 포트를 인바운드 규칙에 추가한다.

 

이제 포트포워딩이 끝났으니 80을 입력하면 우리가 배포할 서버의 port인 

8080으로 리다이렉트 설정을 해주면 끝이다.

 

 

포트 리다이렉트 설정


 

 

이번엔 PuTTY를 통해 ubuntu서버에 접속하여 포트 리다이렉트 설정을 해줄 것이다.

 

일련의 과정을 순서대로 정리했으니 잘 따라해보자

 

 

1. 관리자 권한으로 접속

 

sudo su

입력

 

 

2. 포트 리다이렉트 설정

 

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

입력하여 80번 포트로 접속하면 8080으로 리다이렉트 되도록 포트 리다이렉트 설정

 

 

3. 관리자 권한 로그아웃

 

Ctrl + D 입력

 

 

4. 서버 실행

 

java -jar build파일이름.jar

입력하여 서버 가동

 

 

5. 백그라운드에서 서버 가동

 

PuTTY를 종료해도 백그라운드에서 가동시키려면 

nohup java -jar dnd-6th-7-worry-record-service-0.0.1-SNAPSHOT.jar &

입력하여 nohup으로 실행

 

 

포트번호 입력 없이 접속

해당 과정을 거치면 위 사진처럼 포트번호를 입력하지 않아도 요청이 가능하다!

 

 

아무런 포트없이 요청을 보냈을 때 주어지는 HTTP의 기본 포트는 80인데

 

80번 포트로 요청시 8080으로 포워딩 되도록 설정하였기에 가능한 것이다.