항해 99 측에서 작성해둔 노션을 바탕으로 진행하면서 겪은 내용들에 대한 글이다.
AWS - EC2, RDS 를 사용해서 배포하는 방법에 대한 글이다.
이 과정에서 이전의 작업했던 내용들에 대한것들도 다시 나오기 때문에 잘 이해하면서 진행해줘야 했다.
그동안은 H2 를 사용했기 때문에 서비스를 내리고 올리면 데이터가 모두 사라져서 불편했었다.
그래서 이번에는 RDBMS 중에 가장 많이 쓰인는 AWS RDS 서비스에 설치 후, 컴퓨터에 연결하는 방법을 해볼 것이다.
즉, 이제는 데이터를 클라우드에 저장하기 때문에 재부팅해도 상관이 없다.
우선 AWS 에서 RDS를 구매하고 MySQL 에 세팅
아디와 암호는 DB 접속용이니 반드시 기억할것
RDS 포트 열어주기
위 이미지처럼 하되 어노테이션은 이미지 처럼 말고 아래의 링크를 타고가서 해당 어노테이션을 추가해주자
https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.0.31
implementation("com.mysql:mysql-connector-j:8.0.31")
EC2에 아래처럼 따라가서 8080 포트를 추가해준다.
파일질라를 통해서 서버에 jar 파일을 업로드 해준다.
아래처럼 서버를 올려서 테스트 해보자.
서버의 컴퓨터에 접속했으면 아래의 코드를 진행해서 OpenJDK 를 설치해주자.
버전은 본인의 버전에 맞게 설치를 해서 진행하도록 하자.
sudo apt-get update
sudo apt-get install openjdk-11-jdk
# 버전 확인
java -version
설치가 끝났으면 아래 이미지 처럼 jar 이 위치한 경로에서 아래와 같이 입력해서 서비스를 실행해주면 된다.
이제 아래의 IPv4 주소 부분을 복사해서
지금 당장은 위처럼 연결이 되면 Whitelabel 페이지가 나오면 성공이 된 상태라고 보면된다.
저상태에서 postman 을 통해서 입력하고 git bash 를 이용해서 서버 컴퓨터에 MySQL 을 깔아서 확인해보면 잘 들어갔는지 확인할 수 있다.
아래의 코드에 대한 설명이 더 나와있으니 참고하도록 하자.
포트포워딩 & nohup 적용하기
- 포트 번호 없애기 - 기본 개념
- 지금은 8080 포트에서 웹 서비스가 실행되고 있습니다. 그래서 매번 :8080 이라고 뒤에 붙여줘야 하죠. 뒤에 붙는 포트 번호를 없애려면 어떻게 해야할까요?
- http 요청에서는 80포트가 기본이기 때문에, 굳이 :80을 붙이지 않아도 자동으로 연결이 됩니다.
- 포트 번호를 입력하지 않아도 자동으로 접속되기 위해, 우리는 80포트로 오는 요청을 8000 포트로 전달하게 하는 포트포워딩(port forwarding) 을 사용하겠습니다.
- 포트 번호 없애기 - 리눅스 자체 포트포워딩을 작동시키기
- 띄워둔 터미널에서 새롭게 설정을 적용하기 전에 돌아가고 있던 서비스는 일단 끄고! (터미널에서 ctrl + c)
- 포트포워딩 룰을 입력합니다.
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
- 다시 서비스 시작
java -jar JAR파일명.jar
- 포트 번호를 떼고 접속해봅니다.
- 웹 브라우저에서 접속하기
http://내AWS아이피/
- 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아이피/
확인하기
- 내 PC 즉, local에서만 동작하던 서버가 어디서든 쓰일 수 있게 되었어요.
- 이제 클라이언트 화면을 구성하는 Frontend에서 방금 배포한 서버 IP를 활용해 필요한 데이터를 요청할거에요.
- 팀원들과 서로 배포한 IP를 공유해 잘 동작하는지 확인해 보세요!
서버컴퓨터에 MySQL 설치하기
1. ssh -i ' 본인이 가지고있는 pem 키 경로 ' ubuntu@AWS IPv4 주소
2. sudo apt-get install mysql-client
3. mysql -u admin -h AWS의 RDS에 앤드포인트 -p
4. RDS 설정할때 지정한 비밀번호 입력
5. 사용할 database 입력 나같은 경우 use RTback 이 된다.
6. 이후부터는 쿼리문을 입력해서 확인이 가능하다.
이런식으로 포스트맨을 통해 넣은 값들이 들어가있는것을 확인할 수 있다.
jar 파일 관련 추가 설명
jar 파일 생성시에 인텔리의 우측의 Gradle 탭에서 톱니바퀴 build 부분을 우클릭에서 실행하면 jar 파일이 생성이 되고,
clean 을 해주면 jar 파일을 다 날려버려 준다.
즉, 항상 변경된점이 있으면 clean 먼저 해주고 build 를 해주면 된다.
이후 새롭게 만들어진 jar 파일을 파일질라를 통해 서버 컴퓨터에 업로드 해주도록 하자.
'항해99' 카테고리의 다른 글
velog 에서 이전중입니다.. (1) | 2022.12.02 |
---|