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 |