📌 AWS RDS와 로컬서비스 연결
H2 Database → In Memory DB라서 애플리케이션 종료 시, 모든 데이터 삭제됨
RDBMS인 MySQL
을 AWS RDS 서비스에 설치 → 컴퓨터에 연결
데이터를 AWS Cloud에 저장한 개념 → 휘발성 ❌
📌 AWS EC2 세팅 후, 구현한 API 서버배포
모든 사람이 접속할 수 있는 원격자동컴퓨터가 필요
AWS EC2
: 원격자동컴퓨터
# MySQL Database
spring.datasource.url=jdbc:mysql://(RDS엔드포인트):3306/(DB이름)
spring.datasource.username=(이름)
spring.datasource.password=(비밀번호)
spring.jpa.hibernate.ddl-auto=update
📌 SSH(Secure Shell Protocol)
- 다른 컴퓨터에 접속할 때 사용하는 프로그램
- 접속할 컴퓨터의 22번 포트가 열려있어야 접속가능
ls : 내 위치의 모든 파일 보여줌
pwd : 내 위치 알려줌 (폴더경로)
mkdir : 내 위치 아래에 폴더생성
cd (갈곳) : 나를 (갈곳) 폴더로 이동시킴
cd.. : 나를 상위 폴더로 이동시킴
cp -r (복사할것) (붙여넣기할것)
rm -rf (지울것)
sudo (실행할명령어) : 명령어를 관리자권한으로 실행
sudo su : 관리가 권한으로 들어감
# ① Keypair 접근권한 변경 (관리자권한)
sudo chmod 400 (받은Keypair끌어놓기)
# password : 맥북 개인 패스워드
# ② SSH 접속하기
ssh -i (받은Keypair끌어놓기) ubuntu@(AWS publicIPv주소)
Gradle > Tasks > build 파일 더블클릭
좌측 build 폴더 > libs 아래 > .jar 확장자 파일 생성완료
# ③
sudo apt-get update
# ④
sudo apt-get install openjdk-17-jdk
# ⑤
java -version
# ⑥
java -jar (JAR파일명).jar
80 port
: HTTP 접속을 위한 기본port
8080 port
: Springboot 기본port
http:13.209.98.106:8080
📌 포트포워딩(port forwarding)
: 패킷이 네트워크게이트(라우터, 방화벽 등)를 지날 때 [IP+포트번호]결합의 통신요청을 다른 곳으로 넘겨주는 네트워크주소변환 응용
:8080
포트번호를 없애는 과정
http Request는 80port가 기본이라서 :80
붙이지 않음
포트번호를 입력하지 않아도 자동으로 접속되기 위해,
80 포트로 오는 요청 → 8000포트로 전달하게함
# ⑦ 리눅스 자체 포트포워딩 작동
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
①, ② → ⑦ → ⑥
서버 접속 시, IP주소만 입력해도 접속가능
📌 nohup
: SSH접속(맥 터미널)을 종료해도 EC2서버가 계속 동작하도록 하는 것
# ⑥ 대체
nohup java -jar (JAR파일명).jar &
# ⑧
ps -ef | grep java # PIP(프로세스번호) 확인
# ⑨
kill -9 (PIP값) # 특정 프로세스 죽임