Back-end/Spring

[SpringBoot] 5주차 스터디 (AWS RDS, EC2)

poppy 2021. 9. 16. 11:30
반응형

이전에 만들었던 프로젝트를 AWS 와 연결하여 배포해보았다.

 

1. AWS RDS

① RDS 를 구매한다.

 

 

다음과 같은 설정으로 데이터베이스를 생성한다.

 

 

② RDS 포트를 열어준다.

 

생성한 데이터베이스에서 보안그룹을 클릭하면 두번째 사진과 같은 화면이 나온다. 그 화면에서 인바운드 규칙을 수정해주면 된다.

 

 

③ 스프링부트 프로젝트와 RDS 를 연결한다.

 

우측에 [Database] - [+] - [Data Source] - [MySQL] 를 선택한다.

 

 

선택하면 이런 화면이 뜨는데 RDS에서 설정한 것들의 값을 넣으면 된다. Host 는 RDS 데이터베이스의 엔드포인트이다. User와 Password 는 데이터베이스를 만들 때 설정한 마스터 이름과 마스터 비밀번호이다. Database는 데이터베이스를 만들 때 설정한 데이터베이스 이름이다.

 

 

 MySQL과 연결할 수 있도록 application.properties 를 수정한다.

spring.datasource.url=jdbc:mysql://나의엔드포인트:3306/myselectshop
spring.datasource.username=나의USERNAME
spring.datasource.password=나의패스워드
spring.jpa.hibernate.ddl-auto=update

 

2. AWS EC2

① EC2를 구매한다.

 

 

인스턴스는 다음과 같이 설정한다.

 

 

인스턴스를 시작하기 위해 키 페어를 생성한다. 나중에 EC2에 접속하기 위해서는 키 페어가  꼭!! 필요하므로 키 페어를 다운로드 해서 저장해두어야 한다.

 

② EC2 포트를 열어준다. 

위에서 RDS 포트를 열어준 것처럼 EC2도 마찬가지로 인바운드 규칙을 편집해 80, 8080 포트를 열어준다.

 

그 다음 터미널을 통해 EC2에 접속한다.  다음과 같이 명령어를 입력하면 EC2에 접속할 수 있다.

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

 

3. 프로젝트 배포하기

① 배포 파일 빌드하기

 

우측에서 [Gradle] - [Tasks] - [build] - [build] 를 "더블클릭" 하면 배포 파일이 빌드된다.

 

 

빌드가 완료되었다면 다음과 같이 jar 파일이 생성된다.

 

 

② Open JDK 를 설치한다.

아까 EC2에 접속한 상태에서 다음 명령어를 입력하여 jdk를 설치한다. 

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

 

다음과 같은 화면이 나온다면 잘 설치된 것이다! 설치가 되면 Filezilla를 이용해서 배포 파일을 업로드한다.

 

 

③ 스프링부트 프로젝트 작동시킨다.

 

EC2에 접속한 상태에서 다음 명령어를 입력하면 스프링부트 프로젝트가 작동된다. 

java -jar JAR파일명.jar

 

작동이 된 후 웹사이트에 접속하면 다음과 같은 화면이 뜬다. 화면이 뜬다면 연결에 성공한 것이다!

 

 

[ + 번외: OG태그 작업하기 ]

링크를 공유할 때 보여지는 정보를 다음과 같이 수정할 수 있다. index.html 파일에서 head 부분에 다음 코드를 삽입하면 된다.

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    
    <!-- 코드 추가한 부분 -->
    <meta property="og:title" content="poppy만의 셀렉샵">
    <meta property="og:description" content="관심상품을 선택하고, 최저가 알림을 확인해보세요!">
    <meta property="og:image" content="images/og_selectshop.png">
    
    <link rel="stylesheet" href="style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="basic.js"></script>
    <title>나만의 셀렉샵</title>
</head>

 

이 코드를 추가하고 링크를 공유하면 다음과 같이 공유되는 것을 볼 수 있다.

 

 

반응형