gradle > tasks에 빌드에 빌드 더블 클릭 후 터미널 열기.
빌드가 끝나면 좌측 빌드에 libs 폴더가 생긴다.
하단 터미널에 명령어 입력
cd .\build\libs
pwd
jar 파일 생성
java -jar .\DemoProject-0.0.1-SNAPSHOT.jar
도구 > 배포> 원격호스트
... 버튼 누르고 서버이름작성하기. (타입은 SFTP)
SSH 구성에 ... 클릭
+ 클릭 후 호스트에 외부 IP, 사용자 이름, 인증타입 선택 후 연결 테스트 후 확인.
(오라클 클라우드 > 컴퓨트 > 인스턴스 > IP 가져와서 입력)
libs에 있는 SNAPSHOT 파일을 드래그하여 home에 있는 ubuntu에 올리면 된다. (빌드한 파일을 원격 클라우드 서버에 보내는 것이다.)
터미널 열고 + 버튼 옆 클릭 > 생성했던 ubuntu 클릭
sudo apt update && sudo apt upgrade -y 명령어 입력 후 엔터
jre 파일 설치
sudo apt-get install openjdk-17-jre 입력 후 Y 치고 엔터.
sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT 입력 후 엔터 (우분투 내에서 포트를 설정해준 것으로 방화벽 규칙을 만드는 명령어이다. 도착 포트가 8080로 설정하기)
sudo iptables --list 명령어 (포트가 잘 열렸나 확인하는 명령어이다.)
클라우드에서 포트 설정해주기 (공유기 설정) / 인스턴스 > 서브넷 클릭
아까 만들었던 방화벽 규칙 클릭하기.
수신 규칙 추가 클릭하기.
소스 CIDR에 0.0.0.0/0 입력, 대상 포트 범위에 8080 입력하기.
vm 인스턴스 클릭
이름 클릭
쭉 내리면 네트워크 인터페이스에서 네트워크 세부정보 보기 클릭
이름 클릭
방화벽 규칙 만들기 클릭
이름 작성 후 로그는 사용안함 선택, (우선순위는 숫자가 낮을 수록 먼저 처리한다.) 대상은 네트워크의 모든 인스턴스 선택 후 IP4에 0.0.0.0/0을 입력 후 TCP에 8080을 입력한다.
터미널 접속
명령어 입력
pwd (: 현재 폴더위치를 알려준다.)
cd Cleancode/_deploy/(: 디렉토리 위치로 이동하는 명령어) 입력 후 ls(: 앞에서 이동한 디렉토리의 목록을 보여주는 명령어이다.)
ls-al 명령어 입력시 더 상세하게 나온다. (: drwxrwxr-x : 권한을 수정하는 명령어)
구글 접속 후 원격 호스트 IP주소:8080 입력 > 배포 성공.
수신 규칙 : 어떤 포트로 받을지 정하는 것으로 들어가려면 포트가 열려있어야하며, 특특정 포트만 지정해서 받을 수 있다. (0.0.0.0/0 : 어떠한 IP든 상관 없이 들어갈 수 있다.)
송신 규칙 : 수신규칙의 반대로 서버에서 인터넷에 보내는 것이다.
내장톰캣 :
우분투 방화벽 : 서버마다 있는 방화벽이다. (컴퓨터마다 있는 방화벽으로 여러개)
클라우드 방화벽 : 클라우드 자체에서 제공하는 방화벽이다. (1개)
클라이언트가 서버에게 정보를 보낼 때 > 수신규칙으로 클라이언트에 있는 정보가 8080 포트
IPTABLES: 우분투 터미널에 들어가서 IPTABLS 명령어를 사용함 : 방화벽을 관리해주는 도구
UFW : 설치를 해야 사용 가능함
iptables > 우분투방화벽을 연다
방화벽이 만들어지는 시점 : 인스턴스가 생성되는 순간 방화벽이 생성되어있지만 닫혀있다 (22번 포트만 열려있다.) > 우분투와 클라우드에 들어가서 포트를 열고 작업을 해주어서 8080포트만 열어줌
서버를 자유롭게 운영할 수 있는 네트워크 관리를 할 수 있다.