동-훈
도전하는 개발자
동-훈
전체 방문자
오늘
어제
  • 분류 전체보기 (10)
    • spring boot (0)
    • 언어 (0)
      • Java (0)
    • git (1)
    • DevOps (4)
      • aws (3)
      • 기타 (1)
    • 알고리즘 (0)
      • 백준 (0)
      • 프로그래머스 (0)
    • 후기 (4)
      • 프로젝트 (3)
      • 대회 (1)
    • 주절주절 (1)

블로그 메뉴

  • 🐰GITHUB
  • ☘️포트폴리오
  • 🌸홈

공지사항

인기 글

태그

  • 8080 포트 에러
  • S3
  • 해커톤
  • 프론트 백엔드 협업
  • 팀프로젝트
  • EC2
  • gitignore
  • taskkill
  • Spring Boot 배포
  • gitignore 에러
  • RDS
  • mysql
  • netstat

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
동-훈

도전하는 개발자

[Spring Boot] AWS에 프로젝트 배포하기(EC2, FileZilla)
DevOps/aws

[Spring Boot] AWS에 프로젝트 배포하기(EC2, FileZilla)

2022. 10. 10. 21:10

1. AWS EC2에 들어가서 인스턴스 시작 클릭

 

2. 인스턴스 이름 입력하고, OS는 Ubuntu 18.04 버전으로 선택

 

3. 인스턴스 유형은 t2.micro이고, 새 키 페어 생성 후 인스턴스 시작

 

4. 인스턴스 클릭해서 보안 그룹 클릭

(AWS EC2의 경우 이미 22번 포트가 열려있음)

 

5. 인바운드 규칙 편집 클릭

 

6. 8080 포트 열어주기

-> 이때 80 포트도 열어줘야됨

-> 기본 HTTP 연결은 80 포트로 들어가는데 그 요청을 8080 포트로 포트포워딩 해줄 예정

 

7. AWS EC2에 접속하기

Mac OS: Mac은 ssh가 있어서 명령어로 바로 접근이 가능

터미널 열어서

// 키페어의 접근 권한 바꿔주기
sudo chmod 400 받은키페어를끌어다놓기 

//SSH로 접속하기
ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피

Window: ssh가 없어서 git bash 이용

ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피

 

8. 그냥 yes라고 해주기

 

9. 이제 배포 파일 빌드하기

-> intellij 우측에서 Gradle 선택

-> Tasks > build > build를 더블 클릭

 

10. 좌측 build > libs 아래에 .jar 확장자로 끝나는 파일이 생기면 build 성공!

 

11. 다시 터미널 or git bash로 돌아가서 OpenJDK 설치하기

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

 

12. FileZilla를 사용해서 배포 파일 업로드하기

프로토콜 :  SFTP 

호스트 : 인스턴스 ip 붙여넣기

포트 : 22(기본값이 22라 딱히 아무것도 안 써도 되긴 함)

사용자 : ubuntu

키 파일 : 인스턴스 생성할 때 같이 생성한 키 파일

 

13. 확인 클릭

 

14. 왼쪽에 있는 .jar 파일을 오른쪽으로 드래그 해서 업로드 

 

15. 서비스 실행하기 전에 포트포워딩 적용하기

-> 현재 상태에서 서비스를 실행하면 8080 포트에서 실행될 것이므로 주소에 매번 :8080 이라고 뒤에 붙여줘야됨

-> 뒤에 붙는 포트 번호를 없애주고 싶음

-> 이때 80포트를 생각하면 http 요청에서는 80 포트가 기본이기 때문에, :80을 주소 뒤에 붙이지 않아도 자동으로 연결이 됨

-> 그러므로 80 포트로 오는 요청을 8080 포트로 전달하게 하는 포트포워딩을 사용

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

 

16. 서비스 시작

java -jar JAR파일명.jar

+) 이때 서비스를 끄는 방법은 그냥 터미널 or git bash에서 ctrl + c 를 해주면 됨

 

17. SSH 접속을 끊어도 서버가 계속 돌게 하기

-> 현재 상태에서는 터미널 or git bash를 종료하면(=SSH 접속을 끊으면) 프로세스가 종료되서 서버가 돌아가지 않음

-> 그러므로 원격접속이 끊어져도 서버가 계속 돌아가게 해야됨

nohup java -jar JAR파일명.jar &

 

18. 서버 강제종료하기 방법

# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep java

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

 

 

이제 local에서만 작동하던 서버가 어디서든 쓰일 수 있음!

저작자표시 비영리 변경금지 (새창열림)

'DevOps > aws' 카테고리의 다른 글

[Spring Boot] AWS S3로 파일 저장소 연동하기  (5) 2022.10.24
[Spring Boot] AWS에 프로젝트 배포하기 - RDS Mysql 세팅하기  (1) 2022.10.10
    'DevOps/aws' 카테고리의 다른 글
    • [Spring Boot] AWS S3로 파일 저장소 연동하기
    • [Spring Boot] AWS에 프로젝트 배포하기 - RDS Mysql 세팅하기
    동-훈
    동-훈

    티스토리툴바