[5주차 요약]
▶ AWS RDS와 로컬 서비스를 연결!
→ 그 동안 H2를 사용했기 때문에 서비스를 내렸다 올리면 모든 데이터가 사라졌었다.
→ RDBMS 중 가장 많이 쓰이는 MySQL을 AWS RDS 서비스에 설치 후, 우리 컴퓨터에 연결해보자
→ 이제는 데이터를 클라우드에 저장하기 때문에 껐다 켜도 아무 문제가 없을 것이다!
▶ OG 태그를 이용하여 카톡방에 공유할 준비를 한다.
→ 카톡방을 사용하다보면, 위와 같이 자동으로 이미지, 제목, 내용을 가져왔었다!
→ 우리가 만든 서비스를 친구들에게 자랑할 대, 저렇게 멋지게 공유된다면 훨씬 멋질 것이다.
→ 이렇게 멋지게 카드를 만들기 위한 필수, OG 태크에 대해 학습
▶ AWS EC2를 세팅하고, 나만의 셀렉샵을 배포한다.
→ 우리 컴퓨터에서는 우리만 접속할 수 있다는 한계가 있다.
→ 누구나 서비스에 접속할 수 있게 하려면 원격으로 항상 작동하는 컴퓨터가 필요하다.
→ AWS에서는 EC2라는 컴퓨터를 1년 간 무료로 제공해준다. 이 서비스를 이용하여 나의 프로젝트를 배포할 예정
▶ RDS 구매와 MySQL 세팅 과정은 생략
▶ OG태그란?
→ 아래의 사진과 같이 카톡방에 공유할 때, 이미지도 뜨고 타이틀도 뜨고 설명도 뜨게하는 작업
→ OG태그는 property 속성을 이용하여 작성한다.
<meta property="og:title" content="나영's 셀렉샵">
<meta property="og:description" content="관심상품을 선택하고, 최저가 알림을 확인해보세요!">
<meta property="og:image" content="images/og_selectshop.png">
▶ EC2 구매과정은 생략
▶ Key pair란?
→ 아이디와 비밀번호를 대체하는 나를 증명할 수 있는 어떤 파일
→ 꼭 본인만 갖고 있어야한다!
▶ EC2 준비하고 배포하기
→ EC2로 배포가 되기 위해서는 하나의 파일로 묶어야한다.
→ 하나의 파일로 만든다 = 배포 파일로 빌드한다.
→ 위의 사진 처럼 우측 탭 Gradle 선택후 Tasks > build > build 를 더블 클릭한다.
→ 좌측 build 폴더 > libs 아래에 .jar 확장자로 끝나는 파일이 생겼을 것! -> 빌드에 성공한 것이다.
→ 그 다음 git Bash에서 OpenJDK 설치하기 : EC2에서 하나로 묶인 파일을 작동시키려면 openJDK가 설치되어야함
sudo apt-get update
sudo apt-get install openjdk-8-jdk
java -version
▶ Filezilla를 이용해서 배포 파일 업로드하기
→ 파일질라 실행, 다음과 같이 설정한다.
→ 정보들을 입력하고, ok 누르면 서버의 파일들을 볼 수 있다.
(Host: 내 EC2 서버의 ip // User: ubunty 로 입력)
→ 그 다음 마우스로 드래그 해서 파일을 업로드/다운로드하면 된다!
→ 그 다음 git Bash에서 스프링 부트를 작동시킨다.
java -jar JAR .jar
▶ AWS에서 80, 8080 포트를 열어주기
→ EC2 서버(=가상의 내 컴퓨터)에서 포트를 따로 설정하는 것 외에도, AWS EC2에서도 자체적으로 포트를 열고/닫을 수 있게 관리하고 있다.
→ 그래서 AWS EC2 Security Group 인바운드 요청 포트를 열어줘야한다.
→ 일단, EC2 관리 콘솔로 들어간다. 그리고 보안 그룹(영문: Security Group)을 눌러 들어간다.
→ 80포트: HTTP 접속을 위한 기본포트
→ 8080포트: 스프링 부트 기본포트
▶ 포트포워딩 & nohup 적용하기
→ 포트 번호 없애기 : 기본 개념
→ 지금은 8080 포트에서 웹 서비스가 실행되고 있다. 그래서 매번 :8080 이라고 뒤에 붙여줘야 한다. 뒤에 붙는 포트 번호를 없애려면 어떻게 해야할까?
→ http 요청에서는 80포트가 기본이기 때문에, 굳이 :80을 붙이지 않아도 자동으로 연결된다.
→ 포트 번호를 입력하지 않아도 자동으로 접속되기 위해, 우리는 80포트로 오는 요청을 8000 포트로 전달하게 하는 포트포워딩(port forwarding)을 사용할 것이다.
▶ 포트 번호 없애기 - 리눅스 자체 포트포워딩을 작동시키기
→ 띄워둔 터미널에서 새롭게 설정을 적용하기 전에 돌아가고 있던 서비스는 일단 끈다! (터미널에서 ctrl+c)
→ 포트포워딩 룰을 입력한다. (80번으로 들어온 걸 8080번으로 꽂아달라)
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
→ 다시 서비스 시작
java -jar JAR .jar
▶ SSH 접속을 끊어도 서버가 계속 돌게 하기
→ 현재상황: Git bash 터미널을 종료하면 (=즉, SSH 접속을 끊으면) 프로세스가 종료되면서, 서버가 돌아가지 않는다. 그러나 내가 원격 접속을 끊어도, 서버는 계속 동작해야한다!
→ 원격 접속을 종료하더라도 서버가 계속 돌아가게 하기
#아래의 명령어로 실행하면 된다
nohup java -jar JAR .jar &
→ 서버 종료하기 : 강제종료하는 방법
# 아래 명령어로 미리 pid값(프로세스 번호)을 본다.
ps -ef | grep java
# 아래 명령어로 특정 프로세스를 죽인다.
kill -9 [pid값]
→ 다시 켜기
# 아래의 명령어로 실행하면 된다.
nohup java -jar JAR .jar &
▶ 도메인 연결과정은 생략(gabia 이용함)