본문 바로가기

웹 기술 쌈싸먹기/Spring

[AWS / Spring / MySql] EC2 구매, EC2 준비 및 배포, 포트포워딩 & nohup 적용

RDS 구매 후 MySQL세팅

 

참고 : https://jeon34986.tistory.com/121?category=1027794 

 

[AWS / MySQL] RDS 구매 후 MySQL세팅

RDS 구매 후 MySQL세팅 1) RDS 구매하기 AWS 대시보드 링크 https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2# RDS를 검색하고 결과를 클릭. "데이터베이스 생성" 클릭. "..

jeon34986.tistory.com

 

 

EC2 구매

 

1) EC2 서버 구매하기

  • EC2 구매 주소
https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2

 

2) 구매 화면들 따라하기

  • 인스턴스 시작클릭

 

  • Ubuntu Server 18.04 LTS 선택

 

  • 검토 및 시작 선택

 

  • 새 키페어 생성 선택 후 키페어 이름을 설정한다!!!
  • 키 페어 다운로드를 하고 잘 보관!!!

 

  • 입력한 정보를 바탕으로 인스턴스가 생성된 것을 확인 할 수 있다.

 

 

EC2 접속

 

1) AWS EC2에 접속하기

  • 다른 컴퓨터에 접속할 때 쓰는 프로그램입니다. 다른 것들 보다 보안이 상대적으로 뛰어난다!!!
  • 접속할 컴퓨터가 22번 포트가 열려있어야 접속 가능. AWS EC2의 경우, 이미 22번 포트가 열려있습니다.

 

2) Window: ssh가 없으므로, git bash라는 프로그램을 이용!

  • gitbash를 실행하고, 아래를 입력!예) 아래와 비슷한 생김새!
ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
  • 예)
ssh -i /path/my-key-pair.pem ubuntu@13.125.250.20
  • Key fingerprint 관련 메시지가 나올 경우 Yes를 입력해주세요!
  • git bash를 종료할 때는 exit 명령어를 입력하여 ssh 접속을 먼저 끊어주세요.

 

 

EC2 준비

 

1) 배포 파일 빌드.

  • 우측 탭 중에서 Gradle 을 선택.
  • Tasks > build > build 를 더블 클릭.
  • 좌측 build 폴더 > libs 아래에 .jar 확장자로 끝나는 파일이 생겼을 거에요! 빌드에 성공!!!

 

2) OpenJDK 설치하기.

sudo apt-get update
sudo apt-get install openjdk-8-jdk
java -version

 

3) Filezilla를 이용해서 배포 파일을 업로드하기.

  • 파일질라 실행, 다음과 같이 설정

 

  • 마우스로 드래그 해서 파일을 업로드/다운로드

 

  • 스프링 부트 작동시키기
java -jar JAR파일명.jar

 

 

4) AWS에서 80, 8080 포트를 열어주기

  • EC2 서버(=가상의 내 컴퓨터)에서 포트를 따로 설정하는 것 외에도, AWS EC2에서도 자체적으로 포트를 열고/닫을 수 있게 관리를 하고 있다!!!

→ 그래서 AWS EC2 Security Group에서 인바운드 요청 포트를 열어줘야 합니다.

  • 인스턴스 관리의 보안탭에 들어가서 보안그룹을 클릭합니다.

 

  • 인바운드 규칙 편집을 통해 추가.

→ 80포트: HTTP 접속을 위한 기본포트

→ 8080포트: 스프링 부트 기본포트

 

 

5) 접속해보기

http://내AWS아이피:8080

 

 

포트포워딩 & nohup 적용

 

1) 포트개념

  • 포트 번호 없애기 - 기본 개념
    • 지금은 8080 포트에서 웹 서비스가 실행되고 있다. 그래서 매번 :8080 이라고 뒤에 붙여주는 것! 뒤에 붙는 포트 번호를 없애려면 어떻게 해야할까?
    • http 요청에서는 80포트가 기본이기 때문에, 굳이 :80을 붙이지 않아도 자동으로 연결이 된다.
    • 포트 번호를 입력하지 않아도 자동으로 접속되기 위해, 우리는 80포트로 오는 요청을 8000 포트로 전달하게 하는 포트포워딩(port forwarding) 을 사용하겠습니다.

 

2) 포트 번호 없애기 - 리눅스 자체 포트포워딩을 작동시키기

  • 띄워둔 터미널에서 새롭게 설정을 적용하기 전에 돌아가고 있던 서비스는 일단 끄고! (터미널에서 ctrl + c)
  • 포트포워딩 룰을 입력합니다.
  • 포트포워딩 명령어 실행
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

 

  • 다시 서비스 시작
java -jar JAR파일명.jar

 

3) 포트 번호를 떼고 접속

  • 웹 브라우저에서 접속하기
http://내AWS아이피/

 

 

3) SSH 접속을 끊어도 서버가 계속 돌게 하기

  • 현재 상황
    • Git bash 또는 맥의 터미널을 종료하면 (=즉, SSH 접속을 끊으면) 프로세스가 종료되면서, 서버가 돌아가지 않고 있다. 그러나 우리가 원격접속을 끊어도, 서버는 계속 동작해야한다!!!

 

  • 원격 접속을 종료하더라도 서버가 계속 돌아가게 하기
# 아래의 명령어로 실행하면 된다
nohup java -jar JAR파일명.jar &

 

  • 서버 종료하기 - 강제종료하는 방법
# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep java

# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]

 

  • 다시 켜기
# 아래의 명령어로 실행하면 된다
nohup java -jar JAR파일명.jar &

 

  • SSH 접속을 종료한 뒤, 브라우저 접속
http://내AWS아이피/

 

 

MySQL work bench & AWS RDS 연결

 

참고 : https://jeon34986.tistory.com/124

 

[AWS RDS / MySQL] MySQL work bench & AWS RDS 연결

MySQL work bench & AWS RDS 연결 1) Amzon RDS 엔드포인트 복사 엔드포인트 확인 후 드래그하여 복사. Amzon RDS 접속 설정정보 기입 복사한 코드 Hostname에 입력 3) 추가 Reference 참조 : https://doc..

jeon34986.tistory.com