AWS

스프링 프로젝트 aws 배포

dev_sr 2021. 1. 12. 21:34

1. 스프링 프로젝트를 잘 만든다

 

2. ec2 인스턴스를 만든다.

ubuntu 말고 맨위의 linux(프리)로 만들어준다.

 

 

ec2 인스턴스를 만들 때에는 오른쪽 위에서 반드시 지역을 확인한다.

원래 오하이오로 되어있었는데(몰랐음)

이것 때문인지 몰라도 gradle 빌드가 진행이 안된다 

하도 안되다가 나중에 빌드해주는 gradle daemon이 갑자기 사라졌다고 에러뜸

얘가 자꾸 도망가서 며칠 날림

서울로 바꿔서 다시 인스턴스 만들고 빌드하니깐 순식간에 진행됨 

 

보안은 이렇게

사용자 지정 TCP는 나중에 접속할 때 필요함

 

키페어는 잘 다운받고

putty 와 puttygen 을 다운받아서 ppk로 변환 후 ec2 에 접속한다.

 

처음 리눅스 접근 시 명령어 : ec2-user

 

참고-ec2 인스턴스 생성

 

[AWS] EC2 (1) - EC2 인스턴스 생성하기

2020.02.06 수정 1. 서비스 소개 AWS EC2는 간단하게 가상서버라고 생각할 수 있으며, 몇 가지 주요 특징은 다음과 같습니다. 클릭 몇 번 만으로 가상 컴퓨팅 환경을 제공받을 수 있음 원하는 만큼 가

victorydntmd.tistory.com

 

 

3.  RDS(Relational Database Service)로 가서 데이터베이스 생성해줌

물론 이것도 서울로 설정해줌

mysql (프리티어) 이고 다 기본값으로 넘어가는데

이렇게 설정해줘야 나중에 workbench에 연결이 가능함..

아니오로 되어있다면 며칠동안 뭘 해도 연결되지 않음

아마존 docs에 나와있는데로 DB를 만들 때 설정했던 유저이름과 비밀번호를

잘 입력해주고 연결해주면 됨

그럼 워크벤치에서 일반 쿼리문을 사용해서 table을 잘 관리할 수 있음 

 

RDS 생성 후 ec2에서 접근할 수 있도록 보안 그룹을 수정해줌

 

 

참고 - RDS 인스턴스 생성

 

[AWS] RDS 인스턴스 생성 및 EC2에서 접근하기 ( MySQL, 프리티어 )

1. 서비스 소개 AWS RDS(Relational Database Service)는 클라우드에서 관계형 데이터베이스를 쉽게 설치, 운영 및 확장할 수 있는 관리형 서비스이며, 주요 특징은 다음과 같습니다. Amazon Aurora, MySQL, Mari..

victorydntmd.tistory.com

 

5. RDS 까지 생성한 뒤 

 

sql이 없다면 sql 설치

 

$ sudo yum install mysql

 

 

git 설치

 

$ sudo yum install -y git

 

 

자바 설치

 

$ sudo yum install -y java-1.8.0-openjdk-devel.x86_64

 

나는 프로젝트에 1.8.xxx 버전을 써서 1.8버전을 설치함

 

참고-aws java 설치

 

AWS EC2(Amazon Linux)에 Java8 설치하기

현재(2018.01.14) EC2 (Amazon Linux)가 Java7이 기본 버전이라 Java8로 버전업 하는 방법을 소개드립니다. AWS EC2에 접속하셔서 아래 명령어를 실행 합니다. sudo yum install -y java-1.8.0-openjdk-devel.x86_..

jojoldu.tistory.com

 

git 프로젝트 받을 폴더 생성

 

$ mkdir apps

 

 

apps 위치로 이동

 

$ cd apps/

 

 

git clone 받기

 

$ git clone {clone 주소}

 

 

프로젝트 폴더의 gradle이 위치한 곳으로 이동

 

$ cd {git 프로젝트 이름}/{gradle이 위치한 폴더}

ex) $ cd spring_board/board

 

 

빌드를 위해 gradle에 실행권한 주기

 

$ sudo chmod 777 ./gradlew

$ ll ./gradlew    (소문자 엘엘)

 

 

 

6. 빌드 전 프로젝트의 db연결 정보 수정

 

application.properties 에서

jdbc:mysql://localhost:3306/ 로 시작하는 부분을

jdbc:mysql://{RDS 인스턴스 엔드포인트}:3306/ 로 적어주고 

username 과 password도 RDS DB 를 만들었을 때의 이름과 암호로 작성해줌

 

그리고 다시 push

 

application.properties 파일 등 설정파일은 gitignore이 되어야한다고 함.

여러가지 방법이 있는데

가장 쉽게 설정하는 방법은 github에 접속해서 보통 git안에 생성되어있는

.gitignore 파일을 찾고 

 

 

여기 사이트에서 eclipse 를 검색한 뒤 (sts 사용시)

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

 

나온 정보를 복사해서 .gitignore 파일에 붙여넣는 것이다.

 

### my ignore ###
src/main/resources/application.properties

 

이 구문은 따로 추가해줌

 

 

 

7. database와 table 만들어주기

 

나같은 경우 프로젝트가 이미 만들어져있는 테이블에 매핑하는 방법을 사용해서

aws RDS 에 프로젝트에서 사용할 데이터베이스와 테이블을 로컬에 있는 것 처럼

그대로 만들어 줘야했음

 

테이블이 없으면 빌드 시 SQLSyntaxErrorException이 발생함

 

참고 - mysql 워크벤치에 연결해서 사용하기

 

MySQL 데이터베이스를 생성하는 방법 – Amazon Web Services

Network & Security Public accessibility: Yes를 선택합니다. 이렇게 하면 데이터베이스 인스턴스에 대한 IP 주소가 할당되므로 사용자 디바이스에서 데이터베이스에 직접 연결할 수 있습니다. Availability zon

aws.amazon.com

 

 

8. 빌드

 

$ ./gradlew build

 

빌드에 성공하면 build/libs 에 jar 파일이 생기는데 이걸 libs로 이동해서 실행하면 됨

 

$ cd build/libs

$ ll   (소문자 엘엘)

 

 

$ java -jar board-0.0.1-SNAPSHOT.jar

 

 

=> 터미널 종료 후에도 백그라운드에서 실행하려면

 

$ nohup java -jar file-name-0.0.1-SNAPSHOT.jar & 

을 명령어로 작성하면 됨

 

 

그럼 드디어 실행이 됨 ㅠㅠ

 

ec2 퍼블릭 IPv4 주소:8080/controller에서 설정한 url 로 접속

ex) 12.34.56.789:8080/board/list.do

 

 

 

 

 

 

 

참고 - 스프링 프로젝트 aws 배포

 

[SpringBoot] 게시판 (5) - AWS EC2에 배포하기 (feat. AWS RDS)

Springboot로 디자인이 하나도 없고 매우 간단한 게시판을 구현하는 시리즈입니다. 최종 소스는 깃헙에서 확인하실 수 있습니다. [SpringBoot] 게시판 (1) - 준비작업 [SpringBoot] 게시판 (2) - 게시글 추

victorydntmd.tistory.com